166 Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (481 Punkte)
Hallo,

vor dem Neustart des Servers hatte mir M. O. mit diesem Makro geholfen & auch noch angepasst.
Leider fehlen mir die Infos ):

In Spalte 2 (Spalte B) sind allerdings Daten mit führenden Nullen - leider unterschiedlich lang und unterschiedlich viele führende Nullen.

Lässt sich denn die Spalte B als Text mit den originären Daten befüllen?

Antwort wäre toll

-----------------------------------------------
Sub XXXX_löschen()
' Kriterium aus Spalte O = Bezeichung löschen => XXXX

Worksheets("Rawdata").Select
Dim arrDaten As Variant
Dim z As Long
Dim s As Long
Dim lngZeile As Long
Dim lngLetzte As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

With ActiveSheet
lngLetzte = .Cells(Rows.Count, 15).End(xlUp).Row 'letzte Zeile in Spalte O ermitteln
arrDaten = .Range("A1:V" & lngLetzte) 'Spalten A bis V einlesen
Range("A1:V" & lngLetzte).Clear 'Spalten A bis V löschen
End With

'nur Datensätze zurück ins Blatt schreiben, in denen in Spalte O (15) kein XXXX vorhanden ist
For z = 1 To UBound(arrDaten)
If InStr(arrDaten(z, 15), "XXXX") = False Then
'falls in Spalte 15 kein XXXX gefunden, dann Daten ins Blatt zurückschreiben
lngZeile = lngZeile + 1 'Zähler für Einfügezeile
For s = 1 To UBound(arrDaten, 2)
Cells(lngZeile, s) = arrDaten(z, s)
Next s
End If
Next z

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub

3 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

Versuch es mal so:
Sub XXXX_löschen()
' Kriterium aus Spalte O = Bezeichung löschen => XXXX

Dim arrDaten As Variant
Dim z As Long
Dim s As Long
Dim lngZeile As Long
Dim lngLetzte As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

With Worksheets("Rawdata")
lngLetzte = .Cells(Rows.Count, 15).End(xlUp).Row 'letzte Zeile in Spalte O ermitteln
arrDaten = .Range("A1:V" & lngLetzte) 'Spalten A bis V einlesen
Range("A1:V" & lngLetzte).Clear 'Spalten A bis V löschen
End With

'nur Datensätze zurück ins Blatt schreiben, in denen in Spalte O (15) kein XXXX vorhanden ist
For z = 1 To UBound(arrDaten)
If InStr(arrDaten(z, 15), "XXXX") = False Then
'falls in Spalte 15 kein XXXX gefunden, dann Daten ins Blatt zurückschreiben
lngZeile = lngZeile + 1 'Zähler für Einfügezeile
For s = 1 To UBound(arrDaten, 2)
If s = 2 Then
Cells(lngZeile, s) = "'" & arrDaten(z, s)
Else
Cells(lngZeile, s) = arrDaten(z, s)
End If
Next s
End If
Next z

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub


Ich glaube du wolltest, dass auch mehrere Suchbegriffe eigegeben werden können.
Wenn du das immer noch brauchst, dann melde dich bitte noch mal.

Gruß

M.O.
0 Punkte
Beantwortet von Mitglied (481 Punkte)
Daaaanke - funktioniert !! :)
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

gern geschehen :-).

Gruß

M.O.
...