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

Lösche zwei Zellen, wenn Zellenpaar nicht identsch

Forumthread: Lösche zwei Zellen, wenn Zellenpaar nicht identsch

Lösche zwei Zellen, wenn Zellenpaar nicht identsch
Patrick
Hallo,
ich beiße mir die Zähne an folgendem VBA Script aus:
Tabelle mit mehreren Daten, aber zuweilen fehlen Angaben.
Beispiel: Ich möchte Temperatur und Preis zueinander in Verbindung setzen.
1.1. 2010 / 5 Grad / 1.1. 2010 / 1€
2.1. 2010 / 6 Grad / 3.1. 2010 / 2€
3.1. 2010 / 9 Grad /
Im Beispiel wurde am 2.1. kein Preis notiert.
In solchen Fällen möchte ich, dass Excel
2.1. 2010 / 6 Grad
(ergo Zellen A2 und B2) löscht und "3.1. 2010 / 9 Grad /" die Lücke füllt.
Die Tabelle soll anschließend so aussehen, dass nur vollständige Datensätze vorhanden sind:
1.1. 2010 / 5 Grad / 1.1. 2010 / 1€
3.1. 2010 / 9 Grad / 3.1. 2010 / 2€
Also im Endeffekt:
Checken, ob Ax und Cx gleich
- wenn ja: Ax+1 und Cx+1 prüfen
- wenn nein: Zellen (Ax:Bx) löschen, Werte darunter füllen die Lücke.
-- erneut Ax und Cx prüfen
--- wenn unterschiedlich: Wdh.
--- wenn gleich: Ax+1 und Cx+1 prüfen
Wenn auf leere Zelle in A gestoßen: stop.
Tue mich unglaublich schwer mit dem VBA, experimentiere mit der "match" Funktion aber irgendwie...
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Lösche zwei Zellen, wenn Zellenpaar nicht identsch
29.11.2010 11:19:53
Oberschlumpf
Hi Patrick
Ich bin verwirrt!
Du gibst als Bsp:

1.1. 2010 / 5 Grad / 1.1. 2010 / 1€
2.1. 2010 / 6 Grad / 3.1. 2010 / 2€
3.1. 2010 / 9 Grad /

Dann schreibst du:

Im Beispiel wurde am 2.1. kein Preis notiert.

Aber für den 2.1. wurde doch der Betrag von 2 Eur angegeben!
Für den 3.1. fehlt die Preisangabe.
grübel grübel
Was also möchtest du uns nun sagen?
Und was hältst du von der Idee, uns eine Bsp-Datei zu zeigen, die genau so wie deine Originaldatei aufgebaut ist und natürlich auch ausreichend Bsp-Daten enthält?
Vergiss nicht, dass viele noch kein XL 2007 oder 2010 installiert haben. Zeige also bitte eine Datei, die auch mit älteren XL-Versionen zu öffnen ist.
Ciao
Thorsten
Anzeige
der Betrag von 2 Eur
29.11.2010 13:25:33
2
Hallo,
der ist für den 3.1.
1.1. 2010 / 5 Grad / 1.1. 2010 / 1€
2.1. 2010 / 6 Grad / 3.1. 2010 / 2€
3.1. 2010 / 9 Grad /
Gruß
Rudi
AW: Lösche zwei Zellen, wenn Zellenpaar nicht identsch
29.11.2010 13:52:29
Rudi
Hallo,
Sub ttt()
Dim oDatum As Object, arrDaten(), i As Long, n As Long
Dim arrKeys, arrItems
Const sDelim As String = "|"
Set oDatum = CreateObject("scripting.dictionary")
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
oDatum(Cells(i, 1).Value) = Cells(i, 2)
Next
For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row
oDatum(Cells(i, 3).Value) = _
oDatum(Cells(i, 3).Value) _
& IIf(oDatum(Cells(i, 3).Value)  "", sDelim, "") _
& Cells(i, 4)
Next
ReDim arrDaten(1 To 4, 1 To oDatum.Count)
arrKeys = oDatum.keys
arrItems = oDatum.items
For i = 1 To oDatum.Count
If UBound(Split(arrItems(i - 1), sDelim)) > 0 Then
n = n + 1
arrDaten(1, n) = arrKeys(i - 1)
arrDaten(2, n) = Split(arrItems(i - 1), sDelim)(0)
arrDaten(3, n) = arrKeys(i - 1)
arrDaten(4, n) = Split(arrItems(i - 1), sDelim)(1)
End If
Next
'Daten auf Blatt2 eintragen
With Sheets(2)
.Cells.Clear
.Cells(1, 1).Resize(n, 4) = WorksheetFunction.Transpose(arrDaten)
End With
End Sub

Gruß
Rudi
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige