Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1188to1192
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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...

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

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige