Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Schleife für gleiche Zellenwerte

VBA Schleife für gleiche Zellenwerte
12.06.2013 16:02:38
Claudia
Hallo zusammen,
nachdem ich schon sehr lange nicht mehr mit VBA gearbeitet habe fehlt mir jeglicher Ansatz für eine Schleife, die folgende Aufgabe hat:
Ich habe eine Tabelle mit 4 Spalten. In Spalte A können untereinander gleiche Werte mehrfach vorkommen. Solange der Wert gleich ist, sollen die zugehörigen Zeilenwerte der Spalten B bis D jeweils an das Ende der ersten Zeile (Wert in Spalte A kommt erstmals vor)gesetzt werden.
Hier ein Beispiel:
https://www.herber.de/bbs/user/85787.xlsx
Wäre toll wenn mir jemand helfen könnte, um wieder den Einstieg zu finden.
Viele Grüße
Claudia

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Schleife für gleiche Zellenwerte
12.06.2013 16:40:45
Rudi
Hallo,
eine Möglichkeit:
Sub Trans()
Dim Z1 As Long, Z2 As Long, S1 As Long
Application.ScreenUpdating = False
Range("A1:D2").Copy Sheets(2).Range("A1:D2")
S1 = 2
Z2 = 2
For Z1 = 3 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(Z1, 1) = Cells(Z1 - 1, 1) Then
S1 = S1 + 3
Cells(Z1, 2).Resize(, 3).Copy Sheets(2).Cells(Z2, S1)
Cells(1, 2).Resize(, 3).Copy Sheets(2).Cells(1, S1)
Else
S1 = 2
Z2 = Z2 + 1
Cells(Z1, 1).Resize(, 4).Copy Sheets(2).Cells(Z2, 1).Resize(, 4)
End If
Next
End Sub

Gruß
Rudi

Anzeige
AW: VBA Schleife für gleiche Zellenwerte
12.06.2013 17:22:02
Claudia
Hallo Rudi,
besten Dank für die schnelle Antwort und es funktioniert perfekt.
Viele Grüße, Claudia
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA Schleife für gleiche Zellenwerte in Excel


Schritt-für-Schritt-Anleitung

Um eine VBA Schleife für gleiche Zellenwerte in Excel zu erstellen, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen und wähle Modul.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub Trans()
       Dim Z1 As Long, Z2 As Long, S1 As Long
       Application.ScreenUpdating = False
       Range("A1:D2").Copy Sheets(2).Range("A1:D2")
       S1 = 2
       Z2 = 2
       For Z1 = 3 To Cells(Rows.Count, 1).End(xlUp).Row
           If Cells(Z1, 1) = Cells(Z1 - 1, 1) Then
               S1 = S1 + 3
               Cells(Z1, 2).Resize(, 3).Copy Sheets(2).Cells(Z2, S1)
               Cells(1, 2).Resize(, 3).Copy Sheets(2).Cells(1, S1)
           Else
               S1 = 2
               Z2 = Z2 + 1
               Cells(Z1, 1).Resize(, 4).Copy Sheets(2).Cells(Z2, 1).Resize(, 4)
           End If
       Next
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Drücke ALT + F8, wähle Trans aus der Liste und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004"

    • Lösung: Stelle sicher, dass die Zielarbeitsmappe (Sheets(2)) existiert und nicht geschützt ist.
  • Fehler: Falsche Daten werden kopiert

    • Lösung: Überprüfe, ob die Zellen in Spalte A korrekt formatiert sind und keine Leerzeichen enthalten.

Alternative Methoden

Wenn Du keine VBA verwenden möchtest, kannst du die Funktion Daten -> Duplikate entfernen nutzen, um gleiche Werte in Spalte A zu konsolidieren. Allerdings wird hierbei nicht die gleiche Flexibilität wie bei einer VBA-Lösung geboten.


Praktische Beispiele

Angenommen, Du hast folgende Daten in Spalte A:

A B C D
Apfel 1 2 3
Apfel 4 5 6
Banane 7 8 9
Banane 10 11 12

Nach dem Ausführen des Makros wird die Tabelle in Sheet 2 wie folgt aussehen:

A B C D
Apfel 1 2 3
4 5 6
Banane 7 8 9
10 11 12

Tipps für Profis

  • Verwende Option Explicit: Füge an den Anfang Deines Moduls Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Dokumentiere Deinen Code: Schreibe Kommentare im Code, um die Funktionsweise jeder Zeile zu erklären. Dies ist besonders hilfreich für die Wartung später.
  • Teste in einer Kopie der Datei: Führe das Makro zuerst in einer Kopie Deiner Datei aus, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Frage
Was mache ich, wenn das Makro nicht funktioniert?
Antwort: Überprüfe, ob alle Zellen korrekt formatiert sind und dass Du die korrekten Zellreferenzen im Code verwendest.

2. Frage
Kann ich den Code anpassen, um mehr Spalten zu verarbeiten?
Antwort: Ja, Du kannst die Resize-Funktion im Code anpassen, um mehr oder weniger Spalten zu kopieren, je nach Bedarf.

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