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

Forumthread: VBA-Code Doppelte Werte kopieren

VBA-Code Doppelte Werte kopieren
21.01.2014 10:15:32
Giovanni
Hallo Zusammen
Ich habe ein Problem und würde es gerne mit VBA lösen. Zurzeit arbeite ich viel mit Makrorecorder und passe meinen Code meinen Bedürfnissen an. Mit Schleifen habe ich noch keine grossen Erfahrungen, und ich denke mein Problem könnte man gut in einer Schleife lösen.
In Spalte H sind Werte, die ich mit Spalte G vergleichen muss. In Spalte G sind manche Werte doppelt und muss sie dann in der gleichen Zeile in Spalte H einfügen. Manuel geht das sehr lange da ich etwa 1000 Werte anpassen müsste. Cool wäre zusätzlich das Datum, dass ich in Spalte I habe, kopiere und eine Zeile weiter unten einfüge. Ich freue mich auf jede Antwort.
Userbild
Gruss Giovanni

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Aufgabenstellung unklar
21.01.2014 10:42:49
Matze
Hallo Giovanni,
- In Spalte H sind Werte, die ich mit Spalte G vergleichen muss (ok)
- In Spalte G sind manche Werte doppelt und muss sie dann in der gleichen Zeile in Spalte H einfügen.
( sollen die alten Werte mit dem doppelten Wert ersetzt werden?)
- Cool wäre zusätzlich das Datum, dass ich in Spalte I habe, kopiere und eine Zeile weiter unten einfüge. (Keine Ahnung was du damit sagen willst,)
Bilder sind schlecht zum Nachbau geeignet, stell doch gleich eine Musterdatei ein, die kann man gleich bearbeiten mit Blatt1 Istzustand - Blatt2 Sollzustand
Ob ich das hinbekomme sehen wir dann,
Gruß Matze

Anzeige
Lösungsvorschlag
21.01.2014 10:50:02
Klaus
Hi Giovanni,
wenn ich dich richtig verstanden habe, müsste folgender Code es in etwa sein:
Userbild
Grüße,
Klaus M.vdT.

AW: Lösungsvorschlag
22.01.2014 09:27:14
Giovanni
Hallo Klaus
Ich konnte das ganze einigermassen lösen, musste noch zusätzlich einen code einfügen. Wenn ich den Code ausführe, braucht es sehr sehr lange. Excel hängt sich immer wieder auf.
Kann ich an der Geschwindigkeit was ändern?
Gruss Giovanni
Sub hhhh()
Dim i As Long
Dim j As Long
i = 3
j = i
With ActiveSheet
Do
.Range(.Cells(j, 7), .Cells(i, 7)).Select
If WorksheetFunction.CountIf(.Range(.Cells(j, 7), .Cells(i, 7)), .Cells(i, 7).Value) >   _
_
1 Then
.Rows(i - 1).Insert shift:=x1Down
.Cells(i - 1, 8).Value = .Cells(i, 7).Value
.Cells(i + 1, 9).Value = .Cells(i, 9).Value
i = i + 1
End If
i = i + 1
Loop Until .Cells(i, 7).Value = ""
End With
End Sub
Sub Leerzellen()
Dim Bereich As Range
Set Bereich = Range("A3:s33390")
Bereich.Select
Selection.SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA-Code zum Kopieren doppelter Werte in Excel


Schritt-für-Schritt-Anleitung

Um doppelte Werte aus Spalte G in Spalte H zu kopieren und das Datum aus Spalte I eine Zeile weiter unten einzufügen, kannst du folgenden VBA-Code verwenden:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu starten.
  2. Klicke auf „Einfügen“ und wähle „Modul“, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden VBA-Code in das Modul:
Sub DoppelteWerteKopieren()
    Dim i As Long
    Dim j As Long
    i = 3
    j = i
    With ActiveSheet
        Do
            .Range(.Cells(j, 7), .Cells(i, 7)).Select
            If WorksheetFunction.CountIf(.Range(.Cells(j, 7), .Cells(i, 7)), .Cells(i, 7).Value) > 1 Then
                .Rows(i - 1).Insert shift:=xlDown
                .Cells(i - 1, 8).Value = .Cells(i, 7).Value
                .Cells(i + 1, 9).Value = .Cells(i, 9).Value
                i = i + 1
            End If
            i = i + 1
        Loop Until .Cells(i, 7).Value = ""
    End With
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus, indem du ALT + F8 drückst, wähle DoppelteWerteKopieren und klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Problem: Excel hängt sich beim Ausführen des Codes auf.
    • Lösung: Reduziere die Anzahl der zu bearbeitenden Zeilen oder überprüfe, ob es leere Zellen gibt, die den Prozess verlangsamen können. Ein zusätzlicher Code zum Löschen leerer Zellen kann hilfreich sein:
Sub Leerzellen()
    Dim Bereich As Range
    Set Bereich = Range("A3:S33390")
    Bereich.Select
    Selection.SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
End Sub
  • Problem: Der Code ersetzt alte Werte anstelle sie zu kopieren.
    • Lösung: Stelle sicher, dass der Code korrekt konfiguriert ist, um die Werte in Spalte H zu kopieren und nicht zu überschreiben.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die Funktion „Bedingte Formatierung“ oder „SVERWEIS“ verwenden, um doppelte Werte zu identifizieren und manuell zu kopieren. Diese Methoden sind jedoch zeitaufwändiger und weniger effizient für große Datenmengen.


Praktische Beispiele

Angenommen, du hast folgende Werte in Spalte G:

G H I
A 01.01.2023
B 02.01.2023
A 03.01.2023
C 04.01.2023
B 05.01.2023

Nach dem Ausführen des Makros sollten die Werte in Spalte H so aussehen:

G H I
A A 01.01.2023
B B 02.01.2023
A A 03.01.2023
C 04.01.2023
B B 05.01.2023

Das Datum aus Spalte I wird in die nächste Zeile in Spalte I eingefügt.


Tipps für Profis

  • Nutze die Option „Option Explicit“ am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden.
  • Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Fehler zu vermeiden.
  • Teste deinen Code zuerst an einer kleinen Datenmenge, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Wie lange dauert es, den Code auszuführen?
Die Dauer hängt von der Anzahl der Werte in Spalte G ab. Bei großen Datensätzen kann es einige Minuten dauern.

2. Was mache ich, wenn der Code nicht funktioniert?
Überprüfe den Code auf Tippfehler und stelle sicher, dass die richtigen Spaltenreferenzen verwendet werden. Du kannst auch die Excel-Datei auf Fehler überprüfen.

3. Kann ich den Code anpassen?
Ja, du kannst den Code anpassen, um andere Spalten oder Bedingungen zu berücksichtigen, je nach deinen Anforderungen.

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