Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1404to1408
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: String Abgleich/Vergleich (Zahl/Zahl mit Text

VBA: String Abgleich/Vergleich (Zahl/Zahl mit Text
22.01.2015 08:55:19
Andi
Wieder mal ein Hallo an die Profis,
habe mir vor vielen Jahren eine umfangreiche Excel-Matrix programmieren lassen, deren Autor leider nicht mehr verfügbar ist :(
Nun haben sich Daten/Datensätze verändert und eine Funktion läuft nicht mehr - wie gewünscht. Vielleicht kann jemand helfen?
Funktionshintergrund:
Eine bestehende Tabelle wird mittels einer Importroutine aktualisiert. Hierbei gibt es pro Datensatz versch. Abfragen und Vergleiche. Sollten Datensätze nicht zu 100% übereinstimmen, wird eine Userform angezeigt. Hier kann der User den passenden DS anziehen oder andere Funktionen anreizen.
Problem:
Eines der zu importierenden Felder bestand bislang immer nur aus Zahlen (1234).
Das hat sich geändert, denn dieser Zahlenwert ist nun durch Buchstaben ergänzt worden. Diese Buchstaben können an unbestimmter Stelle stehen (B879, 55A1).
Die Importroutine erkennt diese Werte nicht mehr; wahrscheinlich weil in der Funktion (s.u.) eine Val() stattfindet?
Kann man diese Funktion umschreiben oder ändern, ohne Einfluss auf die gesamte restliche Prozedur zu nehmen und doch auch Zahlen-Buchstaben Kombinationen erkennen?
Der orig. Code:
  • 
    Public Function ProjektBestimmen(strKuerzel) As String
    Dim wks            As Worksheet
    Dim rngSuchbereich As Range
    Dim rngZelle       As Range
    Set wks = ActiveWorkbook.Worksheets(cstrWksRefProj)
    Set rngSuchbereich = wks.Range(cstrRangeRefProj)
    For Each rngZelle In rngSuchbereich
    'Problemzeile(?):
    If rngZelle.Value = Val(strKuerzel) Then
    ProjektBestimmen = wks.Cells(rngZelle.Row, 1).Value
    End If
    Next rngZelle
    End Function
    

  • Die beiden nachfolgenden Versuche kehrten das Problem nur um (1) oder erzielten keine Lösung (2):
    1. Verzicht auf Val():
  • If rngZelle.Value = strKuerzel Then

  • 2. Ergänzung durch "or", um beides abzufangen:
  • If rngZelle.Value = strKuerzel Or rngZelle.Value = Val(strKuerzel) Then

  • Danke für Eure Hilfe!
    Gruß

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

    Betreff
    Datum
    Anwender
    Anzeige
    AW: VBA: String Abgleich/Vergleich (Zahl/Zahl mit Text
    22.01.2015 13:00:16
    Rudi
    Hallo,
    wenn strKuerzel tatsächlich immer ein String ist:
    if Cstr(rngZelle) = strKuerzel Then
    Gruß
    Rudi

    ergänzung
    22.01.2015 13:04:28
    Rudi
    Hallo,
    um ganz sicher zu gehen:
    if Cstr(rngZelle) = Cstr(strKuerzel) Then
    Gruß
    Rudi

    AW: ergänzung
    22.01.2015 15:49:33
    Andi
    Hallo,
    ich hatte es anders herum mit CStr versucht.
    Es stellte sich auch heraus, das Excel an einigen Stellen Leerzeichen hinter die Importwerte bastelt. Das muss man erstmal finden :(
    Die Lösung funktioniert. DANKESCHÖN!

    Leerzeichen
    22.01.2015 16:24:06
    Rudi
    Hallo,
    die kannst du mit Trim entfernen.
    if trim(cstr(rngzelle))=cstr(strKuerzel) then
    Gruß
    Rudi
    Anzeige

    12 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige