Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
388to392
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
388to392
388to392
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

viele blätter auswerten

viele blätter auswerten
01.03.2004 15:36:37
nina
hallo ihe ex(cel)perte,
naja mein betreff klingt ewas daneben. also ich habe da folgendes problem.
ich habe in einem ordner ca. 100 arbeitsmappen. innerhalb dieser mappen haben die tabellenblätter immer den selben namen. nun geschieht es, dass manche arbeitsmappen wieder aus dem ordner gelöscht werden und neue hinzukommen. mein ziel ist es nun, die gesamtsumme aller einträge in A1 zu bilden und in einer gesamtarbeitsmappe darzustellen und diese natürlich immer auf dem aktuellen stand zu halten.
liebe grüsse nina

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: viele blätter auswerten
01.03.2004 16:40:02
Roland Hochhäuser
Hallo Ina,
...die gesamtsumme aller einträge in A1 zu bilden...
1. Von allen Mappen jeweils von Tabelle1, von Tabelle2 usw. oder wie auch immer die heißen mögen?
2. Was versteckt sich hinter "Gesamtsumme der Einträge"? Kannst du das mal beschreiben (z.B. Summe aller Werte aus der Zelle A1, oder Summe aller benutzten Zellen in Spalte B aus der Tabelle3 usw.)?
3. Ich unterstelle mal, dass deine "Wunsch-Gesamtarbeitsmappe" in ihrer Struktur ebenfalls den 100 oder mehr Einzelarbeitsmappen entsprechen soll. Um das dann vernünftig hinzukriegen, müsstest du diese Struktur entweder präzise beschreiben oder besser noch ein mit Spieldaten versehenes Beispiel hochladen.
Gruß
Roland
Anzeige
AW: viele blätter auswerten
01.03.2004 17:12:44
nina
hallo roland,
zu 1.) von allen mappen A1 aus tabelle1
zu 2.) die summe aller werte aus zelle A1
zu 3.) sie soll genau diese "Wunsch-Gesamtarbeitsmappe" werden.
schade, dass ich mich in meiner ersten fragestellung so ungenau ausgedrückt habe.
liebe grüsse nina
AW: viele blätter auswerten
01.03.2004 22:07:52
Roland Hochhäuser
Hallo Nina (sorry für die falsche Anrede),
erstelle eine neue Excelmappe, speichere sie außerhalb des zu durchsuchenden Ordners unter einem bislang nicht genutzten Namen ab und versuche dann aus dieser Datei heraus folgendes Makro:

Sub WerteInA1Zusammenfassen()
Dim wbs As Worksheet, strInput As String, i As Integer
Set wbs = ThisWorkbook.Sheets(1)
wbs.Range("A1") = ""
strInput = Application.InputBox("In welchem Verzeichnis befinden sich die einzulesenden Dateien?")
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
With Application.FileSearch
.LookIn = ThisWorkbook.Path
.FileType = msoFileTypeExcelWorkbooks
.Execute
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i), False
wbs.Range("A1").Value = wbs.Range("A1").Value + ActiveWorkbook.Sheets(1).Range("A1").Value
ActiveWorkbook.Close savechanges:=True
Next
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Du müsstest dann in Tabelle1 Zelle A1 die Summe aller Werte aus Tabelle1 Zelle A1 der im abgefragten Ordner durchsuchten Mappen haben.
Gruß
Roland
Anzeige
AW: viele blätter auswerten
02.03.2004 09:40:17
Nina
hallo Roland,
vielen dank für deine hilfe. leider verursacht das teil einen fehler. Meine Gesamtüberblick.xls habe ich in einem separaten Ordner abgelegt. alle auszuwertenen Arbeitsmappen liegen im Ordner test auf Y .nachdem ich in der application.inputbox den Pfad Y:/Test oder auch Y:\Test eintrage und mit "OK" bestätige erscheint folgende Meldung: Gesamtüberblick.xls ist bereits geöffnet.Wenn Sie es erneut öffnen, verlieren Sie damit alle Änderungen, die Sie eingegeben haben. Soll Gesamtüberblick.xls erneut geöffnet werden? egal, ob ich Ja oder Nein anklicken, Excel bricht völlig ein. Bei der einzelschrittüberprüfung passiert das irgendwo in der For-next-Schleife.
Kann der Ordnerpfad nicht im Code festgelegt werden?
Liebe grüsse Nina
Anzeige
AW: viele blätter auswerten
02.03.2004 10:19:58
Roland Hochhäuser
Hallo Nina,
die Datei "Gesamtüberblick.xls" darf sich nicht in dem Ordner befinden, der durchsucht werden soll. Speichere sie woanders ab, dann funktioniert es auch. Mein erster Vorschlag hatte auch zwei Fehler, die jetzt korrigiert sind (war gestern nicht mein Tag). Wenn du den Pfad nicht auswählen möchtest, müsste das funktionieren:

Sub WerteInA1Zusammenfassen()
Dim wbs As Worksheet, strInput As String, i As Integer
Set wbs = ThisWorkbook.Sheets(1)
wbs.Range("A1") = ""
strInput = "Y:\Test" 'Application.InputBox("In welchem Verzeichnis befinden sich die einzulesenden Dateien?")
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
With Application.FileSearch
.LookIn = strInput
.FileType = msoFileTypeExcelWorkbooks
.Execute
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i), False
wbs.Range("A1").Value = wbs.Range("A1").Value + ActiveWorkbook.Sheets(1).Range("A1").Value
ActiveWorkbook.Close savechanges:=False
Next
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Gruß
Roland
Anzeige
Ja,so klappt es
02.03.2004 12:08:31
Nina
hallo roland,
ja so angepasst läuft es super.
lass uns mal einen drauf setzen. und in B1 die anzahl der nichtleeren zellen darstellen, die für das ergebnis in A1 herangezogen wurden.
falls du noch lust hast.
gruß nina
AW: Ja,so klappt es
02.03.2004 12:34:19
Roland Hochhäuser
Hallo Nina,
schau mal, ob das läuft:

Sub WerteInA1Zusammenfassen()
Dim wbs As Worksheet, strInput As String, i As Integer, j As Integer
Set wbs = ThisWorkbook.Sheets(1)
wbs.Range("A1") = ""
wbs.Range("B1") = ""
strInput = "Y:\Test" 'Application.InputBox("In welchem Verzeichnis befinden sich die einzulesenden Dateien?")
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
With Application.FileSearch
.LookIn = strInput
.FileType = msoFileTypeExcelWorkbooks
.Execute
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i), False
If Not IsEmpty(ActiveWorkbook.Sheets(1).Range("A1")) Then j = j + 1
wbs.Range("A1").Value = wbs.Range("A1").Value + ActiveWorkbook.Sheets(1).Range("A1").Value
ActiveWorkbook.Close savechanges:=False
Next
End With
wbs.Range("B1") = j
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Ist die Salami jetzt aufgeschnitten?
Gruß
Roland
Anzeige
dat läuft leider nit so
02.03.2004 13:27:26
Nina
hallo roland,
danke für die schnelle antwort. leider läuft das nicht so rund. ich probiere da gerade mit zwei testmappen aus. egal ob in A1 der testmappen was drinsteht, es werden immer 2 als ergebnis in B1 angezeigt. grübel
kann das daran liegen, dass ich die A1 stets mit einer wenn-funktion belegt habe?
=wenn(summe(D6:D15)<10;"";2)
liebe grüsse Nina
AW: dat läuft leider nit so
02.03.2004 13:54:25
Roland Hochhäuser
Hallo Nina,
klar, daran liegts, dann musst du das so schreiben:
If Not ActiveWorkbook.Sheets(1).Range("A1") = "" then . . . . .
Gruß
Roland
AW: dat läuft leider nit so
02.03.2004 14:48:54
Nina
hallo roland,
leider funzt das nicht. bei mir ist j immer 2, egal ob in A1 der mappen eingetragen oder dort "" eingetragen ist. die if not - anweisung wird völlig ignoriert.
grübelgrübelkopfschüttel

liebe Grüsse nina
Anzeige
AW: dat läuft leider nit so
02.03.2004 16:04:47
Roland Hochhäuser
Nina, hast du die auch so geschrieben?:

Sub WerteInA1Zusammenfassen()
Dim wbs As Worksheet, strInput As String, i As Integer, j As Integer
Set wbs = ThisWorkbook.Sheets(1)
wbs.Range("A1") = ""
wbs.Range("B1") = ""
strInput = "Y:\Test" 'Application.InputBox("In welchem Verzeichnis befinden sich die einzulesenden Dateien?")
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
With Application.FileSearch
.LookIn = strInput
.FileType = msoFileTypeExcelWorkbooks
.Execute
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i), False
If Not ActiveWorkbook.Sheets(1).Range("A1") = "" Then j = j + 1
wbs.Range("A1").Value = wbs.Range("A1").Value + ActiveWorkbook.Sheets(1).Range("A1").Value
ActiveWorkbook.Close savechanges:=False
Next
End With
wbs.Range("B1") = j
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Gruß
Roland
Anzeige
genau so
03.03.2004 08:18:48
Nina
hallöchen Roland,
ja genau so steht es bei mir geschrieben. aber leider zählt er die ausgefüllten zellen nicht korrekt. beim ergebnis werden immer alle vorhandenen zellen angezeigt; also j ist immer gleich der anzahl der testarbeitsmappen.
da ist doch der wurm drin.
liebe grüsse nina
AW: genau so
03.03.2004 09:22:38
Roland Hochhäuser
Hallo Nina,
dann steht entweder in jeder der durchsuchten Mappen in A1 tatsächlich was drin oder, wenn das falsch sein sollte, du hast in einer oder mehreren der Mappen in A1 noch was anderes als die besagte Wenn-Formel [=wenn(summe(D6:D15)<10;"";2)] geschrieben. Schau da noch mal nach. Ich habe sonst keine Erklärung mehr.
Bei mir läuft das Makro durch und zählt auch korrekt auf.
Gruß
Roland
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige