Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA mehrere Zellen kopieren

VBA mehrere Zellen kopieren
23.03.2020 16:38:19
Peter
Hallo,
ich habe folgendes Problem. Ich habe eine Spalte mit Personennamen. Weiterhin habe ich eine Spalte mit dem Datumsstempel 01.08.2018 bis 31.01.2020 (A). Dieses Datumsintervall wiederholt sich so oft wie die Personenanzahl. Mein Ziel ist es nun, den ersten Personennamen auszuwählen und in eine Spalte direkt neben der Datumsspalte (B) zu kopieren. Das heißt, Person 1 soll aus der Liste kopiert werden und in jeder Zelle (B), für das oben genannte Intervall, stehen. Dann soll Person 2 ausgewählt werden und dann in jede Zelle (B), unter dem Intervall für Person 1, eingetragen werden. Und so weiter. Das würde sich natürlich hervorragend mit einem VBA machen.
Folgendes habe ich mir überlegt:
gegeben:
- in J stehen die Namen
- in A das Datum im vorgegebenen Intervall
- in B sollen die Zeilen mit dem entsprechenden Namen gefüllt werden
Range("J2").Select
Application.CutCopyMode = False
Selection.Copy
Dim NächsteLeere As Long
NächsteLeere = Tabelle2.Cells(2, 2).End(xlDown).Row + 1
Tabelle2.Cells(NächsteLeere, 2).Select
ActiveSheet.Paste

Und da geht es schon los. Ich vermute, dass ich eine Art Schleife benötige, das heißt, nachdem der Name ausgewählt und kopiert wurde, muss der Name darunter ausgewählt werden. Wie kriege ich das hin? Vielen Dank.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA mehrere Zellen kopieren
23.03.2020 18:10:18
Regina
Hi,
lade doch mal eine Beispielmappe hoch, wo Du zeigst, wie Dein Ergebnis aussehen soll.
Gruß Regina
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA zum Kopieren mehrerer Zellen in Excel


Schritt-für-Schritt-Anleitung

Um mehrere Zellen in Excel mithilfe von VBA zu kopieren, gehe wie folgt vor:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsblatt)" im Projektfenster und wähle „Einfügen“ > „Modul“.
  3. Kopiere den folgenden VBA-Code:

Sub NamenKopieren()
    Dim i As Long
    Dim NächsteLeere As Long
    Dim AnzahlNamen As Long

    AnzahlNamen = Tabelle2.Cells(Rows.Count, 10).End(xlUp).Row ' Anzahl der Namen in Spalte J

    For i = 2 To AnzahlNamen ' Beginne bei der zweiten Zeile
        ' Kopiere den Namen
        Range("J" & i).Copy

        ' Finde die nächste leere Zelle in Spalte B
        NächsteLeere = Tabelle2.Cells(Rows.Count, 2).End(xlUp).Row + 1

        ' Füge den Namen in die nächste leere Zelle in Spalte B ein
        Tabelle2.Cells(NächsteLeere, 2).PasteSpecial xlPasteValues
    Next i
    Application.CutCopyMode = False ' Setze den Kopiermodus zurück
End Sub
  1. Führe das Makro aus:

    • Klicke im VBA-Editor auf „Ausführen“ oder drücke F5.
  2. Überprüfe das Ergebnis:

    • Gehe zurück zu deinem Excel-Blatt und überprüfe, ob die Namen korrekt in Spalte B eingefügt wurden.

Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 1004: Die Methode 'Copy' des Objekts 'Range' ist fehlgeschlagen“

    • Lösung: Überprüfe, ob die Zelle, die Du kopieren möchtest, tatsächlich einen Wert enthält. Leere Zellen können diesen Fehler auslösen.
  • Fehler: „Laufzeitfehler 9: Der Index war außerhalb des gültigen Bereichs“

    • Lösung: Stelle sicher, dass Du auf das richtige Arbeitsblatt zugreifst. Achte auf den Namen des Arbeitsblattes in deinem Code.

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du auch die Funktion „Füllen“ in Excel nutzen:

  1. Markiere die Zelle mit dem Namen.
  2. Ziehe das Füllkästchen (kleines Quadrat in der unteren rechten Ecke der Zelle) nach unten, um den Namen in die gewünschten Zellen zu kopieren.

Diese Methode ist weniger flexibel, bietet aber eine schnelle Lösung für einfachere Aufgaben.


Praktische Beispiele

Angenommen, Du hast die folgenden Namen in Spalte J:

J
Max
Sarah
Paul

Und das Datum in Spalte A:

A
01.08.2018
02.08.2018
...

Nach dem Ausführen des VBA-Codes wird Spalte B wie folgt aussehen:

B
Max
Max
Max
Sarah
Sarah
Sarah
Paul
Paul
Paul

Tipps für Profis

  • Verwende xlPasteValues, um nur die Werte und nicht die Formate zu kopieren.
  • Du kannst die Schleife anpassen, um eine bestimmte Anzahl von Kopien pro Name zu erstellen, indem Du eine innere Schleife hinzufügst.
  • Experimentiere mit Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren und die Geschwindigkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich den VBA-Code anpassen, um nur bestimmte Namen zu kopieren? Du kannst eine If-Bedingung innerhalb der Schleife hinzufügen, um nur die gewünschten Namen zu kopieren.

2. Welche Excel-Version benötige ich für VBA? VBA ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und späteren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige