Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
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

Daten per VBA kopieren

Daten per VBA kopieren
15.02.2023 11:08:28
Robert
Hallo liebe Exelgemeinde!
Brauch mal wieder zum wiederholten Maße Eure Hilfe.
Rudi hat mir dieses wunderbare Makro gezaubert. Es funktioniert Spitze. Danke noch mal.
Nun würde ich aber sehr gerne die Zielmappe öffnen (Datencenter\Beilagenwuensche\Beilagenwuensche1.). Aus der Quellmappe entsprechend kopieren (3Posten) z.B. a1:A34, B1:B34, C1:C24 und in die Zielmappe (Beilagenwuensche1) kopieren in die Seite ABG Nord A2. Die anderen würden dann ja Anlaog funktionieren und ich könnte mir das alleine Basteln. Ich wäre sehr lieb von Euch wenn Ihr mir noch einmal helfen würdet.
Hier nun noch das Makro.
Sub aaa()
  Dim wkbQ As Workbook, wkbZ As Workbook
  Dim wksZ As Worksheet, wksQ As Worksheet
  
  Set wkbZ = ActiveWorkbook
  Set wksZ = ActiveSheet
  
  Set wkbQ = Workbooks.Open("N:\Datencenter\Beilagenwuensche\Beilagenwuensche1.xlsm")
  Set wksQ = wkbQ.Sheets("Verteilung")
  
  wksQ.Range("L2:L104").Copy
  wksZ.Range("P5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  
  Set wksZ = wkbZ.Sheets("Zentral ABG Mitte")
  
  wksQ.Range("P2:P104").Copy
  wksZ.Range("P5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  
  wkbQ.Close False  'Quelle ohne zu speicher schließen
  wkbZ.Close True   'Zielmappe schließen
End Sub


Nochmals Danke im voraus. Sitze schon zwei Tage an der Aufgabe und komme zu keinem Ergebnis.
LG Robert

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten per VBA kopieren
15.02.2023 11:47:47
Rudi
Hallo,
?
Momentan steht das Makro in der Zielmappe und die Quellmappe wird geöffnet.
Jetzt soll das anders rum? Makro in Quelle?
Dann tausch doch wkbQ/ wksQ gegen wkbZ/ wksZ.
Gruß
Rudi
AW: Daten per VBA kopieren
15.02.2023 12:02:08
Robert
Hallo Rudi!
Da das Makro soll in der Zielmappe bleiben also Basic list, soll dort Daten kopieren und dann in Beilagewuensche als Zielmappe reinschreiben.. Das würde ich gerne so machen da Basic_List relativ groß ist und wesentlich länger zum öffnen braucht. Hoffe das war ein wenig verständlich.
Danke im voraus.
LG Robert
AW: Daten per VBA kopieren
15.02.2023 12:19:30
Rudi
ich verstehe dein Problem nicht
so?
Sub aaa()
    Dim wkbQ As Workbook, wkbZ As Workbook
    Dim wksZ As Worksheet, wksQ As Worksheet
    
    Set wkbQ = ThisWorkbook
    Set wksQ = ActiveSheet
    
    Set wkbZ = Workbooks.Open("N:\Datencenter\Beilagenwuensche\Beilagenwuensche1.xlsm")
    Set wksZ = wkbQ.Sheets("ABG Nord")
    
    wksQ.Range("A1:C34").Copy
    wksZ.Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
    
    Set wksZ = wkbZ.Sheets("Zentral ABG Mitte")
    
    wksQ.Range("P2:P104").Copy
    wksZ.Range("P5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
    
    wkbQ.Close False  'Quelle ohne zu speicher schließen
    wkbZ.Close True   'Zielmappe schließen
  End Sub

Anzeige
AW: Daten per VBA kopieren
15.02.2023 16:30:01
Robert
Hallo Rudi!
Versuche es noch mal zu erklären. Die Quellmappe ist offen. Von dieser aus möchte ich Beilgenwuensche öffnen. (klappt auch. Dann möchte ich aus der Quellmappe zB. den Bereich CA4:CB37 kopieren und dann ind die Zielmappe Beilagenwuensche1 einfügen auf die Seite ABG Nord A4. Das funktioniert aber irgendwie nicht.
Tut mir leid das ich mich so tappelig anstelle.
Die Quellmappe will ich aber als dieses nutzen da diese wöchentlich ihren Namen ändert.
Ich hoffe Du kannst mir helfen.
LG Robert
AW: Daten per VBA kopieren
15.02.2023 18:06:07
Robert
Hallo Ihr Lieben!
Bin jetzt einen Schritt weiter. Mein einziges Problem ist nun noch wie ich die das Makro davon überzeugen das es von jeder Seite der Arbeitsmappe gestartet werden kann und sich die Daten von der Seite ("Daten.Austräger.Wochenlohn") der Arbeitsmappe zu holen. Ich hab es versucht in dieser Zeile zu ändern
 Set wksQ = ActiveSheet
undes wie folgt in zig Varianten probiert

et wksQ = wksQ.Worksheets("Daten.Austräger.Wochenlohn")
. Ergenis ist die Fehlermeldung Methode oder Datenobjekt nicht gefunden.
Hier nochmal der Gesamte Code wie er jetzt wie von mir gewollt Funktioniert. Aber halt nur von der aktiven Seite.
Sub aaa()
    Dim wkbQ As Workbook, wkbZ As Workbook
    Dim wksZ As Worksheet, wksQ As Worksheet
    
    Set wkbQ = ThisWorkbook
    Set wksQ = wksQ.Worksheets("Daten.Austräger.Wochenlohn")
    
    Set wkbZ = Workbooks.Open("N:\Datencenter\Beilagenwuensche\Beilagenwuensche1.xlsm")
    Set wksZ = wkbZ.Sheets("ABG_Nord")
    
    wksQ.Range("CA4:CB37").Copy
    wksZ.Range("A4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
    
    Set wksZ = wkbZ.Sheets("ABG Mitte")
    
    wksQ.Range("CC4:CD37").Copy
    wksZ.Range("A4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
    
    wkbZ.Close True   'Zielmappe schließen
  End Sub
Hoffe Ihr könnt mir den letzten Schritt noch deuten.
LG Robert
Anzeige
AW: Daten per VBA kopieren
15.02.2023 20:10:06
Piet
Hallo Robert
schau dir bitte mal diese Zeile an! Du setzt Set wksQ mit wksQ statt mit wkbQ! Kann das dein Fehler sein?
Set wksQ = wksQ.Worksheets("Daten.Austräger.Wochenlohn")
für wkbQ kannst du auch gleich ThisWorkbook schreiben!
mfg Piet
AW: Daten per VBA kopieren
15.02.2023 21:08:52
Yal
Gute Augen, Piet. Ich habe es auf Anhieb nicht entdeckt.
Hier ist die Frage, wie die Variable benannt werden sollten. Welche Mehrwert hat der "k", ausser Verwirrung zu stiften?
wkbQ, wkbZ
wksQ, wksZ
'oder
wbQ, wbZ
wsQ, wsZ
Was nimmt der Augen mit? Ohne den "k" sind "s" und "b" viel deutlicher wahrzunehmen.
Aber warum ein Workbook- und Worksheet-Variable überhaupt? mit With kann man den häufigst verwendete Objekt schon ablegen.
Dann sind die anderen, bis auf ActiveWorkbook (jeweils mit einem anderen Blatt), alle nur einmal verwendet. Also wozu Variablen?
Sub aaa()
    
    With Workbooks.Open("N:\Datencenter\Beilagenwuensche\Beilagenwuensche1.xlsm")
        .Sheets("Verteilung").Range("L2:L104").Copy
        ActiveWorkbook.ActiveSheet.Range("P5").PasteSpecial Paste:=xlPasteValues
    
        .Range("P2:P104").Copy
        ActiveWorkbook.Sheets("Zentral ABG Mitte").Range("P5").PasteSpecial Paste:=xlPasteValues
    End With
    ActiveWorkbook.Close True   'Zielmappe schließen
End Sub
(Bei PasteSpecial sind Operation:=xlNone, SkipBlanks:=False, Transpose:=False Standardwert und müssen nicht aufgelistet werden. So macht es den Makrorekorder. Aber nur der)
VG
Yal
Anzeige
AW: Daten per VBA kopieren
15.02.2023 21:09:52
Robert
Hallo Piet!
Genau das war der Fehler. Ich danke Dir für den Hinweis.
LG Robert
AW: Daten per VBA kopieren
15.02.2023 21:11:54
Robert
Hallo Rudi.!
Ich danke Dir. Du warst wieder ein große Hilfe für mich.
LG Robert
AW: Danke an alle für Rückmeldungen
17.02.2023 03:23:36
Piet
Hallo an alle
meine Gründlichkeit bei der Fehlersuche lernte ich in der Elektronik und bei der Sparkasse!
Tippfehler beim Auflisten von Überweisungen gab es immer. Zahlendreher, 13=31, 71=17 usw.
mfg Piet

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige