Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeichen an bestimmter Zelle einfügen

Zeichen an bestimmter Zelle einfügen
28.02.2017 15:42:00
Hauke
Hallo zusammen,
ich optimieren meine Tabelle und das entsprechende Userform.
Nun habe ich schon voreingestellt, dass die TextBox1 rot wird, wenn sie nicht exakt 6 Zeichen hat. Allerdings würde ich gerne noch eine Möglichkeit einbauen, dass automatisch an der 2ten Stelle Nullen eingetragen werden, bis die Länge 6 entspricht.
Habe so diverse Ansätze gefunden, um an Ende und am Anfang die 0 einzufügen aber nicht an der 2ten Stelle.

Dim NumAsString As String
NumAsString = CStr(TextBox1)
NumAsString = String(6 - Len(NumAsString), "0") & NumAsString

Hat evtl jemand eine Idee?
Viele Grüße,
Hauke-Christian
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeichen an bestimmter Zelle einfügen
28.02.2017 15:50:57
Matthias
Hallo
Allerdings würde ich gerne noch eine Möglichkeit einbauen, dass automatisch an der 2ten Stelle Nullen eingetragen werden, bis die Länge 6 entspricht.
Das heißt also, nur wenn die Textbox ein einzelnes Zeichen enthält
soll mit Nullen aufgefüllt werden?
Da Du ja schreibst ab 2.Stelle
Gruß Matthias
Anzeige
AW: Zeichen an bestimmter Zelle einfügen
28.02.2017 15:56:00
Hauke
Hallo Matthias,
die Einträge sind meistens immer like "XX123" oder "XX12". Daraus soll werden: XX0123 und XX0012.
VG,
Hauke-Christian
also wenn ich zähle ist das die 3.Stelle, oder?
28.02.2017 16:08:18
Matthias
Hallo
Exakte Beschreibeungen sind der Urprung jeglicher Hilfe!
Vermutlich willst Du aber vor die erste erkennbare Zahl die 0 Stellen bis die Textboxlänge 6 Zeichen hat.
Richtig erkannt?
Es ist also mal die 2.Position mal die Dritte mal die 4.Position oder?
Was soll rauskommen bei XXX9? Vermutlich XXX009
Gruß Matthias
Anzeige
AW: also wenn ich zähle ist das die 3.Stelle, oder?
28.02.2017 16:24:18
Hauke
Wie wahr. Hatte gedacht es wäre schon ausführlich. :D
Ich werde mich bessern.
Also, der Textfeld besteht immer aus 2 Buchstaben und denen sollen 4 Zahlen folgen.
Wenn nur 3 Zahlen eingegeben wurden, also z.B. AB999, soll daraus AB0999 werden.
Viele Grüße
AW: also wenn ich zähle ist das die 3.Stelle, oder?
28.02.2017 16:33:54
Matthias
Hallo
Willst Du es erst mal selbst probieren?
Hier mal meine Bsp.Datei
Mit ein bisschen Überlegung könntest Du es ja selbst schaffen ;-)
Das ist ja auch de Sinn eines Forums
https://www.herber.de/bbs/user/111835.xlsm
Ich helf natürlich trotzdem weiter, wenns nicht klappt.
Gruß Matthias
Anzeige
nach der 2.MsGBox muß noch ein Exit For rein - owT
28.02.2017 16:45:41
Matthias
AW: also wenn ich zähle ist das die 3.Stelle, oder?
28.02.2017 17:36:19
Hauke
Hallo Matthias,
also ich hätte es jetzt so versucht:
Private Sub CommandButton1_Click()
If Len(TextBox1) >= 6 Then Exit Sub
If Len(TextBox1) 
Aber daran hängt er sich auf.
Ich komm nicht drauf. :(
AW: also wenn ich zähle ist das die 3.Stelle, oder?
28.02.2017 18:02:07
Matthias
Hallo
Warum fügst Du zur ersten Schleife eine 2.Schleife ein (Do Until)?
Die erste Schleife fragt doch schon alles ab.
Gruß Matthias
Anzeige
AW: also wenn ich zähle ist das die 3.Stelle, oder?
28.02.2017 18:06:18
Hauke
:D
Ich hab es jetzt so gelöst:

Private Sub CommandButton1_Click()
If Len(TextBox1) >= 6 Then Exit Sub
If Len(TextBox1) 
Funktioniert einwandfrei.
Vielen Dank für deine Denkanstöße Matthias.
VG,
Hauke-Christian
Nee ... falsch ...
28.02.2017 18:15:04
Matthias
Hallo
Ist aber nicht richtig!
Was kommt denn raus bei
XXX9
Sollte doch: XXX009
dabei rauskommen, oder?
Was kommt raus? XX00X9
Nochmal überlegen!
Check mal die Einzel-String-Positionen
Gruß Matthias
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeichen an bestimmter Zelle in Excel einfügen


Schritt-für-Schritt-Anleitung

Um in Excel Zeichen an einer bestimmten Stelle in einer TextBox (z.B. in einem UserForm) einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code fügt Nullen an der zweiten Stelle ein, bis die Länge 6 Zeichen beträgt.

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel.

  2. Füge einen neuen UserForm hinzu und platziere eine TextBox (TextBox1) und einen CommandButton (CommandButton1) darauf.

  3. Füge den folgenden Code im Code-Editor des UserForms ein:

    Private Sub CommandButton1_Click()
       Dim NumAsString As String
       NumAsString = CStr(TextBox1)
    
       ' Überprüfen, ob die Länge kleiner als 6 ist
       If Len(NumAsString) < 6 Then
           ' Füge Nullen an der 2. Stelle ein
           NumAsString = Left(NumAsString, 1) & "0" & Mid(NumAsString, 2)
           ' Fülle die restlichen Stellen mit Nullen auf
           NumAsString = String(6 - Len(NumAsString), "0") & Right(NumAsString, 5)
       End If
    
       TextBox1 = NumAsString
    End Sub
  4. Teste das UserForm, indem du verschiedene Eingaben in die TextBox machst und den Button klickst.


Häufige Fehler und Lösungen

  • Fehler: TextBox bleibt leer

    • Lösung: Stelle sicher, dass die TextBox nicht leer ist, bevor du den Code ausführst. Du kannst dies mit einer einfachen If-Bedingung überprüfen.
  • Fehler: Nullen werden nicht an der richtigen Stelle eingefügt

    • Lösung: Überprüfe die Logik des Codes, insbesondere die Verwendung von Left, Mid und Right. Diese Funktionen helfen dir, die Zeichen an der gewünschten Stelle zu manipulieren.

Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, kannst du auch Excel-Formeln nutzen, um Zeichen an einer bestimmten Stelle einzufügen. Eine Möglichkeit wäre die Verwendung der TEXT-Funktion oder REPLACE-Funktion in Kombination mit LEN:

=REPLACE(A1, 2, 0, "0")

Diese Formel fügt an der zweiten Stelle in der Zelle A1 eine Null ein.


Praktische Beispiele

  1. Beispiel 1: Wenn du in die TextBox "AB999" eingibst, sollte das Ergebnis "AB0999" sein.
  2. Beispiel 2: Bei der Eingabe von "XY12" sollte das Ergebnis "XY0012" sein.

Verwende die oben genannten Schritte, um diese Beispiele direkt in deinem UserForm zu testen.


Tipps für Profis

  • Verwende Debugging: Nutze den Debugger in VBA, um deine Variablen zu überwachen und zu verstehen, wie der Code funktioniert.
  • Code optimieren: Halte deinen Code sauber und übersichtlich, indem du Kommentare hinzufügst, die die Funktionsweise jedes Abschnitts erklären.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass dein Code auch bei unerwarteten Eingaben stabil bleibt.

FAQ: Häufige Fragen

1. Wie kann ich Nullen an einer anderen Stelle einfügen?
Du kannst die Position in der Mid-Funktion anpassen, um die Null an der gewünschten Stelle einzufügen.

2. Funktioniert das auch in Excel Online?
Leider unterstützt Excel Online keine VBA-Makros. Du müsstest die Logik in eine Formel umwandeln, um dies zu erreichen.

3. Kann ich diese Methode auch für andere Textboxen verwenden?
Ja, du kannst die gleiche Logik für andere TextBoxen oder sogar Zellen verwenden, indem du den Bezug entsprechend anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige