Nehmen wir mal an, es gäbe zwei Spalten in einer Tabelle. Dort stehen irgendwelche Einträge, in der zweiten Spalte allerdings eher sporadisch (d.h. nur alle 20 Zeilen oder so).
Ich möchte jetzt aufeinander folgende identische Einträge in der ersten Spalte löschen, aber nur, wenn im dazugehörigen Feld in der zweiten Spalte kein Eintrag ist. Es muss aber auf jeden Fall (egal, ob nun in der zeweiten Spalte etwas steht, oder nicht, genau ein Eintrag in der ersten Spalte stehen bleiben
Also ungefähr so:
A B C .....
1 bla
Danach brauche ich ein zweites (vermutlich einfacherers Skript), dass alle Einträge in der zweiten Spalte durchsucht. Überall, wo dort nichts steht, ist eine "2" einzutragen.
Kann mir jemand mit entsprechenden Makros/Skripten aushelfen? Ich kenne mich mit VBA gar nicht aus :frowning:
Danke!
Fritze
Lösung des VBA-Problems (selbst ist der Mann)
Hallo,
Falls es jemanden interessiert: Hier ist die Lösung des oben beschriebenen Problems:
Makro 1: Löscht die doppelten Einträge
Sub makro1()
Dim counter As Integer
counter = 2
While Cells(counter, 1).Value
If (Cells(counter, 1).Value = Cells(counter + 1, 1).Value) And (Cells(counter, 4).Value 1) Then
Rows(counter).Select
Selection.Delete Shift:=xlUp
ElseIf (Cells(counter, 1).Value = Cells(counter + 1, 1).Value) And (Cells(counter, 4).Value = 1) Then
Rows(counter + 1).Select
Selection.Delete Shift:=xlUp
Else
counter = counter + 1
End If
Wend
MsgBox ("Excel ist fertig mit der Scheisse!")
End Sub
Macht richtig Spass, dem bei der Arbeit zuzuschauen.
Makro 2: Trägt die blöden zweier ein:
Sub makro2()
Dim counter As Integer
counter = 2
While Cells(counter, 1).Value
If Cells(counter, 4) 1 Then
Cells(counter, 4).Value = 2
End If
counter = counter + 1
Wend
MsgBox ("Ende Banane!")
End Sub
Die Schwierigkeit für mich bestand darin, herauszufinden, wie Excel auf einzelne Tabellen-Einträge zugreift. Die Onlinehilfe war diesbezüglich so nützlich wie ein drittes Bein.
Letztlich habe ich es durch eine Makro-Aufzeichnung herausgekitzelt.