Wer kann mir helfen -bislang alles fehl geschlagen.... in VB


#21
Aber diese Befehlszeile gibt es doch in der letzten Version deines Codes gar nicht?

Grundsätzlich rate ich dir bei Files zum FileSystemObject.
Setze eine Refernez auf die Scripting Runtime
2019-02-27_151120.jpg 2019-02-27_151200.jpg

Und dann hast du ein ganz bequemes Mittel um alle möglichen Dateisachen zu machen.
Visual Basic:
Private Sub cmbkundendaten_click()
    Dim fso As New FileSystemObject
    Dim pfad As String
    Dim i As Long
    Dim objFld As Folder
  
    pfad = "C:\Users\Andreas.wiese\Documents\Kunden"
    If Not fso.FolderExists(pfad) Then
        MsgBox "Ordner " & pfad & " exisiteirt nicht"
        Exit Sub
    End If
    Set objFld = fso.GetFolder(pfad)
    i = objFld.Files.count + 1
    pfad = fso.BuildPath(pfad, "Kunden" & format(i, "00000") & "-" & format(Date, "DD-MM-YYYY") & ".txt")
    If fso.FileExists(pfad) Then
        MsgBox "Datei " & pfad & " exisitert bereits"
        Exit Sub
    End If
    ActiveWorkbook.SaveAs FileName:=pfad & "\" & "Kunden" & format(i, "00000") & "-" & format(Date, "DD-MM-YYYY") & ".txt"
  
End Sub
 
#22
wie kann ich die oben angegeben Datei scrun.dll öffnen da ich in einem Netzwerk arbeite und diese Dateierweiterung zwar finde, sie aber nicht öffnen kann und das gleich Menü wie Du oben hast zu sehen.
 
#25
Netzwerk ? Ich arbeite an einem Arbeitsplatzrechner mit Windows 7 und Office 2010 nach Ostern wollen die versuchen auf Windows 10 mit Office 2016 umzustellen, leider sind die Admins nicht die schnellsten.

Und zu Hause habe ich einen guten Laptop mit Windows 10 und Office 2016/365....
 
#26
Also. Dann musst du nichts im Netzwerk machen wegen der Datei.
Warscheinlich hast du das deutsche Office. Dann heisst es nicht Tools sondern ev. Extra. Keine Ahnung.
Das ganze ist im VBA-Modus, also da wo du den Code programmierst. Das Unbtermenü heisst warscheinlich Verweise.
 
#27
OK gefunden und eingestellt, aber geht immer noch nicht. Neuer pfad eingetragen

Visual Basic:
ActiveWorkbook.SaveAs Filename:=pfad & "\" & "Kunden" & Format(i, "00000") & "-" & Format(Date, "DD-MM-YYYY") & ".txt"
habe ansonsten deinen Code von oben so eingefügt.
 
#28
Ah, alles klar. Es geht nicht. Ist wohl so.

Mehr kann ich aus deinen Informationen nicht auslesen. Darum nochmals:
1) Aktueller Code zeigen
2) Fehlverhalten, Fehlermeldungen etc. dazu schreiben

Oder woher soll ich wissen was nciht geht? Ich sehe nicht auf deinen PC.
 
#29
Visual Basic:
Private Sub cmbkundendaten_click()
    Dim fso As New FileSystemObject
    Dim pfad As String
    Dim i As Long
    Dim objFld As Folder
 
    pfad = "G:\Kundenordner\Neuanlage"
    If Not fso.FolderExists(pfad) Then
        MsgBox "Ordner" & pfad & " exisiteirt nicht"
        Exit Sub
    End If
    Set objFld = fso.GetFolder(pfad)
    i = objFld.Files.Count + 1
    pfad = fso.BuildPath(pfad, "Kunden" & Format(i, "00000") & "-" & Format(Date, "DD-MM-YYYY") & ".txt")
    If fso.FileExists(pfad) Then
        MsgBox "Datei " & pfad & " exisitert bereits"
        Exit Sub
    End If
    ActiveWorkbook.SaveAs Filename:=pfad & "\" & "Kunden" & Format(i, "00000") & "-" & Format(Date, "DD-MM-YYYY") & ".txt"
 
End Sub
Fehler 1004 Kann nicht auf datei zugreifen, obwohl keine existiert...
 
#30
Welche Zeile?

Nachtrag:
Mir ist ein Fehler unterlaufen und du kopierst ihn blind.
Auf Zeile 14 baust du den Dateipfad zusammen. Auf Zeile 15 wird geprüft ob die Datei bereit existiert. Und auf Zeile 19 Setzt du hinter den Dateipfad nochmals eine Datei.

Meine Codes sind nicht getestet und können durchaus Fehler enthalten. Sie dienen als Ideen, nicht els endgültige Lösungen. Du musst versuchen sie zu verstehen, ggf mit nachfragen. Ein blindes kopieren meines Fehlers hilft da nicht weiter.
Auch debuggen hilft weiter. Ein Haltepunkt auf die Zeile 19 setzen. Wenn der Code dort steht, alles markieren was den Pfad zusammensetzt und mit Shift+F9 schauen, was das Resultat ist. Dann sieht man den Fehler sofort.
Der Debugger ist dein Freund und er ist gratis beim VBA mit dabei, lerne ihn kennen. (Debugging im VBA-Editor, Teil 1 - Startseite weitere Tutorials findest du locker mit google)
Visual Basic:
'Das reicht
ActiveWorkbook.SaveAs Filename:=pfad
 
Zuletzt bearbeitet:
#31
Watch : : ActiveWorkbook : <Modul kann nicht kompiliert werden> : Empty : Eingabe.cmbkundendaten_click

und

Watch : : Format : <Modul kann nicht kompiliert werden> :
Empty : Eingabe.cmbkundendaten_click

ich entschuldige mich für mein Unwissen, hatte vor Jahre mal VBA in der Ausbildung ist schon sehr lange her, aufgrund von beruflichen Maßnahmen habe ich da hier , der Unterricht mit Sachen gerade beschäftigt ist was ich schon kann, WORD und Outlook usw. teils Excel normal. Deshalb beschäftige ich mich derzeit mit VBA /Excel... ich bin also kein Profi auf dem Gebiet und muss mir alles selbst aneignen und erlesen weil hier keiner sich damit auskennt.

Deshalb bin ich froh über Hilfe, die speichere ich mir ab und kann davon hoffentlich dann wieder einiges nutzen kann für andere Ideen. ich hoffe das ich dir mit meinen Sachen nicht allzu sehr auf den Pinsel gehe.
 
#32
1.
da hätte ich noch eine Frage wenn ich im Listenfeld meine Einträge sehe, dann würde ich gerne ein Beitrag markieren und Ihn in einer TextBox automatisch am besten mit Doppelklick überführen.
Wie ist das möglich?
Denn so kann der Nutzer den Beitrag anklicken z.B den Wert des Vormonats.

2. und wie kann ich mit zwei werten aus zwei unterschiedlichen TextBoxen rechnen bzw. vergleichen das heißt der niedrige Wert vom höheren subtrahieren wird und das Ergebnis in ein neues Textfeld angezeigt wird.
 

Yaslaw

n/a
Moderator
#33
Du stellst fragen. Nimm mal ein Handbuch zur Hand. Das ist das 1x1 von VBA-Programmierung mit Excel und Formularen

Zu 1)
Versuchs mal. Wenn ich dir was poste sind wir wieder 5 Tage dran. Du bist schneller wenn du es mal selber versuchst

Zu 2). Das ist nun mal wirklich einen Kindergartenaufgabe.
Visual Basic:
me.txtFeld3 = iif(me.txtFeld1 > me.txtFeld2, me.txtFeld1-me.txtFeld2, me.txtFeld2-me.txtFeld1)
 
#34
sorry selbst wenn ich mit so einfachen Fragen um die Ecke komme, leider habe ich Hier und auch daheim keine Handbücher zur Verfügung und muss mich auf das Internet verlassen. denn ich bin ja kein Genie welches sich sämtliche Handbücher im Kopf hämmert.

Aber trotzdem Danke für die Info.
 
#35
Sicher gibt es auch Lösungen im Internet, da aber jeder andere Lösungsansätze hat, ist es schwer sich auf Codepassade das richtige und funktionierende herauszuschneiden und dann mit eigenen Erweiterungen die eigene Lösung konzipiert. Ich hoffe das ich Dir das damit ein wenig näher bringen konnte warum ich zum teil so dusselige Fragen stelle.

Ansonsten wünsche ich dir trotzdem eine schönes erholsames Wochenende.