Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Tabelle in andere Arbeitsmappe kopieren

Frage Microsoft Microsoft Office

Mitglied: 68023

68023 (Level 1)

01.09.2008, aktualisiert 04.09.2008, 4942 Aufrufe, 7 Kommentare

Hallo,

ich benötige bei folgendem Problem Hilfestellung:
Mein Skript durchläuft eine Liste mit Dateinamen (datei), sucht sich daran ein spezielles Blatt (land) und soll diese nun in eine Sammel-Datei (hier) kopieren.

Beim Kopieren muss ich irgendwas durcheinander gebracht haben, denn nicht der Inhalt der geöffneten Datei sondern der Inhalt der Sammel-Datei wird kopiert:

01.
            Workbooks(datei).Activate 
02.
            Sheets(land).Activate 
03.
                                        
04.
            Range("A1:Z176").Copy 
05.
                      
06.
            Workbooks(hier).Activate 
07.
            Sheets(land).Activate 
08.
            ActiveSheet.Paste 
09.
             
10.
            Workbooks(datei).Activate 
11.
            ActiveWorkbook.Close

Ich krieg die Peilung nicht ;)
Bestimmt ist der Fehler ganz offensichtlich. Bin für einen Wink dankbar!

Das fertige Skript ist denke ich sehr nützlich, werde daraus eine Anleitung schmieden!

Gruß
Nico
Mitglied: 68023
02.09.2008 um 16:21 Uhr
Hallo,

mittlerweile habe ich den Fehler vielleicht etwas eingegrenzt:

01.
            Workbooks(datei).Sheets(land).Activate 
02.
                                        
03.
            Range("A1:Z176").Copy 
04.
                      
05.
            Workbooks(hier).Activate 
06.
            Sheets(land).Activate 
07.
            ActiveSheet.Paste 
08.
             
09.
            Workbooks(datei).Activate 
10.
            ActiveWorkbook.Close
Ich bin jetzt zwar nachweislich im richtigen Sheet aber kopiert wird trotzdem irgendwas anderes...
Ich kann keinen Logikfehler sehen....... Bitte um Hilfe!

Danke!
Nico
Bitte warten ..
Mitglied: bastla
02.09.2008 um 22:35 Uhr
Hallo prinzipal87!

Du kannst zwar den Code etwas kompakter gestalten, zB
01.
Workbooks(datei).Sheets(land).Range("A1:Z176").Copy 
02.
Workbooks(hier).Sheets(land).Activate 
03.
ActiveSheet.Paste 
04.
Application.CutCopyMode = False 
05.
Workbooks(datei).Close
aber bei mir funktioniert auch schon Deine Version - so gesehen könnte es eigentlich nur am Variablenínhalt von "datei" oder "land" liegen ...

Grüße
bastla
Bitte warten ..
Mitglied: 68023
03.09.2008 um 15:24 Uhr
Hallo,

jetzt habe ich das ganze Projekt folgendermaßen erweitert:
1. es sollen alle Excel-Dateien eines Verzeichnisses in einer zusammegefasst werden (hierfür müssen alle Tabellen in die Konsolidierungsdatei kopiert werden)
2. gleiche Anforderung aber mit automatischer Umbenennung

Es hapert noch im 1. Schritt ;)

Laufzeitfehler 9, Index im ungültigen Bereich bekomme ich zwischen den Zeilen 22-27 beim zweiten Durchgang (beim ersten Durchgang findet das Skript sich selber und weicht entsprechend aus)

01.
Sub AlleTabelleninVerzeichniszusammenziehenbeigleichemNamen() 
02.
Dim i As Integer 
03.
Dim z As Integer 
04.
Dim mappe As Workbook 
05.
Dim mname As String 
06.
Dim hier As String 
07.
Dim tabelle As Worksheet 
08.
 
09.
 
10.
With Application.FileSearch 
11.
.NewSearch 
12.
.LookIn = ActiveWorkbook.Path 
13.
.SearchSubFolders = fale 
14.
.FileType = msoFileTypeExcelWorkbooks 
15.
.Execute 
16.
 
17.
For i = 1 To .FoundFiles.Count 
18.
     
19.
    mname = .FoundFiles(i) 
20.
    hier = ActiveWorkbook.Path & "\" & ActiveWorkbook.name 
21.
    If mname <> hier Then 
22.
        Workbooks.Open .FoundFiles(i), UpdateLinks:=0, ReadOnly:=True 
23.
        Workbooks(mname).Activate 
24.
         
25.
        For z = 1 To ActiveWorkbook.Worksheets.Count 
26.
                
27.
             Workbooks(mname).Sheets(z).Copy after:=Workbooks(ActiveWorkbook.name).Sheets(1) 
28.
                   
29.
        Next z 
30.
        'Workbooks(mname).Close 
31.
    End If 
32.
Next i 
33.
End With 
34.
End Sub
Vielen Dank für Eure Hilfe! Macht Spaß hier!!!
Nico
Bitte warten ..
Mitglied: 68023
03.09.2008 um 15:46 Uhr
Hallo,

es muss an dieser Zeile liegen:

01.
Workbooks.Open .FoundFiles(i), UpdateLinks:=0, ReadOnly:=True
Kann es sein, dass es nicht klappt, weil ich in FoundFiles einen absoluten Dateipfad mitbekomme statt einer Workbook-Bezeichnung?

Nico
Bitte warten ..
Mitglied: 68023
03.09.2008 um 16:39 Uhr
Ja am Schönsten ist es ja, wenn man selber zur Lösung kommt.
Es war tatsächlich der Pfad usw...

Hier eine lauffähige Version!

01.
Sub AlleTabelleninVerzeichniszusammenziehenbeigleichemNamen() 
02.
Dim i As Integer 
03.
Dim z As Integer 
04.
Dim mappe As Workbook 
05.
Dim mname As String 
06.
Dim hier As String 
07.
Dim hierwb As String 
08.
Dim tabelle As Worksheet 
09.
 
10.
hierwb = ActiveWorkbook.name 
11.
 
12.
With Application.FileSearch 
13.
.NewSearch 
14.
.LookIn = ActiveWorkbook.Path 
15.
.SearchSubFolders = fale 
16.
.FileType = msoFileTypeExcelWorkbooks 
17.
.Execute 
18.
 
19.
For i = 1 To .FoundFiles.Count 
20.
     
21.
    mname = .FoundFiles(i) 
22.
     
23.
    z = InStr(1, mname, ":") 
24.
    If z <> 0 Then 
25.
        mname = Right(mname, (Len(mname) - z)) 
26.
    End If 
27.
  
28.
    Do While InStr(1, mname, "\") <> 0 
29.
        z = InStr(1, mname, "\") 
30.
        mname = Right(mname, (Len(mname) - z)) 
31.
    Loop 
32.
  
33.
    If mname <> hierwb Then 
34.
        Workbooks.Open mname, UpdateLinks:=0, ReadOnly:=True 
35.
        Workbooks(mname).Activate 
36.
         
37.
        For z = 1 To ActiveWorkbook.Worksheets.Count 
38.
                
39.
             Workbooks(mname).Sheets(z).Copy after:=Workbooks(hierwb).Sheets(1) 
40.
                   
41.
        Next z 
42.
         
43.
        Workbooks(mname).Close 
44.
    End If 
45.
Next i 
46.
End With 
47.
End Sub
Bitte warten ..
Mitglied: bastla
03.09.2008 um 17:42 Uhr
Hallo prinzipal87!

Noch als Anmerkung zu der Zerlegung in den Zeilen 23 - 31:

Etwas eleganter wird es mit InStrRev()
01.
z = InStrRev(mname, "\") 
02.
If z > 0 Then mname = Mid(mname, z + 1)
oder mit Split()
01.
temp = Split(mname, "\") 
02.
mname = temp(UBound(temp))
Beide Beispiele berücksichtigen keinen ":", da die Zerlegung ohnehin vom Ende her erfolgt und eine Pfadangabe der Art "D:Datei.xls" (also ohne enthaltenen "\") zwar erlaubt und möglich, aber hier nicht zu erwarten ist.

Schließlich gäbe es noch bei Verwendung des "FileSystemObject" die Methoden ".GetBaseName" und ".GetExtensionName" (erstere liefert nur den Namen, ohne Pfad und Typ, letztere nur den Dateityp) oder einfach nur ".GetFileName".

Grüße
bastla
Bitte warten ..
Mitglied: 68023
04.09.2008 um 09:26 Uhr
Hallo bastla,

danke für den Tip!
Du bist mir unheimlich > selbst bei gelösten Topics gibst du noch nicht auf ;)
Also dankeschön!
Nico
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Zelleninhalt von einer Tabelle in die andere kopieren
gelöst Frage von BlimmoVB for Applications2 Kommentare

Hallo zusammen, bin neu hier und probiere seit einiger Zeit mit Excel-Makros herum. Mein Problem: Ich nutze eine InputBox, ...

Microsoft Office
Kopieren von auszuwählenden Daten in weitere Tabelle
Frage von dus100Microsoft Office1 Kommentar

Hallo, wie einige andere auch habe ich ein Problem bei der Erstellung von Makros in VBA. Ich nutzeExcel für ...

Microsoft Office
Dynamische tabellen erstellen und in einanderes arbeitsblatt kopieren
gelöst Frage von hugothemagpieMicrosoft Office18 Kommentare

Hallo allerseits, Ich bin neu in der Excel vba - Programmierung. Zur Zeit soll ich eine Tabelle erstellen der ...

VB for Applications
Variable Tabelle kopieren und in neue Excel-Datei verschieben
gelöst Frage von Gimli3311VB for Applications5 Kommentare

Guten Zusammen, ich bin grad Praktikant bei einem Unternehmen und muss aus verschiedenen Excel Dateien die jeweils eine Tabelle ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 18 StundenMicrosoft Office8 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 20 StundenDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 21 StundenSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 1 TagMicrosoft Office3 Kommentare

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke21 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS14 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...

Server-Hardware
Veeam Backup Server stürzt alle paar Tage ab
Frage von Leo-leServer-Hardware12 Kommentare

Hallo Forum, ich habe momentan folgendes Problem. Veeam Backup and Replication 9.5 u2 auf voll gepatchten DL 380 G7 ...