Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
952to956
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
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

alle xls eines Ordners öffen, Wert kopieren

alle xls eines Ordners öffen, Wert kopieren
25.02.2008 16:51:18
Jens
Hallo zusammen,
ich habe folgendes Problem:
ich habe in einem Ordner jeden Monat ca. 30 Dateien. Von denen brauche ich jeweils Zelle "P14" und will sie in ein neues Workbook kopieren.
Folgende Lösung habe ich im Internet gefunden, funktioniert aber natürlich nicht 100%ig für mein Problem:

Sub makro01()
Dim i As Integer, letzte As Integer
Dim Tabellen As Integer
Application.DisplayAlerts = False
With Application.FileSearch
.NewSearch
.LookIn = ("C:\\eigene Dateien\eigene Dokumente\Januar")
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(i)
For Tabellen = 1 To Sheets.Count

Workbooks(2).Worksheets(Tabellen).Columns("A:C").Replace _
what:="#", replacement:=" ", searchorder:=xlByColumns, MatchCase:=True

Next Tabellen
Workbooks(2).Save
Workbooks(2).Close
Next i
End If
End With
Application.DisplayAlerts = True
End Sub


Meine Frage: Wie muss ich die markierten Zeilen verändern, dass jeweils Zelle "P14" untereinander in ein neues Workbook kopiert wird.
Da will ich dann nämlich eine Gesamtsumme ziehen.
Vielen Dank schon im Voraus!
mfG
Jens

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: alle xls eines Ordners öffen, Wert kopieren
25.02.2008 17:58:00
Chris
Servus,
da ich nicht weiß, wo P14 steht (SheetName ?) und wo's hin soll so:

Sub makro01()
Dim i As Integer, letzte As Integer
Application.DisplayAlerts = False
With Application.FileSearch
.NewSearch
.LookIn = ("C:\\eigene Dateien\eigene Dokumente\Januar") ' Hier dein Pfad
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(i)
ActiveWorkbook.Sheets(1).Range("P14").Copy ThisWorkbook.Sheets(1).Range("A65536").End(xlup). _
Offset(1, 0)
ActiveWorkbook.Close
Next i
End If
End With
Application.DisplayAlerts = True
End Sub


Code in die Datei, in der die Auswertung stattfindet.
Hier wird jetzt aus Sheet(1) der Quelldatei der Wert aus P14 in Spalte A der Zieldatei.Sheet(1) kopiert
Gruß
Chris

Anzeige
AW: alle xls eines Ordners öffen, Wert kopieren
26.02.2008 09:21:00
Jens
Erstmal Danke!
ich versuche das mal weiter zu präzisieren:
ich habe 30 monatliche Berichte ("Bericht Bremen - 070104.xls"), die identisch aufgebaut sind und alle im gleichen Ordner ("C:\\eigene Dateien\eigene Dokumente\Januar") liegen.
das jeweils erste Worksheet heißt "Summary". Davon brauche ich jerweils nur die Zelle "P14"
die soll bei allen Dokumenten kopiert und dann in ein neues Word-Dokument "Zusammenfassung eingefügt werden sollen.
Das einfügen untereinander, dass man dann eine Summe ziehen kann.
Deine bisherige Lösung hat noch nicht funktioniert.
Hat da nicht irgendwo ein "paste" gefehlt?
Vielen Dank!
Jens

Anzeige
AW: alle xls eines Ordners öffen, Wert kopieren
26.02.2008 15:39:00
Chris
Servus Jens,
da fehlt nichts. (ob Sheets("Summary") oder Sheets(1) ist wurst, wenn es das erste Sheet ist)
Das Makro funktioniert. Zumindest von ExcelTabelle zu Exceltabelle. Jetzt weiß ich aber nicht, ob das ein Schreibfehler war, oder ob du wirklich in eine Wordtabelle kopieren willst.
Gruß
Chris

AW: alle xls eines Ordners öffen, Wert kopieren
27.02.2008 15:40:00
Jens
Hallo,
nein, das mit dem Word-Dokument war tatsächlich ein Schreibfehler, sorry.
aber es funktioniert trotzdem nicht. ich hab's mehrfach ausprobiert.
es wird nichts eingefügt...

AW: alle xls eines Ordners öffen, Wert kopieren
27.02.2008 17:44:00
Chris
Servus,
bei mir funktioniert das. Wo steht das Makro? Was ist mit dem Pfad, ist das die richtige Schreibweise?
Das Makro muss in das Workbook, in das eingefügt werden soll.
Gruss
Chris

Anzeige
AW: alle xls eines Ordners öffen, Wert kopieren
28.02.2008 10:50:00
Jens
Hi,
vielen Dank für deine Mühe und Geduld ;-)
ich habe jetzt einfach mal das kopiert, was ich aktuell verwende.
dazwischen habe ich meine Verständnisfragen(kursiv), wäre nett, wenn du mir die beantworten könntest.
vermutlich liegt es ja wirklich nur an einem Parameter, den ich jedes mal wieder falsch einsetze.
Grüße
Jens

Sub Open_Workbooks()
' Open_Workbooks Makro
' Makro am 25.02.2008 von demftws5 aufgezeichnet
Dim i As Integer, letzte As Integer
' Variable ist ganzzahlig
Application.DisplayAlerts = False
' Was genau bringt dieser Befehl?
With Application.FileSearch
.NewSearch
'Applikation Suche
.LookIn = ("I:\PE_SW\SW\01 - Team Organization\a - Team Members\Werkstudenten & Azubis\Jens\ _
Reporting")
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
' ist das eine wenn-dann-Funktion? wenn du mehr als 0 xls-Dokumente findest?
For i = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(i)
ActiveWorkbook.Sheets("Summary").Range("O14").Copy ThisWorkbook.Sheets("Summary").Range("A65536" _
).End(xlUp). _
Offset(1, 0)
' das heißt er macht nach jedem eingefügten Wert einen Absatz, oder?
ActiveWorkbook.Close
Next i
' das heißt nach i=x, kommt i=x+1, oder?
End If
' Ende der wenn-dann-Funktion?
End With
' Ende der Suchapplikation?
Application.DisplayAlerts = True
End Sub


Anzeige
AW: alle xls eines Ordners öffen, Wert kopieren
28.02.2008 13:54:18
Chris
Servus,
Erläuterungen im Makrotext:

Sub Open_Workbooks()
' Open_Workbooks Makro
' Makro am 25.02.2008 von demftws5 aufgezeichnet
Dim i As Integer, letzte As Integer
' Variable ist ganzzahlig
Application.DisplayAlerts = False
' Was genau bringt dieser Befehl? Er schaltet die Fehlermeldungen bzw. Abfragen von Excel aus,  _
z.B.: Wollen Sie die Änderungen in ...xls speichern?
With Application.FileSearch
.NewSearch
'Applikation Suche
.LookIn = "I:\PE_SW\SW\01 - Team Organization\a - Team Members\Werkstudenten & Azubis\Jens\ _
Reporting" ' Die Klammern braucht man nicht
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
' ist das eine wenn-dann-Funktion? wenn du mehr als 0 xls-Dokumente findest? D.h.:Wenn mind.  _
eine Datei da ist, dann führ die Schleife aus., wenn nicht dann nicht.
For i = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(i)
ActiveWorkbook.Sheets("Summary").Range("O14").Copy ThisWorkbook.Sheets("Summary").Range("A65536" _
_
).End(xlUp). _
Offset(1, 0)
' das heißt er macht nach jedem eingefügten Wert einen Absatz, oder? Ja, beginnend in A2 und  _
dann immer in jede nächste freie Zelle in Spalte A
ActiveWorkbook.Close
Next i
' das heißt nach i=x, kommt i=x+1, oder? z.B.: Wenn 2 gefunden wurden, dann i = 1 Next i, i = 2  _
Ende
End If
' Ende der wenn-dann-Funktion? ' Ende Execute()
End With
' Ende der Suchapplikation? ' Ende Filesearch
Application.DisplayAlerts = True ' Alarmmeldungen wieder einschalten
End Sub


Funktioniert's denn jetzt?
Gruß
Chris

Anzeige
AW: alle xls eines Ordners öffen, Wert kopieren
29.02.2008 09:29:00
Jens
Hi Chris!
ich bin ein Idiot! Es klappt natürlich!
Es hat nicht funktioniert, weil ich meine Datei mit dem Makro in genau DEM Ordner lag, der durchsucht werden sollte ;-)
eine Frage hab' ich aber noch:
Er hat mir jetzt formeln kopiert. Geht das auch mit harten Zahlen?
Vielen Dank!
Jens

AW: alle xls eines Ordners öffen, Wert kopieren
29.02.2008 10:09:00
Jens
Damit hätte ich es sonst versucht, aber das klappt leider nicht...
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False

AW: alle xls eines Ordners öffen, Wert kopieren
29.02.2008 14:17:41
CeyserSoze
Hallo Jens,
ich hatte schon mal ein ähnliches Problem, nur dass ich mehrere hundert Dateien bearbeiten musste - deshalb habe ich dieses Makro geschrieben (die Anpassung an Deine Anforderungen erfolgt im Bereich "Benutzerdefinition":

      
Sub prcZellenwertHolen()
    
Dim oFileSystem As Object, oFolder As Object, oFile   As Object
    
Dim sPfad       As String, sZelle  As String, sFormel As String, sBlatt As String
    
Dim iZeile      As Long, iSpalte   As Long
    
    
'### Benutzerdefinition ###########################################################
        sPfad = "I:\Ordner"     'Pfad mit XLS-Dateien angeben
        sBlatt = "Tabelle1"     'Wert in Tabelle sBlatt suchen
        sZelle = "P14"          'Zelle zum summieren angeben
        iSpalte = 2             'Ausgabe in Spalte iSpalte beginnen
        iZeile = 2              'Ausgabe in Zeile iZeile beginnen
    '##################################################################################
    
    sBlatt = sBlatt & "'!"
    
Set oFileSystem = CreateObject("Scripting.FilesystemObject")
    
Set oFolder = oFileSystem.getFolder(sPfad)
    
For Each oFile In oFolder.Files
        
If oFile.Type = "Microsoft Excel-Arbeitsblatt" Then 'Nur Exceldateien suchen
            sFormel = "='" & sPfad & "\[" & oFile.Name & "]" & sBlatt & sZelle
            
With ThisWorkbook.ActiveSheet
                .Cells(iZeile, iSpalte) = oFile.Name 
'Dateinamen ausgeben
                .Cells(iZeile, iSpalte + 1).Formula = sFormel 'gefundenden Wert ausgeben
                .Cells(iZeile, iSpalte + 1) = .Cells(iZeile, iSpalte + 1).Value 'Wertkopie
            End With
            iZeile = iZeile + 1
        
End If
    
Next oFile
    
Set oFolder = Nothing
    
Set oFileSystem = Nothing
End Sub 


Gruß
CS

Anzeige
AW: alle xls eines Ordners öffen, Wert kopieren
29.02.2008 19:03:00
Chris
Naja,
Selection kann ja nicht funktionieren, da nichts selektiert wird.
ActiveWorkbook.Sheets("Summary").Range("O14").Copy
ThisWorkbook.Sheets("Summary").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Gruß
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige