Microsoft Excel

Herbers Excel/VBA-Archiv

Letzten 4 Zahlen eines Strings löschen

Betrifft: Letzten 4 Zahlen eines Strings löschen von: Daniel
Geschrieben am: 26.08.2020 13:07:36

Hallo zusammen,

ich möchte gerne aus einer Tabelle in Spalte "R" bei den Begriff "Labor" die letzten 4 Zahlen löschen.

With Worksheets("Katalog")
loletzte = .Cells(.Rows.Count, "A").End(xlUp).Row
Set raBereich = .Range("R2:R" & loletzte).SpecialCells(xlCellTypeVisible)
For Each raZelle In raBereich
If raZelle = "LABOR*" Then
raZelle = Left(("razelle"), Len("razelle") - 4)
Else
End If
Next raZelle
End With

der Code läuft zwar durch nur leider ändert sich nichts.

Vielen Dank im voraus und einen lieben Gruß
Daniel

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Hajo_Zi
Geschrieben am: 26.08.2020 13:17:38

Halo Daniel,

If Ucase(Left(raZelle,5)) = "LABOR" Then

Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.

Sollte die Datei verlinkt werden?

Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.

Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.

http://www.excel-ist-sexy.de/bilder-statt-datei/

Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.

Das ist nur meine Meinung zu dem Thema.

GrußformelHomepage

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Daniel
Geschrieben am: 26.08.2020 13:30:15

Hallo Hajo,

ein Problem waren die "" bei raZelle

Wenn ich den Code so eingebe

With Worksheets("Arbeitsschritte Katalog")
loletzte = .Cells(.Rows.Count, "A").End(xlUp).Row
Set raBereich = .Range("R2:R" & loletzte).SpecialCells(xlCellTypeVisible)
For Each raZelle In raBereich
If raZelle = "LABOR1234" Then
raZelle = Left((raZelle), Len(raZelle) - 4)
Else
End If
Next raZelle
End With

Dann löscht er genau bei dem Eintrag "Labor1234" die letzten 4 Stellen.

Wenn ich jedoch für die 1234 ein * als Platzhalter eingebe passiert wieder nichts.

Mit If raZelle = "LABOR*" sollten doch alle Einträge gefunden werden welche mit Labor beginnen unabhängig vom ende oder täusche ich mich ?

Vielen Dank im voraus und LG

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Daniel
Geschrieben am: 26.08.2020 13:59:21

Hallo Hajo, Hallo Daniel,

vielen Dank für eure Hilfe. Der Code läuft jetzt durch.

Gruß Daniel

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Daniel
Geschrieben am: 26.08.2020 14:36:26

Nachtrag:

Mit dem u.g. code funktioniert das super!

With Worksheets("Katalog")
loletzte = .Cells(.Rows.Count, "A").End(xlUp).Row
Set raBereich = .Range("R2:R" & loletzte).SpecialCells(xlCellTypeVisible)
For Each raZelle In raBereich
If UCase(Left(raZelle, 4)) = "LABOR" Then
raZelle = Left((raZelle), Len(raZelle) - 4)
Else
End If
Next raZelle
End With


Nun gibt es in der Liste jedoch auch Einträge die nur "LABOR" heißen bei denen auch auch hier dann die ersten 4 Zeichen gelöscht werden. Gibt es eine Möglichkeit nur dann die Zahlen zulöschen wenn nach "LABOR" noch was kommt. Also dann erst ab 6 Strings.

Vielen Dank im Voraus und lieben Gruß

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Hajo_Zi
Geschrieben am: 26.08.2020 14:39:26

if Len(raZelle)>5 then

Gruß Hajo

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Daniel
Geschrieben am: 26.08.2020 14:54:12

Hallo Hajo,

vielen Dank
With Worksheets("Arbeitsschritte Katalog")
    loletzte = .Cells(.Rows.Count, "A").End(xlUp).Row
    Set raBereich = .Range("R2:R" & loletzte).SpecialCells(xlCellTypeVisible)
    For Each raZelle In raBereich
                If UCase(Left(raZelle, 16)) = "RTN11REPAIRLABOR" Then
                ElseIf Len(raZelle) > 16 Then
                    raZelle = Left((raZelle + 1), Len(raZelle) - 4)
                    Else
                End If
    Next raZelle
End With
Leider bekomme ich eine Fehlermeldung bei dem Code.

Hast du eine Idee wie ich 2 If Bedingungen einbauen kann ?

Vielen Dank im Voraus

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Hajo_Zi
Geschrieben am: 26.08.2020 15:06:53

Gut das Stand schon in meinen ersten Beitrag. Du wolltest den nicht komplett lesen. Ich bin dann raus.Viel Erfolg noch.

Gruß Hajo

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Daniel
Geschrieben am: 26.08.2020 15:00:49

Ok ich hab’s!! Vielen Dank

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Daniel
Geschrieben am: 27.08.2020 18:30:57

Ok ich hab’s!! Vielen Dank

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Daniel
Geschrieben am: 30.08.2020 12:00:34

Ok ich hab’s!! Vielen Dank

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Daniel
Geschrieben am: 30.08.2020 13:26:12

Ok ich hab’s!! Vielen Dank

Betrifft: AW: Letzten 4 Zahlen eines Strings löschen
von: Daniel
Geschrieben am: 26.08.2020 13:29:45

HI

"=" kann keine Joker.
außerdem ist das "razelle" Unsinn, wenn du diese Variable verwenden willst. Wie kommst du auf die Anführungszeichen um die Variablenbezeichnung?????

entweder wie von Hajo gezeigt mit IF Left(raZelle) = "LABOUR" Then
oder mit IF raZelle like "LABOUR*" Then

die Umwandlung dann so:
raZelle = Left(razelle, Len(razelle) - 4)

Gruß Daniel

Beiträge aus dem Excel-Forum zum Thema "Letzten 4 Zahlen eines Strings löschen"