Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

wo ist mein logikfehler?

wo ist mein logikfehler?
29.09.2006 10:32:01
Alex
hallo leute!
ich hab diese woche nach einer lösung zum speichern einer datei gefragt und eine traumhaft schöne lösung bekommen.
leider soll das ding auch unter MS office für Mac :-( laufen, daher musste ich auf große teile verzichten und hab mir jetzt selber etwas einfach zusammengebaut. der wesentliche code sieht so aus:

Sub speichern()
Dim pfad$, dateiname$, ext$
JaNein = 0
pfad = "macintosh HD:users:manfred:Desktop:bm:rg:"
ext = ".xls"
dateiname = Left(Workbooks("BM.xls").Sheets("rechnung").Range("B15"), 17) & "_" & Sheets("rechnung").Range("F11")
Do Until JaNein = 1
If Dir(pfad & dateiname & ext) = "" Then
ActiveWorkbook.SaveAs Filename:=pfad & dateiname & ext
JaNein = 1
Else:
dateiname = dateiname & "2"
JaNein = 0
End If
Loop
End Sub

und jetzt das witzige:
der code wird immer 2x durchlaufen! d.h. er erstellt mir IMMER die datei + eine datei2
wenn es datei2 schon gibt, ist das ergebnis datei22 + datei222
also immer einmal zu viel!
wo ist mein fehler?danke!
lg

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: entferne den Doppelpunkt hiter Else (owt)
29.09.2006 10:56:59
ingUR
.
AW: entferne den Doppelpunkt hiter Else (owt)
29.09.2006 11:44:52
Alex
prinzipiell danke, hat aber nichts verändert
AW: Das war's wohl nicht...
29.09.2006 11:50:15
ingUR
... doch soweit ich es nachvollziehen konnte, Alex,
scheinst Du Dir das "Leben" hier schwerer zu machen als es ist, wenn es darum geht, bestehende Dateinamen durch einen Suffix zu erweitern, so dass das Überschreiben verhindert wird.
Sub speichern()
Dim pfad$, dateiname$, ext$
pfad = "macintosh HD:users:manfred:Desktop:bm:rg:"
ext = ".xls"
dateiname = Left(Workbooks("BM.xls").Sheets("rechnung").Range("B15"), 17) & "_" & Sheets("rechnung").Range("F11")
While Len(Dir(pfad & dateiname & ext))
'Es wird solange eine 2 ergänzt, bis der gebildete Dateiname noch nicht vorhanden ist
dateiname = dateiname & "2"
Wend
ActiveWorkbook.SaveAs Filename:=pfad & dateiname & ext
End Sub

Wenn Du allerdings erreichen willst, dass eine fortlaufende Numerierung an den "Grunddateinamen" angefügt wird, dann gestaltet sich die Logik m.E. aufwendiger, da Du dann alle bisherigen "Unterdateien", die es von dieser Datei bereits gibt, ermitteln mußt, um bei diesen die höchste Suffix-Zahl festzustelen. Ist also das Dein Ziel: Wenn DateiXYn existiert, dann bilde DateiXYn1, mit n1=n+1?
Gruß,
Uwe
Anzeige
AW: Das war's wohl nicht...
29.09.2006 12:10:27
ingUR
Hallo, Axel,
dennoch der Vorschlag für eine Namensgenerierung, die durch das Hochzählen eines Suffix gebildert wird:
Sub speichern()
Dim pfad$, dateiname$, ext$
pfad = "c:\temp\"
ext = ".xls"
dateiname = "test"
Suffix = ""
While Len(Dir(pfad & dateiname & Suffix & ext))
Suffix = CStr(Val(Suffix) + 1)
Wend
ActiveWorkbook.SaveAs Filename:=pfad & dateiname & Suffix & ext
End Sub

Es wird der Dateiname DXYZ3.xls gebildet, wenn DXYZ.xls, DXYZ1.xls und DXYZ2.xls bereits im Verzeichnis existieren.
Gruß!
AW: wo ist mein logikfehler?
29.09.2006 10:58:35
Eva
Hallo,
hast Du es mal mit Do while JaNein 1 versucht? Ich denke, es ist ein Problem in Deiner While - Schleife (komme jetzt nur nicht so ganz drauf, warum es ist, kenne es aber aus Erfahrung ;-)). Vielleicht hilft es ja.
Gruß
Anzeige
AW: wo ist mein logikfehler?
29.09.2006 11:46:11
Alex
hi!
danke erstmal. aber ja, so hat meine schleife ursprünglich ausgesehen - mit dem selben ergebnis! daher kommt die until = formulierung ;)
noch ideen?
lg
VIELEN DANK AN EUCH! ->>> ich bin ein VOLLIDIOT :)
29.09.2006 11:59:57
Alex
hi leute!
danke an alle die sich meinem problem gewiedmet haben!
war alles meine schuld ...... ich hatte den sub "speichern" versehentlich zweimal aufgerufen, im code ..... deshalb auch das 2malige speichern!
sorry für die, die sich die mühe gemacht haben und trotzdem vielen dank!
lg, alex

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige