Clever-Excel-Forum

Normale Version: VBA Script - Anpassung für aktives Tabellenblatt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich benötige für das u.a. Makro eine Anpassung das er die Kopierten Daten in das Aktive Tabellenblatt kopiert und nicht ein extra Tabellenblatt erstellt ich hoffe ihr könnt mir helfen ich muss die liste bis heute Abend fertig haben Sad.

Sub Grundmakro2()
     Dim WBZiel As Workbook, ExportDatei As Variant
     Dim WBQuelle As Workbook, WSZiel As Worksheet
    
     Set WBZiel = ThisWorkbook
    
     'DateiÖffnen Dialog anbieten
     ExportDatei = Application.GetOpenFilename("Micrsoft Excel-Dateien (*.xlsx),*.xls", , "Bitte die Datei xyz.xls öffnen ...")
     ExportDatei = CStr(ExportDatei)
     If ExportDatei = "Falsch" Then Exit Sub
    
     'öffnen der ausgewählten Datei
     Set WBQuelle = Workbooks.Open(ExportDatei)
    
     'Kopieren der Tabelle „Tabelle1“ aus Datei „xyz“
    Set WSZiel = WBZiel.Worksheets.Add(After:=WBZiel.Sheets(WBZiel.Sheets.Count))
     WBQuelle.Worksheets("Planungsreport").Cells.Copy WSZiel.Cells(1)
    
     WBQuelle.Close False
     Set WBZiel = Nothing
     Set WBQuelle = Nothing: Set WSZiel = Nothing
    
      End Sub

P.S. das Makro habe ich Dankend aus einem Forum Kopiert da ich selbst wenig Ahnung von VBA habe.

mit freundlichen Grüßen

David
Hola,

verlinkst du bitte deine Fragen in den verschiedenen Foren untereinander?
Der Threadtitel ist übrigens für spätere Recherchen null hilfreich!

Danke.

Gruß,
steve1da
Ok da hast du recht kann ich denn den Titel nachträglich abändern?
Hi,

versuchs mal so (wenn Code in Modul steht)


Code:
   'Kopieren der Tabelle „Tabelle1“ aus Datei „xyz“
   'Set WSZiel = WBZiel.Worksheets.Add(After:=WBZiel.Sheets(WBZiel.Sheets.Count))
    WBQuelle.Worksheets("Planungsreport").Cells.Copy ActiveSheet.Cells(1)
Der Link zu den anderen Foren fehlt noch.
Danke für die Antwort,

leider macht er mit dieser Änderung nur ein leeres neues Tabellenblatt auf. Sad
Habe eine Möglichkeit gefunden optimal wäre es noch wenn der folgende Teil noch variabel wäre.

    Sheets("Planungsreport").Select





Sub Grundmakro4()
     Dim WBZiel As Workbook, ExportDatei As Variant
     Dim WBQuelle As Workbook, WSZiel As Worksheet
    
     Set WBZiel = ThisWorkbook
    
     'DateiÖffnen Dialog anbieten
     ExportDatei = Application.GetOpenFilename("Micrsoft Excel-Dateien (*.xlsx),*.xls", , "Bitte die Datei xyz.xls öffnen ...")
     ExportDatei = CStr(ExportDatei)
     If ExportDatei = "Falsch" Then Exit Sub
    
     'öffnen der ausgewählten Datei
     Set WBQuelle = Workbooks.Open(ExportDatei)
    
     'Kopieren der Tabelle „Tabelle1“ aus Datei „xyz“
    Sheets("Planungsreport").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    WBZiel.Activate
    ActiveSheet.Select
    Cells.Select
    ActiveSheet.Paste
    
      WBQuelle.Close False
     Set WBZiel = Nothing
     Set WBQuelle = Nothing: Set WSZiel = Nothing
    
      End Sub
Dann hast du diese Zeile nicht als Kommentar definiert, Hochkomma fehlt:

'Set WSZiel .......

In deinem Code kommt nur dort die Anweisung, ein neues Sheet einzufügen.
Hier noch der gewünschte link zu dem Forum wo ich mir das Grundmakro her geholt habe.

http://www.office-loesung.de/ftopic271668_0_0_asc.php
Hallo David,

wenn Du in Dein Benutzer-CP gehst, kannst Du Dir alle Deine Themen raussuchen.
Am 27.11. hast Du wohl in 3 Beiträgen ähnliche Fragen gestellt, u.a. wie man diesen Teil variabel gestalten kann:

ActiveSheet.Name = "Planungsreport eFP"

Ich habe Dir geantwortet, dass Du mal nach der INPUTBOX schauen sollst. Hast Du das gemacht?
Wenn Du mit einer Antwort nicht zurecht kommst, dann bleibe zukünftig einfach im Thread und frage nach.

Auch für

Sheets("Planungsreport").Select

kann man den gewünschten Blattnamen mit einer INPUTBOX abfragen.

Das wäre die "einfache" Variante, zumindest für den Programmierer. Man kann es auch für den Anwender einfacher machen Smile