Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo, das (gerade) aktuelle Verzeichnis lässt sich mit der CurDir-Funktion ermitteln: Debug.Print CurDir gibt den Pfad im Direktfenster aus. Gruß Uwe
Registriert seit: 19.08.2022
Version(en): 16.0.15427.20210
ah ok, kann ich ja zum Spaß mal machen, werd es aber in meinem Fall so lösen das ich einfach meine save_path.Value in die Dir mit einbau, woanders sollten die Dokumente später eh nicht gespeichert sein bzw wenn dann nur als Kopie. aber Danke^^
Registriert seit: 19.08.2022
Version(en): 16.0.15427.20210
26865
Nicht registrierter Gast
(26.08.2022, 10:21)BuschB schrieb: Fortsetzung in: Speicherfunktion läuft problemlos, gibt trotzdem False zurück (clever-excel-forum.de) nein, ich denke nicht. So ein Themengehopse erzeugt nur Chaos. Bleibe hier, hier haben sich nun schon genug in dein Projekt eingearbeitet und die Fragen haben mit dem anderen Thema nichts zu tun.
Registriert seit: 19.08.2022
Version(en): 16.0.15427.20210
26.08.2022, 11:07
(Dieser Beitrag wurde zuletzt bearbeitet: 26.08.2022, 11:09 von BuschB.)
Ja und nein, und ja... also im Prinzip hast du völlig recht, gehopse ist mist, aber da ich in dem anderen Thread Lösungen für Teilprobleme dieses Threads habe (geht ja auch in beiden um dasselbe Projekt) dachte ich mir dort weiter zu machen, da dort der aktuellste Stand ist... Natürlich könnte ich hier auch den aktuellen Stand von dort rüber hohlen und den ausgelagerten Thread abschließen...Aber eigentlich müsste ich das Thema neu benennen um den Umfang den der Inhalt ja bereits angenommen hat vollständig zu erfassen... Wie dem auch sei, wenn du drauf bestehst kopiere ich den letzten Stand inklusive der Fragen und Probleme aus dem sekundären Thread hier auch noch rein und lass den anderen auslaufen, mir ist relativ egal welchen von beiden ich schließe, Hauptsache ich hab am Ende nur einen.
So, zur allgemeinen Zufriedenheit doch in diesem Thread weiter: Ich hab hier im save_as: Code:Code: Option Explicit Private Sub cancel_Click() MsgBox "Die Datei wird nicht gespeichert, da Sie [Abbrechen] gedrückt oder nichts eingegeben haben.", , "Abbruch" Sheets("Vorl. Blatt+").Visible = xlSheetVisible Unload Me End Sub
Private Sub finished_Click() Sheets("Vorl. Blatt+").Visible = xlSheetVeryHidden strDateiname = save_name.Value & ".xls" If speicherDatei(ActiveWorkbook, strDateiname) = True Then Kill (save_path.Value & save_name.Value & ".xlsm") Unload Me End If
End Sub
Private Sub send_Click() strDateiname = save_name.Value & ".xls" If speicherDatei(ActiveWorkbook, strDateiname) = True Then Sheets("Vorl. Blatt+").Visible = xlSheetVeryHidden strDateiname = save_name.Value & ".xlsm" If speicherDatei(ActiveWorkbook, strDateiname) = True Then With send_mail If .Visible = False Then .Show End If End With Unload Me End If End If
End Sub
Private Sub UserForm_Initialize() wbkname = ActiveSheet.Range("C12").Value & ActiveSheet.Range("I12").Value & ActiveSheet.Range("O12").Value & ActiveSheet.Range("U12").Value & ActiveSheet.Range("AA12").Value & ActiveSheet.Range("AG12").Value & ActiveSheet.Range("AM12").Value & ActiveSheet.Range("AS12").Value & ActiveSheet.Range("AY12").Value & ActiveSheet.Range("BE12").Value save_path.Value = Sheets("Blatt 1").Range("DC12").Value If Sheets("Blatt 1").Range("DD12").Value <> "" Then save_name.Value = Sheets("Blatt 1").Range("DD12").Value Else save_name.Value = "Schaltprogramm " & wbkname & " " & Sheets("Blatt 1").Range("AF20").Value & " " & Sheets("Blatt 1").Range("AF22").Value End If End Sub
Private Sub work_in_progress_Click() strDateiname = save_name.Value & ".xlsm" If speicherDatei(ActiveWorkbook, strDateiname) = True Then Unload Me End If
End Sub
Function speicherDatei(ByVal wkb As Workbook, ByVal strDateiname As String) As Boolean If save_name.Value = "" Then MsgBox "Die Datei wird nicht gespeichert, da Sie [Abbrechen] gedrückt oder nichts eingegeben haben.", , "Abbruch" Exit Function Else If save_path.Value = "" Then MsgBox "Die Datei wird nicht gespeichert, da Sie [Abbrechen] gedrückt oder nichts eingegeben haben.", , "Abbruch" Exit Function Else checkname = Dir(save_path.Value & "*" & wbkname & "*", vbReadOnly) If checkname <> "" Then If checkname <> save_name.Value & ".xls" Then If checkname <> save_name.Value & ".xlsm" Then datei_exist.Show If Sheets("Blatt 1").Range("DB12").Value = "1" Then Unload Me Exit Function End If End If End If End If With wkb If Right(save_path.Value, 1) <> "\" Then save_path.Value = save_path.Value & "\" With .Sheets("Blatt 1") .Unprotect .Range("DB12").ClearContents .Range("DC12").Value = save_path.Value .Range("DD12").Value = save_name.Value .Protect DrawingObjects:=True, Contents:=True, Scenarios:=False End With .SaveAs save_path.Value & strDateiname End With speicherDatei = True MsgBox "Die Datei wurde unter " & save_path.Value & strDateiname & " gespeichert.", , "OK" End If End If
End Function
eine Dir eingebaut die mir in einer anderen UserForm, datei_exist: Code:Code: Option Explicit Private Sub datno_Click() With ActiveWorkbook.Sheets("Blatt 1") .Unprotect .Range("DB12").Value = 1 .Protect DrawingObjects:=True, Contents:=True, Scenarios:=False End With With save_as If .Visible = False Then .Show End If End With Unload Me End Sub
Private Sub datverg_Click() Dim ergebnis Dim aufruf As String aufruf = "cmd " & DatName.Value ergebnis = Shell(aufruf, vbNormalFocus) MsgBox ergebnis & "zum Vergleich geöffnet." Next
End Sub
Private Sub datyes_Click() ' Kill (checkname) Unload Me
End Sub
Private Sub UserForm_Initialize() DatNr.Value = wbkname With DatName .Clear .ColumnCount = 10 .List = checkname End With
End Sub
bereits existierende Dateien mit derselben Dokumentennummer im Namen auflisten soll und mir die Optionen zur Verfügung stellen soll: Die Dateien zu öffnen und zu Vergleichen. Sowie: Die Dateien zu löschen und die Speicherfunktion fort zu setzen. Oder: Die Daten zu behalten und den gesamten Speichervorgang vollständig ab zu brechen, auch das Speichern welches Initial das save_as triggert: Code:Code: Option Explicit Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, cancel As Boolean) With save_as If .Visible = False Then .Show End If End With
End Sub
Private Sub Workbook_BeforePrint(cancel As Boolean) Sheets("Vorl. Blatt+").Visible = xlSheetVeryHidden
End Sub
Momentan ist es aber noch nicht dazu in der Lage die Dateien in der ListBox DatName zu zeigen, geschweige denn sie zu öffnen, hat da jemand eine Idee was ich vergessen habe, wo mein Fehler liegt? Danke schonmal^^
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
26.08.2022, 13:43
(Dieser Beitrag wurde zuletzt bearbeitet: 26.08.2022, 13:43 von schauan.)
Hallöchen,
in Deinen Codes habe ich nicht gesehen, wo Du die Listbox füllst.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 19.08.2022
Version(en): 16.0.15427.20210
Das hab ich hier mit drin: (in dem Vertrauen darauf das das so geht, aber keine Ahnung, hab noch nie mit den Dingern gearbeutet xD) Code: Private Sub UserForm_Initialize() DatNr.Value = wbkname With DatName .Clear .ColumnCount = 10 .List = checkname End With
End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
26.08.2022, 15:26
(Dieser Beitrag wurde zuletzt bearbeitet: 26.08.2022, 15:28 von schauan.)
Hallöchen,
schaue mal, was Du in checkname stehen hast ...
Wenn Du mehrere Einträge in einem Rutsch in eine Listbox übertragen willst, dann sollte es ein entsprechend gefülltes Array sein. Checkname ist ein String, also genau ein "Eintrag"
Einen einzelnen Eintrag fügt man im Prinzip so hinzu: ListBox1.AddItem "Eintrag" oder ListBox1.AddItem myVariable
und hättest Du doch welche in einem Array gesammelt, dann ListBox1.List = myArray
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 19.08.2022
Version(en): 16.0.15427.20210
nenee checkname ist Variant, nicht String, aber ich glaub Variant ist auch nicht richtig... Code: Public wbkname As String Public strDateiname As String Public checkname As Variant
Registriert seit: 29.09.2015
Version(en): 2030,5
29.08.2022, 09:54
(Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2022, 10:02 von snb.)
Code: Private Sub UserForm_Initialize()Private Sub UserForm_Initialize() DatNr.Value = wbkname
With DatName .Clear .ColumnCount = 10 .List = checkname End With End Sub
Wenn Datname ein Listbox/Combobox ist; 1. ist .clear völlig, 100% ganz überflüssig, weil ein Listbox/combobox in einem Userform am Anfang (Initialize) immer leer ist. 2. sollten Eigenschaften wie .columncount immer im Design Mode bestiimt werden und nicht im Initialize Prozedur 3. wenn man ein Variabele deklariert, ist diese leer; man kann ein ListBox/combobox keine leere Variabele zuweisen; man sollte die Variable mal erst füllen. 4. verzichte immer auf überflüssigen Variabelen. Code: Private Sub UserForm_Initialize() Datnr="Sheet1" Datname.list=application.getcustomlistcontents(2) End Sub
5. Ich möchte nur hinzufügen: Grundlagen, Grundlagen, Grundlagen. (VBA-Buch, VBA Kurs, kein Trial & Error)
|