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

Forumthread: Suchen und ersetzen in andere Zelle per VBA

Suchen und ersetzen in andere Zelle per VBA
10.02.2013 17:54:13
Steffi
Hallo liebes Forum
Ich möchte in einer Textbox Tabelle1 eine Nummer sowie einen Namen eingeben. Diese Nummer soll dann in Tabelle2 von A1 bis A10000 gesucht werden. Wenn die Nummer gefunden wird soll in der gefundenen Spalte in Zelle C der Namen aus der Textbox eingetragen oder ersetzt werden. Ist das per VBA zu lösen?
Ich hoffe ihr könnt mir helfen...?
Vielen lieben Dank

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Suchen und ersetzen in andere Zelle per VBA
10.02.2013 18:50:23
Steffi
Hallo nochmal,
habe mal eine Beispieldatei hochgeladen, nur leider ohne einen Code...
https://www.herber.de/bbs/user/83839.xls
Vielen lieben Dank

AW: Suchen und ersetzen in andere Zelle per VBA
11.02.2013 06:37:00
hary
Moin
Fuer den Button.
Private Sub CommandButton1_Click()
Dim a As Variant
With Worksheets("Tabelle2")
a = Application.Match(CLng(TextBox1), .Columns(1), 0)
If IsNumeric(a) Then
'wenn Nummer vorhanden
.Cells(a, 2) = TextBox2 'aus Textbox2 eintragen Fundzeile in SpalteB
Else
MsgBox " Nummer nicht vorhanden", vbInformation, "Nummernsuche nicht erfolgreich"
End If
End With
End Sub

gruss hary

Anzeige
AW: Suchen und ersetzen in andere Zelle per VBA
11.02.2013 18:22:11
Steffi
Hallo hary,
vielen Dank für Deine Antwort...
Dein Code funktioniert super!
Kann man hier noch per Code überprüfen das auch Zahlen eingegeben werden, denn bei einer Texteingabe
kommt ein Laufzeitfehler.
Aber ansonsten TOP
Danke Dir

AW: Suchen und ersetzen in andere Zelle per VBA
12.02.2013 05:24:19
hary
Moin
Kam gestern nicht mehr dazu.
Lass nur die Eingabe von Zahlen in Textbox1 zu.
Codezeile fuer leere Textbox noch eingesetzt.
Private Sub CommandButton1_Click()
Dim a As Variant
With Worksheets("Tabelle2")
If TextBox1 = "" Then Exit Sub 'wenn Textbox1 leer Code beenden
a = Application.Match(CLng(TextBox1), .Columns(1), 0)
If IsNumeric(a) Then
'wenn Nummer vorhanden
.Cells(a, 2) = TextBox2 'aus Textbox2 eintragen Fundzeile in SpalteB
Else
MsgBox " Nummer nicht vorhanden", vbInformation, "Nummernsuche nicht erfolgreich"
End If
End With
End Sub
Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'------   Laesst nur Zahlen in Textbox1 zu ------
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub

gruss hary
Anzeige

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Suchen und Ersetzen in Excel-Zellen mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle eine neue Arbeitsmappe oder öffne eine bestehende Datei.
  2. Füge ein UserForm hinzu: Gehe zu Entwicklertools -> Visual Basic. Klicke mit der rechten Maustaste auf VBAProject (DeineDatei) und wähle Einfügen -> UserForm.
  3. Füge zwei TextBoxen und einen Button hinzu:
    • TextBox1 für die Eingabe der Nummer.
    • TextBox2 für die Eingabe des Namens.
    • Einen CommandButton, um den Such- und Ersetzungsvorgang auszulösen.
  4. Füge den folgenden VBA-Code ein in das Codefenster des UserForms:
Private Sub CommandButton1_Click()
    Dim a As Variant
    With Worksheets("Tabelle2")
        If TextBox1 = "" Then Exit Sub 'wenn Textbox1 leer Code beenden
        a = Application.Match(CLng(TextBox1), .Columns(1), 0)
        If IsNumeric(a) Then
            'wenn Nummer vorhanden
            .Cells(a, 3) = TextBox2 'aus Textbox2 in Spalte C eintragen
        Else
            MsgBox "Nummer nicht vorhanden", vbInformation, "Nummernsuche nicht erfolgreich"
        End If
    End With
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    '------   Laesst nur Zahlen in TextBox1 zu ------
    Select Case KeyAscii
        Case 48 To 57
        Case Else: KeyAscii = 0
    End Select
End Sub
  1. Testen: Fülle die TextBoxen aus und klicke auf den Button. Der Name sollte in der entsprechenden Zelle in Spalte C erscheinen, wenn die Nummer gefunden wird.

Häufige Fehler und Lösungen

  • Fehler: "Nummer nicht vorhanden": Stelle sicher, dass die eingegebene Nummer tatsächlich in Spalte A von Tabelle2 vorhanden ist.
  • Laufzeitfehler bei Texteingabe: Der Code lässt nur numerische Eingaben in TextBox1 zu. Wenn du trotzdem einen Laufzeitfehler erhältst, überprüfe die Eingaben.
  • Leere TextBox: Wenn TextBox1 leer ist, wird der Code beendet, um einen Fehler zu vermeiden.

Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch die Funktion "Suchen und Ersetzen" in Excel nutzen:

  1. Markiere den Bereich, in dem du suchen möchtest.
  2. Drücke Strg + H (Suchen und Ersetzen Shortcut).
  3. Gib die Nummer ein, die du suchen möchtest, und den neuen Namen, den du einsetzen willst.
  4. Klicke auf "Alle ersetzen".

Diese Methode ist jedoch weniger flexibel, da sie nicht automatisch auf andere Zellen verweist.


Praktische Beispiele

  • Beispiel 1: Du hast eine Liste von Kundennummern in Tabelle2 von A1 bis A10000. Wenn du in TextBox1 die Kundennummer 1234 eingibst und in TextBox2 "Max Mustermann", wird "Max Mustermann" in die Zelle C der entsprechenden Zeile eingetragen.
  • Beispiel 2: Wenn du mehrere Namen hast, die du durch die gleiche Nummer ersetzen möchtest, kannst du den Code erweitern, um alle Vorkommen zu finden und zu ersetzen.

Tipps für Profis

  • Überlege, ob du die Suche auch für mehrere Spalten erweitern möchtest, um flexibler zu sein.
  • Nutze benutzerdefinierte Funktionen, um spezifische Anforderungen zu erfüllen, wie das Suchen und Ersetzen von Wortteilen, die mehrfach mit 4 Buchstaben vorkommen.
  • Dokumentiere deinen VBA-Code, um anderen zu helfen, die möglicherweise später an deinem Projekt arbeiten.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass ich nur nach Zahlen suche? Im bereitgestellten Code wird bereits eine Filterung für numerische Eingaben in TextBox1 verwendet.

2. Was passiert, wenn ich mehrere nummerische Eingaben auf einmal machen möchte? Das ursprüngliche Skript ist für eine einzelne Suche konzipiert. Du müsstest den Code anpassen, um mehrere Eingaben in einem Durchgang zu verarbeiten.

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