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

Forumthread: String vergleichen

String vergleichen
14.08.2013 13:59:12
Christian
Hallo
Wie kann ich 2 String vergleichen.
der erste String steht fest. Der 2. String gibt der Benutzer ein.
Der String, der vom Benutzer eingegeben wir, wird in ein Textfeld geschrieben.
Der vorgegebene Text wird beim initialisieren im Textfeld dargestellt.
Ich möchte wissen, ob der Benutzer die Veränderung vorgenommen hat.

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String vergleichen
14.08.2013 14:30:45
Oberschlumpf
Hi Christian
Versuch mal (ungetestet, weil keine Bsp-Datei von dir zur Hand)
1. Schreib in ein allgemeines Modul
Public pstrVorgabe As String
2. Schreib ins Activate-Ereignis des Userforms
pstrVorgabe = Textbox1.Text 'für Textbox1 = den Textbox-Namen, in dem der Vorgabetext steht
3. Schreib ins Change-Ereignis der Textbox, wo Benutzer eingibt
If pstrVorgabe  Textbox1.Text Then 'Textbox1 wieder ändern in Textbox-Name, wo eingegeben  _
wird
MsgBox "Benutzer hat Änderung eingegeben"
End If
Hilfts?
Wenn nicht, zeig uns bitte ne Bsp-Datei mit allem, was wichtig ist, um dein Problem zu verstehen.
Ciao
Thorsten

Anzeige
AW: String vergleichen
14.08.2013 15:07:17
Christian
Hallo Thorsten
Ich habe eine Combobox und 2 Textfelder. Trägt der Benutzer die geforderten Angaben ein, soll der Button Einfügen aktiv werden und die Eingaben in die Tabelle geschrieben werden.
Meine Idee ist eine Abfrage zu mach, so das jeweils True raus kommt.
Dann muss ich beim einfügenbutton schreiben
Wenn True1 and True2 und True 3 then Button aktiv,
Hier meine Datei:https://www.herber.de/bbs/user/86852.xlsm

Anzeige
AW: String vergleichen
15.08.2013 09:43:10
Christian
Hallo
Danke für deine schnelle Antwort. Hier mein code
Option Explicit
Private Sub UserForm_Initialize()
Dim i As Integer
Dim j As Integer
'Das Kombinationsfeld Kategorie füllen
For i = 2 To 4
UserForm_BestGuide.ComboBox_Kategorie.AddItem _
Sheets("Kategorie").Cells(i, 1).Value
Next i
'Den ersten Eintrag einstellen
j = 0
UserForm_BestGuide.ComboBox_Kategorie.Listindex = j
'Die TextBox ID füllen
UserForm_BestGuide.TextBox_ID.text = "ID eingeben"
'Die Textbox Bezeichnung füllen
UserForm_BestGuide.TextBox_Bezeichnung.text = "Bezeichnung eingeben"
'Button Einfügen auf inaktiv setzen
CommandButton_Einfügen.Enabled = False
End Sub
Function ComboBox_Kategorie(Auswahl As String) As Boolean
If Me.ComboBox.Kategorie.text  "Auswahl vornehmen" Then Auswahl = True
Else: Auswahl = False
End Function
Private Sub TextBox_ID_Change()
If Me.TextBox_ID.text  " ID eingeben" Then
CommandButton_Einfügen.Enabled = True
End Sub
Private Sub CommandButton_Schließen_Click()
Unload Me
End Sub
Private Sub CommandButton_Einfügen_Click()
Range("C3") = TextBox_Bezeichnung
End Sub
Private Sub CommandButton_Suchen_Click()
Suchen.Show
End Sub
Meine Idee ist für die ComboBox, Textfeld_Bezeichnung und Textfeld_Id eine Abfrage zu machen, wo am Ende True oder False raus kommt
Kommt jeweils als Ergebnis True soll der Button Eingabe aktiv werden. So stelle ich sicher das der Anwender ein Eintrag vornimmt.
Meine Überlegung ist
Private Sub CommandButton_Einfügen_Click()
If ComboBox_Kategorie.value=True and TextBox_ID.Value=True and TextBox_Bezeichnung.Value= _
True
Then
CommandButton_Einfügen.Enabled = True
End Sub
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Strings in Excel VBA vergleichen


Schritt-für-Schritt-Anleitung

Um Strings in Excel VBA zu vergleichen, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen. Diese Methode hilft dir, zu überprüfen, ob der Benutzer Änderungen an einem vorgegebenen Text vorgenommen hat.

  1. Öffne den VBA-Editor (Alt + F11) und erstelle ein neues Modul.
  2. Definiere eine öffentliche Variable für den Vorgabetext:
    Public pstrVorgabe As String
  3. Im UserForm_Initialize-Ereignis, setze den Vorgabetext in die TextBox:
    pstrVorgabe = TextBox1.Text ' Ersetze TextBox1 mit dem tatsächlichen Namen deiner TextBox
  4. Füge im Change-Ereignis der TextBox folgenden Code hinzu, um den Vergleich durchzuführen:
    If pstrVorgabe <> TextBox1.Text Then
       MsgBox "Benutzer hat Änderung eingegeben"
    End If

Diese grundlegende Methode zum Excel VBA String vergleichen ermöglicht es dir, Änderungen des Benutzers in Echtzeit zu erfassen.


Häufige Fehler und Lösungen

  • Fehler: Typenkonflikt bei der Variablenzuweisung.

    • Lösung: Stelle sicher, dass alle Variablen korrekt deklariert sind und der Typ zum erwarteten Datentyp passt.
  • Fehler: Der Vergleich funktioniert nicht.

    • Lösung: Überprüfe, ob du die richtigen Operatoren verwendest (<> für ungleich oder = für gleich).
  • Fehler: Der Button wird nicht aktiviert.

    • Lösung: Vergewissere dich, dass alle Bedingungen im If-Block korrekt formuliert sind.

Alternative Methoden

Es gibt verschiedene Methoden, um Strings in Excel VBA zu vergleichen. Hier sind einige Alternativen:

  1. Vergleich mit StrComp: Du kannst die Funktion StrComp verwenden, um Strings zu vergleichen, wobei du auch die Groß- und Kleinschreibung berücksichtigen kannst:

    If StrComp(pstrVorgabe, TextBox1.Text, vbTextCompare) <> 0 Then
       MsgBox "Änderung festgestellt"
    End If
  2. Verwenden von Like: Eine andere Methode ist die Verwendung des Like-Operators, um Muster zu vergleichen.

    If TextBox1.Text Like "muster*" Then
       MsgBox "Text entspricht dem Muster"
    End If

Diese Alternativen können in bestimmten Szenarien nützlich sein, insbesondere wenn du komplexere Vergleiche durchführen möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, die oben genannten Konzepte umzusetzen:

  1. Beispiel für den Vergleich in einem Button-Click-Ereignis:

    Private Sub CommandButton_Einfügen_Click()
       If TextBox_ID.Text <> "ID eingeben" And TextBox_Bezeichnung.Text <> "Bezeichnung eingeben" Then
           CommandButton_Einfügen.Enabled = True
       End If
    End Sub
  2. Kombination aller Bedingungen:

    Private Sub CommandButton_Einfügen_Click()
       If ComboBox_Kategorie.Value = "Auswahl vornehmen" Then
           MsgBox "Bitte wähle eine Kategorie aus"
       ElseIf TextBox_ID.Text <> "ID eingeben" And TextBox_Bezeichnung.Text <> "Bezeichnung eingeben" Then
           CommandButton_Einfügen.Enabled = True
       End If
    End Sub

Diese Beispiele zeigen, wie du Benutzerinteraktionen effizient in deinem VBA-Projekt verwalten kannst.


Tipps für Profis

  • Nutze die Trim-Funktion, um führende und nachfolgende Leerzeichen aus den Eingaben zu entfernen, bevor du den Vergleich durchführst:

    If Trim(TextBox1.Text) <> Trim(pstrVorgabe) Then
      MsgBox "Änderung festgestellt"
    End If
  • Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind, was dir hilft, Fehler zu vermeiden.

  • Implementiere zusätzliche Validierungen für die Benutzer Eingaben, um sicherzustellen, dass die Datenqualität hoch bleibt.


FAQ: Häufige Fragen

1. Wie vergleiche ich zwei Strings in einer Excel-Formel? Um Strings in Excel zu vergleichen, kannst du einfach die Formel =A1=B1 verwenden, um zu überprüfen, ob die Werte in den Zellen A1 und B1 gleich sind.

2. Ist der Vergleich von Strings in VBA case-sensitive? Standardmäßig ist der Vergleich in VBA nicht case-sensitive, es sei denn, du verwendest die StrComp-Funktion mit dem Parameter vbBinaryCompare.

3. Kann ich auch Teile eines Strings vergleichen? Ja, du kannst die Funktion InStr verwenden, um zu überprüfen, ob ein Teilstring in einem anderen String enthalten ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige