Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1264to1268
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

Die Tabelle mit der größten Nummer

Die Tabelle mit der größten Nummer
cfrei
Hallo,
ich habe ein Makro geschrieben der Daten von einer anderen Tabelle übernehmen sollen. Ich habe aber das Problem, dass die Datei von der die Daten übernehmen werden soll vom Internet runtergeladen wird. Da Firefox diese in einem Temporären Verzeichnis schreibt ist es so, dass die Datei vom Namen abweichen kann. Zum bespiel heisst die Datei beim ersten Download export_muster_19-06-2012.xlsx. Sollte ich aber die Datei nochmals runterladen müssen heisst sie export_muster_19-06-2012-1.xlsx
Bei jeder Speicherung wird die Datei mit aufsteigender Nummer gespeichert.
Besteht die Möglichkeit ein Makro zu erstellen, der immer die Datei mit der höchsten Nummer (wenn vorhanden, denn beim ersten Download steht keine Nummer) berücksichtigt wird.
Also Windows("export_" & Shortname & "_" & Format(Date, "dd-mm-yyyy") & ".xlsx").Activate sollte so modifiziert werden, dass sichergestellt ist dass die korrekte Datei .Activate wird.
Danke!
Viele Grüße
Claus

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Mappe nach Nummer aktivieren
19.06.2012 18:59:49
Erich
Hi Claus,
die folgende Prozedur aktiviert nicht die Mappe (nicht Tabelle) mit der größten Nummer,
sondern die Mappe mit der ersten Nummer, bei der es keine Mappe mit der Folgenummer gibt.
Probier mal

Sub DateiNrActivate()
Dim strFile As String, ww As Integer, nr As Integer, strTest As String, strErg As String
Const Shortname As String = "_muster"
strFile = "export_" & Shortname & "_" & Format(Date, "dd-mm-yyyy")
nr = 0
Do
nr = nr + 1
If nr > 999 Then Stop
strErg = strTest
strTest = strFile & -nr & ".xlsx"
For ww = 1 To Workbooks.Count
If UCase$(Workbooks(ww).Name) = UCase$(strTest) Then Exit For
Next ww
Loop Until ww > Workbooks.Count
strErg.Activate
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Mappe nach Nummer aktivieren
20.06.2012 09:13:48
cfrei
Hallo Erich,
vielen Dank für die schnelle Antwort. Leider hat es nicht funktioniert.
Ich bekomme die Fehlermeldung "Fehler beim Kompilieren: Ungültiger Bezeichner" Er markiert "strErg" bei der Zeile strErg.Activate
Ich habe leider nicht verstanden was du mir mit deinem Text sagen wolltest. Das Makro soll erstmals versuchen die Datei zu aktiviern die keine Nummer hat. Ist diese nicht offen, soll die mit der höchsten Nummer geöffnet werden.
Nochmals VIELEN DANK!
VIele Grüße
Claus
Sorry, dicker Fehler!
20.06.2012 09:44:30
Erich
Hi Claus,
strErg.Activate ist wirklich Blödsinn - da soll ein String aktiviert werden :-(
Ersetze das bitte mal durch
Workbooks(strErg).Activate
Zum Text mit der "höchsten" Nr:
Wenn es die Mappen
xy.xlsx
xy-1.xlsx
xy-2.xlsx
xy-4.xlsx
gibt, aktiviert das Makro nicht xy-4.xlsx (das wäre die Mappe mit der größten Nr.),
sondern die Mappe xy-2.xlsx - weil der Name xy-3.xlsx bei den offenen Mappen nicht auftaucht.
Das meine ich mit
"aktiviert nicht die Mappe (nicht Tabelle) mit der größten Nummer,
sondern die Mappe mit der ersten Nummer, bei der es keine Mappe mit der Folgenummer gibt."
Aber vielleicht kommt es bei dir gar nicht vor, dass zwischendurch eine Nr. fehlt.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Sorry, dicker Fehler!
21.06.2012 18:31:37
cfrei
Hallo Erich, du brauchst dich nicht zu entschuldigen, ich bin froh das mir jemand hilft. Ich bekomme jetzt die Fehlermeldung "Laufzeitfehler 13: Typen unverträglich". Wenn ich auf Debuggen drücke markiert er "Workbooks(strErg).Activate". Frage müsste es nicht heißen: "Windows(strErg).Activate" (hat aber so auch nicht funktioniert) denn die Datei aus der ich die Daten holen möchte ist bereits geöffnet. Das Makro soll "nur" feststellen, welcher der Dateien (wegen dem Namen) offen ist und aktivieren. Danke!
zweiter Versuch
21.06.2012 20:17:21
Erich
Hi Claus,
mit Workbooks müsste das auch klappen. "13 - Typen unverträglich" habe ich nicht hinbekommen,
dafür aber eine hoffentlich etwas bessere 2. Version:

Sub DateiNrActivate2()
Dim strFile As String, ww As Integer, nr As Integer
Dim strTest As String, strErg As String
Const Shortname As String = "_muster"
strFile = "export_" & Shortname & "_" & Format(Date, "dd-mm-yyyy")
strTest = strFile & ".xlsx"
Do While ww  999 Then Stop
strErg = strTest
If nr > 0 Then strTest = strFile & -nr & ".xlsx"
For ww = 1 To Workbooks.Count
If UCase$(Workbooks(ww).Name) = UCase$(strTest) Then Exit For
Next ww
If ww  0 Then
Workbooks(strErg).Activate
Else
MsgBox "Keine offene Mappe '" & strErg & "' gefunden", _
vbCritical, "DateiNrActivate2"
End If
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: zweiter Versuch
25.06.2012 09:57:20
cfrei
Hi Erich,
jetzt sieht es schon besser aus. ;=)
Jetzt bekomme ich die Fehlermeldung: "Keine offene Mappe 'XXXXXXX' gefunden."
Der Angezeigte Name (XXXXXXX) passt zwar zu der offenen Datei, er hat aber den Dateiname ohne dem -Nr angezeigt. Da ich die Tabelle mit den -1 offen habe, ist es klar, dass er sie nicht finden kann.
Kann man das Makro so programmierenm, dass dieser versucht es eine Datei ohne einer -Nr zu aktivieren, wenn keine gefunden wird, dann soll versucht werden die mit der -1 zu aktivieren, wenn diese auch nicht gefunden werden kann, dann mit -2 versuchen, usw.
Vielen Dank für deine Bemühungen.
Viele Grüße
Claus Freiwald
Anzeige
dritter Versuch
25.06.2012 11:31:47
Erich
Hi Claus,
immer weiter klärt sich die Aufgabenstellung... :-)
Probier mal

Sub DateiNrActivate3()
Dim strFile As String, nr As Integer, ii As Integer
Dim strTest As String, strN As String, strT As String
Const Shortname As String = "_muster"
strFile = "export_" & Shortname & "_" & Format(Date, "dd-mm-yyyy")
strTest = UCase$(strFile & "*.xlsx")
nr = -1
For ii = 1 To Workbooks.Count
strN = UCase$(Workbooks(ii).Name)
If strN Like strTest Then
If strN = UCase$(strFile & ".xlsx") Then
If nr  0:   Workbooks(strFile & -nr & ".xlsx").Activate
Case Else
MsgBox "Keine offene Mappe '" & strFile & "' gefunden", _
vbCritical, "DateiNrActivate3"
End Select
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: dritter Versuch
25.06.2012 17:04:09
cfrei
ES HAT FUNKTIONIERT!!!!!!!!!!!! Vielen Dank!!!!!!!!!
xyz...-0.xlsx brauche ich nicht, da es nicht -0 geben wird. Kleinste NUmmer mit "-" wäre die 1
Nochmals vielen Dank!
Viele grüße
Claus
und Nummer 4
25.06.2012 12:01:02
Erich
Hi Claus,
so funzt auch xy...-0.xlsx :

Sub DateiNrActivate4()
Dim strFile As String, nr As Integer, ii As Integer
Dim strTest As String, strN As String, strT As String
Const Shortname As String = "_muster"
strFile = "export_" & Shortname & "_" & Format(Date, "dd-mm-yyyy")
strTest = UCase$(strFile & "*.xlsx")
nr = -9
For ii = 1 To Workbooks.Count
strN = UCase$(Workbooks(ii).Name)
If strN Like strTest Then
If strN = UCase$(strFile & ".xlsx") Then
If nr  -1:  Workbooks(strFile & "-" & nr & ".xlsx").Activate
Case Else
MsgBox "Keine offene Mappe '" & strFile & "' gefunden", _
vbCritical, "DateiNrActivate3"
End Select
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: zweiter Versuch
25.06.2012 12:46:57
cfrei
Hi Erich,
jetzt sieht es schon besser aus. ;=)
Jetzt bekomme ich die Fehlermeldung: "Keine offene Mappe 'XXXXXXX' gefunden."
Der Angezeigte Name (XXXXXXX) passt zwar zu der offenen Datei, er hat aber den Dateiname ohne dem -Nr angezeigt. Da ich die Tabelle mit den -1 offen habe, ist es klar, dass er sie nicht finden kann.
Kann man das Makro so programmierenm, dass dieser versucht es eine Datei ohne einer -Nr zu aktivieren, wenn keine gefunden wird, dann soll versucht werden die mit der -1 zu aktivieren, wenn diese auch nicht gefunden werden kann, dann mit -2 versuchen, usw.
Vielen Dank für deine Bemühungen.
Viele Grüße
Claus Freiwald
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige