Hi,
ich habe ein problem in Excel. Ich habe eine Tabelle mit unterschiedlicher Zeilenzahl, die ausgewertet werden soll. Ich bin eigentlich schon sehr weit aber habe ein großes Problem.
Um die Daten auswerten zu können, muss ich nach einem bestimmten Muster Zeilen löschen. Das funktioniert einwandfrei.
Allerdings wird durch das Zeilen löschen die Verketten-Funktion zerstört, da der Zellbezug nicht mehr hergestellt werden kann. Die Zeilen müssen aber zwingend vor der Verkettung gelöscht werden, da sonst Fehler entstehen.
Ist da was mit VBA möglich?
Es soll in jeder geraden Zeile folgende Verkettung stattfinden.
Beispiel für Zeile 2:
AO2=AK2&AK3$B3
In Zeile 3 soll nix passieren.
In Zeile 4 dann wieder
AO4=AK4&AK5$B5
Um die Daten auswerten zu können, muss ich nach einem
bestimmten Muster Zeilen löschen. Das funktioniert
einwandfrei.
Was genau funktioniert da? Ein Makro, dann zeige den Code.
Auch eine Beispielmappe hochladen mit file-upload, s.FAQ:2606 ist evtl. hilfreich.
Vielleicht in Blatt1 die Tabelle wie sie ist, in Blatt2 wie sie ist nachdem du gelöscht hast und in Blatt3 wie sie sein sollte nach Löschungen.
Hallo,
das ist der Code mit dem alle „türkisen Zeilen“ gelöscht werden.
Sub türkiseZeilenLöschen()
lZeile = Cells(Rows.Count, 1).SpecialCells(xlLastCell).Row
'makro zählt Rückwärts!
For i = lZeile To 1 Step -1
If Cells(i, 1).Interior.ColorIndex = 42 Then
Rows(i).Delete
End If
Next i
End Sub
Nachdem diese Zeilen gelöscht sind soll nun in jeder geraden Zeile in der Zelle „AOi“ die Zellen AKi, Aki+1 und Bi+1 verkettet werden.
Nach Möglichkeit sollte das ganze am Ende der Daten aufhören die Verkettung durchzuführen, dass ich keine Endlosschleife erhalte. (Als Hilfe: In jeder geraden Zeiel ist die Zelle „A“ mit einer Zahl ausgefüllt.
Nachdem diese Zeilen gelöscht sind soll nun in jeder geraden
Zeile in der Zelle „AOi“ die Zellen AKi, Aki+1 und Bi+1
verkettet werden.
Hallo Chrue,
ich benutze SpecialCells ungern, da es gelegentlich lücht.
Lass den kleinen Code mal laufen in einer neuen leeren Mappe, wo du noch nie was in den unteren Zellen von A tatest.
Gruß
Reinhard
Option Explicit
Sub türkiseZeilenLöschen()
Dim lngZei As Long
'makro zählt Rückwärts!
For lngZei = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Cells(lngZei, 1).Interior.ColorIndex = 42 Then
Rows(lngZei).Delete
End If
Next lngZei
For lngZei = 2 To Cells(Rows.Count, 1).End(xlUp).Row Step 2
With Cells(lngZei, 41) 'AO
.FormulaLocal = "=AK" & lngZei & "&AK" & lngZei + 1 & "&B" & lngZei + 1
End With
Next lngZei
End Sub
Sub test()
Range("A50000") = "nix"
Range("A50000").ClearContents
MsgBox Cells(Rows.Count, 1).SpecialCells(xlLastCell).Row
MsgBox Cells(Rows.Count, 1).End(xlUp).Row
End Sub