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

mehrere Dateien öffnen im letzes Blatt Makro start

mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 09:12:10
Andreas
Hallo liebe Forumer,
gerne würde ich nochmal eure Hilfe in Anspruch nehmen, da mir folgendes Problem 1-2 Nummer zu groß ist.
Problem: Ich habe ein Verzeichnis mit 4 Unterordnern (2016,2017,2018,2019). In diesen Ordern liegen jeweils xls. & xlsm Dateien. Gerne würde ich über ein Makro jeweils in den Ordnern explizit verschiedene xlsm Dateien (nicht alle) auswählen. Diese sollten dann nacheinander geöffnet werden und es sollte im letzten Blatt ein in den Datei integriertes Makro ausgeführt werden. Dann speichern und schliessen.
Vielleicht könnt ihr mir hier noch Hilfestellung geben.
Danke für euren Mühen.
Gruß
Andreas

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 14:20:06
Nepumuk
Hallo Andreas,
nach welchem Kriterium werden die Mappe, welche geöffnet werden sollen, bestimmt?
Gruß
Nepumuk
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 14:25:04
Andreas
Hallo Nepumuk,
es handelt sich hier um Kostenauswertungen für Baustellen.
D.h. monatlich wird in allen noch aktiven Baustellendateien ein neuer Monat per Makro eingefügt.
Dies möchte ich gerne mit meiner Problemstellung umgehen, sodass ich nicht jede einzelne Datei manuell
öffnen und anpassen muss.
Gruß
Andreas
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 14:30:42
Nepumuk
Hallo Andreas,
das beantwortet meine Frage nicht. Also nochmal, anhand welcher Kriterien kann Excel erkennen welche Datei geöffnet werden soll?
Gruß
Nepumuk
Anzeige
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 14:34:01
Andreas
Hallo Nepumuk,
Excel kann das wahrscheinlich garnicht erkennen. Es werden nur xlsm.Datei geöffnet. Welche genau kann nur der User bestimmen.Gibt es hier nicht die Möglichkeit ein Auswahldialog einzubinden, wo der User die betreffenden Dateien auswählt?
Danke
Andreas
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 14:58:43
Nepumuk
Hallo Andreas,
einen Excelinternen Dialog für mehrere Unterordner gibt es nicht. Wie wäre es mit einem eigenen Dialog über welche die Dateien ausgewählt werden können?
Gruß
Nepumuk
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 15:01:00
Andreas
Hallo Nepumuk,
ein eigener Dialog wäre eine sehr gute Idee.....ich weis leider nicht wie man dies umsetzt.
Danke
Andreas
Anzeige
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 15:31:51
Nepumuk
Hallo Andreas,
ich hab dir mal eine Beispielmappe erstellt. Du musst:
1. Im UserForm_Initialize-Event hier: Const FOLDER_PATH As String = "H:\Test\" 'anpassen !!! den Pfad anpassen.
2. Im CommandButton1_Click-Event hier: Call Run(Macro:=.Name & "!DeinMakro") 'anpassen !!! den Namen des Makros anpassen welches in den Mappen aufgerufen werden soll.
https://www.herber.de/bbs/user/130390.xlsm
Gruß
Nepumuk
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 16:03:14
Andreas
Hallo Nepumuk,
das sieht schon super aus. Ich bekomme allerdings die Fehlermeldung, dass das Makro nicht ausgeführt werden kann oder nicht verfügbar ist. Makro ist aber aktiv und per Button (hinterlegt auf dem Blatt) in der Datei auch ausführbar. Hättest du eine Idee voran das liegen könnte?
Danke
Andreas
Anzeige
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 16:12:10
Nepumuk
Hallo Andreas,
um ein Makro in einer Klasse aufzurufen musst du den Namen der Klassen mit angeben. In deinem Fall also so:
Private Sub CommandButton1_Click()
    Dim objWorkbook As Workbook
    Dim strObjectName As String
    Dim lngIndex As Long
    Call Hide
    Application.ScreenUpdating = False
    For lngIndex = 0 To ListBox1.ListCount - 1
        With ListBox1
            If .Selected(pvargIndex:=lngIndex) Then
                Set objWorkbook = Workbooks.Open(Filename:= _
                    .List(pvargIndex:=lngIndex, pvargColumn:=1) & .List(pvargIndex:=lngIndex, pvargColumn:=0))
                With objWorkbook
                    With .Worksheets(.Worksheets.Count)
                        Call .Select
                        strObjectName = .CodeName
                    End With
                    Call Run(Macro:=.Name & "!" & strObjectName & ".DeinMakro") 'anpassen !!!
                    Call .Close(SaveChanges:=True)
                End With
            End If
        End With
    Next
    Application.ScreenUpdating = True
    CommandButton2.Value = True
End Sub

Das Makro in der Tabelle darf nicht als Private deklariert sein!
Gruß
Nepumuk
Anzeige
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 16:34:44
Andreas
Hallo Nepumuk,
wir kommen der Sache glaube ich näher. Jetzte bekomme ich die gleiche Fehlermeldung, allerdings zeigt er mir den Dateinamen.xlsm!Tabelle11.NeuesBlatt an. In der Datei gibt es aber aktuell nur 10 Blätter. Rührt daher die Meldung? Quasi springt ein Blatt zuweit, dieses gibt es aber noch nicht und soll ja mit dem Macro angelegt werden.
Danke nochmal für deine Mühen.
Gruß
Andreas
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 16:40:10
Nepumuk
Hallo Andreas,
der Objektname einer Tabelle ist der Name den du im Projektexplorer vor dem in Klammern stehenden Namen der Tabelle auf der Exceloberfläche findest. Der Objektname wird vom Makro ermittelt, der stimmt also garantiert. Ich denke, es liegt an der Deklaration des Makros. Zeig mal den Code.
Gruß
Nepumuk
Anzeige
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 16:44:20
Andreas
Hallo Nepumuk,
ok. Verstehe.Hier der Code zum anlegen des neuen Blatts (Monat):
Option Explicit
Sub NeuesBlatt()
Dim AnzTB As Integer, TBMinus1 As String, TB1, TBneu, TMP As String, Monat As String
AnzTB = 4 'ab Tabellenblatt 4 stehen die Monate
If Sheets.Count >= AnzTB Then
Set TB1 = Sheets(Sheets.Count)
TBMinus1 = Sheets(Sheets.Count - 1).Name
TMP = "01. " & TB1.Name & " " & Year(Date)
If Not IsDate(TMP) Then
MsgBox " Fehler Blattbenennung: " & TB1.Name ' kein Monatsname
Exit Sub
End If
'nächster Monat
Monat = Format(DateSerial(Year(TMP), Month(TMP) + 1, 1), "MMMM")
'Blatt kopieren
TB1.Copy after:=Sheets(TB1.Name)
Set TBneu = ActiveSheet
'Blatt umbenennen
TBneu.Name = Monat
With TB1.UsedRange
'Formeln aus Vormonat raus
.Value = .Value
End With
'aktuelle Formeln auf Vormonat anpassen
TBneu.Cells.Replace what:="=" & TBMinus1 & "!", Replacement:="=" & TB1.Name & "!", _
lookat:=xlPart, SearchOrder:=xlByRows
Range("D32").Copy
Range("D30").PasteSpecial xlPasteValuesAndNumberFormats
Range("D29").Copy
Range("D31").PasteSpecial xlPasteValuesAndNumberFormats
TB1.Shapes(2).Delete
Else
'wenn nur die Inhaltsblätter da sind
MsgBox "Blattfehler: Startmonat oder ein Inhaltsblatt fehlt"
End If
TBneu.Range("G3") = Monat
'Call Daten_Rechnungen_holen
End Sub
Gruß
Andreas
Anzeige
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 16:49:01
Andreas
Hallo Nepumuk,
ok. Verstehe.Hier der Code zum anlegen des neuen Blatts (Monat):
Option Explicit
Sub NeuesBlatt()
Dim AnzTB As Integer, TBMinus1 As String, TB1, TBneu, TMP As String, Monat As String
AnzTB = 4 'ab Tabellenblatt 4 stehen die Monate
If Sheets.Count >= AnzTB Then
Set TB1 = Sheets(Sheets.Count)
TBMinus1 = Sheets(Sheets.Count - 1).Name
TMP = "01. " & TB1.Name & " " & Year(Date)
If Not IsDate(TMP) Then
MsgBox " Fehler Blattbenennung: " & TB1.Name ' kein Monatsname
Exit Sub
End If
'nächster Monat
Monat = Format(DateSerial(Year(TMP), Month(TMP) + 1, 1), "MMMM")
'Blatt kopieren
TB1.Copy after:=Sheets(TB1.Name)
Set TBneu = ActiveSheet
'Blatt umbenennen
TBneu.Name = Monat
With TB1.UsedRange
'Formeln aus Vormonat raus
.Value = .Value
End With
'aktuelle Formeln auf Vormonat anpassen
TBneu.Cells.Replace what:="=" & TBMinus1 & "!", Replacement:="=" & TB1.Name & "!", _
lookat:=xlPart, SearchOrder:=xlByRows
Range("D32").Copy
Range("D30").PasteSpecial xlPasteValuesAndNumberFormats
Range("D29").Copy
Range("D31").PasteSpecial xlPasteValuesAndNumberFormats
TB1.Shapes(2).Delete
Else
'wenn nur die Inhaltsblätter da sind
MsgBox "Blattfehler: Startmonat oder ein Inhaltsblatt fehlt"
End If
TBneu.Range("G3") = Monat
'Call Daten_Rechnungen_holen
End Sub
Gruß
Andreas
Anzeige
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 17:02:41
Nepumuk
Hallo Andreas,
jetzt habe ich es getestet. Funktioniert einwandfrei. Hast du in der Run-Methode auch den Makronamen angepasst?
Call Run(Macro:=.Name & "!" & strObjectName & ".NeuesBlatt") 'anpassen !!!
Gruß
Nepumuk
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 21:07:42
Andreas
Hallo Nepumuk,
ich sehe gerade das meine Antwort nicht gesendet wurde. Hier dann nochmal.
Bei mir funktioniert es leider immer noch nicht. Habe alle Werte korrekt eingegeben.
Ich habe eine Vorlagen der abzurufenden Datei hochgeladen. Vielleicht wärst du so nett dir diese mal anzuschauen. Evtl. kannst du sehen woran es liegt.
https://www.herber.de/bbs/user/130400.xlsm
Danke vorab.
Gruß Andreas
Anzeige
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 21:22:52
Nepumuk
Hallo Andreas,
das VBA-Projekt ist mit einem Kennwort geschützt. Verrätst du es mir oder soll ich es knacken?
Gruß
Nepumuk
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 21:42:09
Andreas
Hallo Nepumuk,
Sorry. PW: AnHa%778
Gruß
Andreas
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 22:27:54
Nepumuk
Hallo Andreas,
das Makro befindet sich doch in einem Standardmodul und nicht im Klassenodul einer Tabelle.
So funktioniert es bei mir:
Private Sub CommandButton1_Click()
    Dim objWorkbook As Workbook
    Dim lngIndex As Long
    Call Hide
    Application.ScreenUpdating = False
    For lngIndex = 0 To ListBox1.ListCount - 1
        With ListBox1
            If .Selected(pvargIndex:=lngIndex) Then
                Set objWorkbook = Workbooks.Open(Filename:= _
                    .List(pvargIndex:=lngIndex, pvargColumn:=1) & _
                    .List(pvargIndex:=lngIndex, pvargColumn:=0))
                With objWorkbook
                    Call .Worksheets(.Worksheets.Count).Select
                    Call Run(Macro:=.Name & "!NeuesBlatt")
                    Call .Close(SaveChanges:=True)
                End With
            End If
        End With
    Next
    Application.ScreenUpdating = True
    CommandButton2.Value = True
End Sub

Gruß
Nepumuk
Anzeige
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 22:42:46
Andreas
Hallo Nepumuk,
ich verstehe das einfach nicht. Es funktioniert bei mir nicht.
Fehler bei: Call Run(Macro:=.Name & "!NeuesBlatt").
Datei wird korrekt geöffnet.
Gruß Andreas
AW: mehrere Dateien öffnen im letzes Blatt Makro start
15.06.2019 08:03:09
Nepumuk
Hallo Andreas,
dann muss ich passen. Bei mir funktioniert es mit deiner Datei.
Gruß
Nepumuk
AW: mehrere Dateien öffnen im letzes Blatt Makro start
14.06.2019 16:06:25
Andreas
Hallo Nepumuk,
das sieht schon super aus. Ich bekomme allerdings die Fehlermeldung, dass das Makro nicht ausgeführt werden kann oder nicht verfügbar ist. Makro ist aber aktiv und per Button (hinterlegt auf dem Blatt) in der Datei auch ausführbar. Hättest du eine Idee voran das liegen könnte?
Danke
Andreas
AW: mehrere Dateien öffnen im letzes Blatt Makro start
16.06.2019 15:10:35
Piet
Hallo Andras
ich war bis jetzt nicht im Thread weil der Kollege Nepumuk fachlich eindeutig besser qualifiziert ist wie ich.
Falls sein Programm nicht ans laufen kommt kann ich dir eine sog. "Simpel Version" anbieten, die nicht so elegant ist wie seine Lösung, aber einfachen Ansprüchen genügt. Anbei meine Beispieldatei.
Ein Button listet dir den Ordner mit Unterordner auf. Der Pfad muss in Zelle "B1" angegeben werden. Der zweite Button öffnet die mit "x" markierten Dateien, und schliesst sie ohne zu speichern. In dieser For Nxt Schleife kannst du dein Makro aufrufen.
Ich hoffe es klappt so wie ich mir das vorstelle ...
https://www.herber.de/bbs/user/130420.xlsm
mfg Piet
AW: mehrere Dateien öffnen im letzes Blatt Makro start
17.06.2019 10:07:45
Andreas
Hallo Piet,
danke für deine Hilfe und Mühe.
Leider komme ich hier auch nur genauso weit wie mit Nepumuks Makro.
Die Blätter werden korrekt geöffnet und das letzte Blatt wird auch ausgewählt.
Das einzige was nicht funktioniert ist das Aufrufen des Makros......ich kann mir das nicht erklären.
Das Makro (NeuesBlatt) wird immer auf dem letzten Blatt über einem Button gestartet. Wenn der neue Monat/neues Blatt angelegt wurde wird im "alten Blatt" der Button ausgeblendet, nicht jedoch im neu angelegten. Ich verstehe nicht warum das MAkro nicht gefunden/gestartet werden kann.
Gruß
Andreas
AW: mehrere Dateien öffnen im letzes Blatt Makro start
17.06.2019 10:44:21
Andreas
Hallo Piet,
danke für deine Hilfe und Mühe.
Leider komme ich hier auch nur genauso weit wie mit Nepumuks Makro.
Die Blätter werden korrekt geöffnet und das letzte Blatt wird auch ausgewählt.
Das einzige was nicht funktioniert ist das Aufrufen des Makros......ich kann mir das nicht erklären.
Das Makro (NeuesBlatt) wird immer auf dem letzten Blatt über einem Button gestartet. Wenn der neue Monat/neues Blatt angelegt wurde wird im "alten Blatt" der Button ausgeblendet, nicht jedoch im neu angelegten. Ich verstehe nicht warum das MAkro nicht gefunden/gestartet werden kann.
Gruß
Andreas
AW: mehrere Dateien öffnen im letzes Blatt Makro start
17.06.2019 16:20:42
Andreas
Hallo Nepumuk,
hallo Piet,
so wie es aussieht habe ich die Lösung nach ewig langem testen gefunden.
Habe Call Run(Macro:=.Name & "!NeuesBlatt") ausgetauscht gegen
Application.Run ("'" & .Name & "'!NeuesBlatt"). Jetzt klappt es bei mir auch.
Ist das trotzdem noch guter Code, oder eher nicht?
Private Sub CommandButton1_Click()
Dim objWorkbook As Workbook
Dim lngIndex As Long
Call Hide
Application.ScreenUpdating = False
For lngIndex = 0 To ListBox1.ListCount - 1
With ListBox1
If .Selected(pvargIndex:=lngIndex) Then
Set objWorkbook = Workbooks.Open(Filename:= _
.List(pvargIndex:=lngIndex, pvargColumn:=1) & _
.List(pvargIndex:=lngIndex, pvargColumn:=0))
With objWorkbook
Call .Worksheets(.Worksheets.Count).Select
Application.Run ("'" & .Name & "'!NeuesBlatt")
'Call Run(Macro:=.Name & "!NeuesBlatt")
Call .Close(SaveChanges:=True)
End With
End If
End With
Next
Application.ScreenUpdating = True
CommandButton2.Value = True
End Sub

Danke nochmal herzlichst für eure Mühen.
Gruß
Andreas
AW: mehrere Dateien öffnen im letzes Blatt Makro start
17.06.2019 18:29:50
Nepumuk
Hallo Andreas,
deine Zeile ist schon ok. Mich wundert's nur dass das bei mir funktioniert hat und bei dir nicht. Na Hauptsache es läuft jetzt.
Gruß
Nepumuk
AW: mehrere Dateien öffnen im letzes Blatt Makro start
17.06.2019 16:28:24
Andreas
Hallo Nepumuk,
hallo Piet,
so wie es aussieht habe ich die Lösung nach ewig langem testen gefunden.
Habe Call Run(Macro:=.Name & "!NeuesBlatt") ausgetauscht gegen
Application.Run ("'" & .Name & "'!NeuesBlatt"). Jetzt klappt es bei mir auch.
Ist das trotzdem noch guter Code, oder eher nicht?
Private Sub CommandButton1_Click()
Dim objWorkbook As Workbook
Dim lngIndex As Long
Call Hide
Application.ScreenUpdating = False
For lngIndex = 0 To ListBox1.ListCount - 1
With ListBox1
If .Selected(pvargIndex:=lngIndex) Then
Set objWorkbook = Workbooks.Open(Filename:= _
.List(pvargIndex:=lngIndex, pvargColumn:=1) & _
.List(pvargIndex:=lngIndex, pvargColumn:=0))
With objWorkbook
Call .Worksheets(.Worksheets.Count).Select
Application.Run ("'" & .Name & "'!NeuesBlatt")
'Call Run(Macro:=.Name & "!NeuesBlatt")
Call .Close(SaveChanges:=True)
End With
End If
End With
Next
Application.ScreenUpdating = True
CommandButton2.Value = True
End Sub

Danke nochmal herzlichst für eure Mühen.
Gruß
Andreas
AW: mehrere Dateien öffnen im letzes Blatt Makro start
18.06.2019 18:39:44
Piet
Hallo Andreas
ich freue mich das sich Matthias in den Thread eingeklinkt hat, er hat sicher mehr Fachwissen wie ich.
Ich habe seine Idee mit Multipage Seiten mal aufgegriffen, und eine neue UserForm5 erstellt, indem ich einfach die Elemente aus den anderen UFormen hinein kopiert habe. Bin erfreut das dass so problemlos geht!!
Hier ist mein Fachwissen aber am Ende, diese UForm habe ich noch nie programmiert. Da fehlt mir jedes Wissen um dir weiterhelfen zu können. Vielleicht kannst du diese Version ja mit Matthias zusammen fertig entwickeln.
https://www.herber.de/bbs/user/130463.xlsm
mfg Piet
AW: Fehler im falschen Thread geantwortet oWt
18.06.2019 18:44:04
Piet
Sorry, diese Antwort gehörte in den Thread: Makro stützt nach 18 Durchlaeufen ab!!

263 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige