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

Forumthread: Abschneiden von Zeichen - VBA

Abschneiden von Zeichen - VBA
07.11.2007 11:12:47
Zeichen
Hallo liebe Helfer,
ich habe ca. 20 Punkte in der Suche zum Thema "Abschneiden von Zeichen" gesichtet, aber nichts davon
trifft mein folgendes Problem:
In einer bestehenden Liste gibt es verschiedene Bezeichnungen (z. B. ZF322, 071ZF322B, RSG15/18S, 010RSF10/20S, RKB/W20K, 031AR8407, AR8407)
Nur wenn die ersten 3 Stellen Zahlen sind, sollen diese 3 verschwinden. Da die Längen unterschiedlich sind, geht es mit den normalen Funktionen nicht (Teil, links, rechts).
Das Makro müßte prüfen, ob die ersten 3 Zeichen Zahlen sind, und nur dann diese 3 löschen ohne
ander Zahlen die noch in der Bezeichnung stehen anzutasten.
Das Makro sollte am besten auf einen markierten Bereich anzuwenden sein.
Liebe Grüße - Wolfgang

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abschneiden von Zeichen - VBA
07.11.2007 11:20:09
Zeichen
Hallo Wolfgang,
warum geht es mit rechts nicht? (in VBA Right) IsNumeric(Right(StVaribale,3))

AW: Abschneiden von Zeichen - VBA
07.11.2007 11:31:34
Zeichen
Hallo ,
es muss natürlich Left lauten.
Gruß Hajo

AW: Abschneiden von Zeichen - VBA
07.11.2007 11:22:00
Zeichen
Hi
Versuch es mal so:

Sub OhneDieErstenDrei()
Dim lrZelle As Range
For Each lrZelle In Selection
If IsNumeric(Left(lrZelle.Value, 3)) = True Then
lrZelle.Value = Right(lrZelle.Value, Len(lrZelle.Value) - 3)
End If
Next
End Sub


Hilft das?
Ciao
Thorsten

Anzeige
AW: Danke Oberschlumpf
07.11.2007 11:38:00
Wolfgang
Vielen Dank Oberschlumpf Thorsten - deine Lösung klappt perfekt.
Sorry Hajo - VBA ist bei mir nicht so toll - deine Antwort kapier ich leider gar nicht ;-)
(werde mich aber in der Pause mal damit beschäftigen)
Wolfgang
;
Anzeige
Anzeige

Infobox / Tutorial

Zeichen in Excel mit VBA abschneiden


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade die Arbeitsmappe, in der du die Bezeichnungen bearbeiten möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub OhneDieErstenDrei()
       Dim lrZelle As Range
       For Each lrZelle In Selection
           If IsNumeric(Left(lrZelle.Value, 3)) = True Then
               lrZelle.Value = Right(lrZelle.Value, Len(lrZelle.Value) - 3)
           End If
       Next
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Markiere den Bereich, in dem du die Bezeichnungen ändern möchtest.

  7. Drücke ALT + F8, wähle OhneDieErstenDrei aus und klicke auf Ausführen.

Jetzt werden alle Bezeichnungen, bei denen die ersten 3 Buchstaben Zahlen sind, entsprechend bearbeitet.


Häufige Fehler und Lösungen

  • Fehler: Das Makro führt nichts aus.

    • Überprüfe, ob du tatsächlich einen Bereich markiert hast, bevor du das Makro ausführst.
  • Fehler: Der Code gibt eine Fehlermeldung aus.

    • Stelle sicher, dass der VBA-Code korrekt kopiert wurde und keine Syntaxfehler aufweist.

Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du die folgende Formel nutzen:

=IF(ISNUMBER(VALUE(LEFT(A1, 3))), MID(A1, 4, LEN(A1)-3), A1)

Setze diese Formel in eine Zelle ein und ziehe sie nach unten, um die gesamte Liste zu bearbeiten. Dies funktioniert jedoch nur, wenn die Bezeichnungen in einer Tabelle stehen und kann nicht auf einen markierten Bereich angewendet werden.


Praktische Beispiele

Angenommen, du hast folgende Bezeichnungen in den Zellen A1 bis A5:

  • ZF322
  • 071ZF322B
  • RSG15/18S
  • 010RSF10/20S
  • RKB/W20K

Nach der Ausführung des VBA-Codes sehen die Zellen wie folgt aus:

  • ZF322
  • ZF322B
  • RSG15/18S
  • RSF10/20S
  • RKB/W20K

Die Bezeichnungen, bei denen die ersten 3 Buchstaben Zahlen waren, wurden erfolgreich bearbeitet.


Tipps für Profis

  • Erweiterung des Codes: Du kannst den VBA-Code erweitern, um auch mehr als 3 Buchstaben abzuschneiden oder spezifische Bedingungen zu implementieren.
  • Fehlerbehandlung einfügen: Implementiere On Error Resume Next, um Fehler zu ignorieren und eine robustere Lösung zu schaffen.
  • Schutz deiner Daten: Vor der Ausführung des VBA-Skripts ist es ratsam, ein Backup deiner Daten zu erstellen.

FAQ: Häufige Fragen

1. Kann ich das Makro auch in anderen Excel-Versionen verwenden?
Ja, das Makro funktioniert in Excel-Versionen, die VBA unterstützen, wie Excel 2010, 2013, 2016 und 365.

2. Was passiert, wenn die Zelle keine Zahlen enthält?
In diesem Fall bleibt der Inhalt der Zelle unverändert. Das Makro schneidet nur die ersten 3 Buchstaben ab, wenn sie Zahlen sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige