Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1672to1676
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
Inhaltsverzeichnis

Tabelle öffnen trotz Endlosschleife

Tabelle öffnen trotz Endlosschleife
05.02.2019 12:36:26
Markus
Hallo zusammen,
ich wollte eine Exceldatei erstellen, bei der über eine Schleife ( ich hatte sie bis 10 zählen lassen) Exceldateien in 3 unterschiedlichen Ordnern erstellt werden. Die Dateinamen werden über einen Zufallsgenerator erstellt. Das hat soweit auch funktioniert. Da ich aber jedes Mal beim Öffnen einer Datei gefragt wurde, ob ich die vorhandene Datei ersetzen will, habe ich zum einen eine If-Schleife eingebaut, die das Makro beendet und habe in der Arbeitsmappe es so eingestellt, dass wenn eine Fehlermeldung kommt, diese ausgeblendet wird und der Schleifenzähler 1 hoch gezählt wird.
Jetzt habe ich zwar nicht mehr das Problem, dass er mich fragt, ob eine Datei überschrieben werden soll, aber anscheinend habe ich etwas falsch programmiert, sodass er direkt beim öffnen der Datei in eine Endlosschleife geht und mir Dateien herstellt. Gibt es eine Möglichkeit, dass ich das abbrechen kann und entsprechende Änderungen in dem Makro vornehmen kann?
Ich danke euch schon einmal für eure Hilfe.
LG Markus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle öffnen trotz Endlosschleife
05.02.2019 12:44:18
UweD
der Fehler liegt in Zeile 4 deines Makros
LG UweD
Strg+Untbr owT
05.02.2019 12:47:01
Rudi
AW: Tabelle öffnen trotz Endlosschleife
05.02.2019 13:19:31
Markus
Ich habe das Problem hin bekommen, habe aber leider immer noch das Problem, dass er nachfragt, ob die vorhandene Datei überschrieben werden soll. Ich verstehe allerdings gar nicht, dass so schnell eine vorhandene Datei neu erzeugt werden kann? Wenn er per Zufall einen Dateinamen generiert, und ich 13 Zeichen habe, ist doch die Wahrscheinlichkeit relativ gering, dass eine Datei mit dem gleichen Namen noch einmal erstellt wird oder? Muss ich da irgendeinen Speicher löschen?
Das ist der Code für die Dateierstellung in dem Modul:
Function zufall() As String
zufall = ""
zeichen = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" ' hier gibst du die möglichen zeichen ein
l = Int((13 * Rnd) + 4)
For s = 1 To l
zufall = zufall & Mid(zeichen, Int((Len(zeichen) * Rnd) + 1), 1)
Next s
End Function Sub Datenanlegen()
On Error GoTo fehler
beginn:
Dim Adresse As String
Dim Zahl As Integer
Zahl = Int((3 * Rnd) + 1)
Select Case Zahl
Case "1"
Adresse = "J:\Excel\Ordner1\"
Case "2"
Adresse = "J:\Excel\Ordner2\"
Case "3"
Adresse = "J:\Excel\Ordner3\"
End Select
Dim objExcel As Object
Set objExcel = CreateObject("Excel.Application")
With objExcel
.Visible = False
.Workbooks.Add
.ActiveWorkbook.SaveAs Adresse & zufall & ".xlsx"
.Quit
End With
Set objExcel = Nothing
If Dir(Adresse & zufall & ".xlsx") "" Then GoTo beginn
fehler:
Application.DisplayAlerts = False
End Sub Und das ist der Code für den Ablauf in der Arbeitsmappe:
Private Sub Workbook_Open()
On Error GoTo fehler
Dim zähler As Integer
For zähler = 1 To 10
Call zufall
Call Datenanlegen
Next zähler
fehler:
zähler = zähler + 1
Application.DisplayAlerts = False
End Sub

Vielen Dank für eure Hilfe.
Anzeige
AW: Tabelle öffnen trotz Endlosschleife
05.02.2019 14:27:26
Rudi
Hallo,
würde ich so machen:
Function zufall() As String
Dim iLaenge As Integer, s As Integer
Const zeichen As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" ' hier gibst du die mö _
glichen zeichen ein
iLaenge = Int((13 * Rnd) + 4)
For s = 1 To iLaenge
zufall = zufall & Mid(zeichen, Int((Len(zeichen) * Rnd) + 1), 1)
Next s
End Function
Sub Datenanlegen()
Dim Adresse As String, strDatei As String
Dim Zahl As Integer
Const strPfad As String = "c:\test\test"
Application.ScreenUpdating = False
Zahl = Int((3 * Rnd) + 1)
Adresse = strPfad & Zahl & "\"
strDatei = Adresse & zufall
Do While Dir(strDatei & ".xlsx")  ""
strDatei = Adresse & zufall
Loop
Workbooks.Add
With ActiveWorkbook
.SaveAs strDatei, xlOpenXMLWorkbook
.Close
End With
End Sub
Private Sub Workbook_Open()
Dim iCounter As Integer
For iCounter = 1 To 10
Call Datenanlegen
Next iCounter
End Sub

Gruß
Rudi
Anzeige
AW: Tabelle öffnen trotz Endlosschleife
05.02.2019 14:30:31
ede
Hallo Markus,
1.) in deiner Sub Datenanlegen() solltest du den zufällig erzeugten String aus der Funktion zufall erst einmal in einen eigenen variabel schreiben und dann diese später prüfen.
- strFilename = zufall
- .ActiveWorkbook.SaveAs Adresse & strFilename & ".xlsx"
- If Dir(Adresse & strFilename & ".xlsx") "" Then GoTo beginn
2). in Sub Workbook_Open(): was macht call zufall ?
gruss
ede

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige