Home VBA Makro Beispiele Suchen und Finden VBA - Suche mit Application.Match
VBA - Suche mit Application.Match PDF Drucken E-Mail
Geschrieben von: Marcus Rose   
Montag, 24. Oktober 2011 um 15:49 Uhr

Eine weitere Möglichkeit Übereinstimmungen zu finden gefällig? Hierbei handelt es sich eigentlich, wenn man weiß wie es angewand wird, um die einfachste Möglichkeit. Wir reden von Application.Match, welche als Formel der Vergleich() wäre.

Um eine Übereinstimmung zu finden ist das wie gesagt die einfachste Möglichkeit. In unserem Beispiel möchten wir eine Bankleitzahl eingeben und es soll uns die passende Bank ausgegeben werden. Dazu habe ich erst einmal 2 fast identische Tabellenblätter erstellt. Zum einen das Blatt "Banken", wodrin alle Banken und Bankleitzahlen gespeichert werden sollen, und natürlich eines, damit wir die BLZ eingeben und uns ggf. der passende Bankname ausgegeben wird. Wird uns die Bank als unbekannt ausgegeben, so wollen wir natürlich die neue Bankverbindung auch abspeichern.

 

Hier erst einmal die Tabellenblätter:

 

Banken

A B
1 BLZ Bankname
2 33050000 Stadtsparkasse Wuppertal
3 33050001 Stadtsparkasse Berlin

Tabelle1

A B
1 BLZ Bankname
2 33050001 Stadtsparkasse Berlin

Und hier der passende VBA Code:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim loletzte As Long
Dim Bankname As Variant
Dim x As Variant
If Not Intersect(Target, Range("A2")) Is Nothing Then
    With Sheets("Banken")
        x = Application.Match(CLng(Target), .Columns(1), 0)
        If IsNumeric(x) Then 'wenn gefunden
            Range("B2") = .Cells(x, 2)
        Else
            If Len(Target) <> 8 Then
                MsgBox ("Die Blz hat keine 8 Ziffern." _
                & "Hier liegt ein Fehler bei der Eingabe vor!")
                Exit Sub
            End If
            Bankname = Application.InputBox("Die Bank ist uns noch nicht bekannt." _
            & Chr(13) & _
            "Bitte tragen Sie den Namen der Bank ein.", "Eingabe", Type:=2)
            If Bankname = False Then
                Exit Sub
            Else
                loletzte = .Cells(Rows.Count, 1).End(xlUp).Row + 1
                .Cells(loletzte, 1) = Range("A2")
                .Cells(loletzte, 2) = Bankname
                Range("B2") = Bankname
            End If
        End If
    End With
End If
End Sub
Zuletzt aktualisiert am Dienstag, 25. Oktober 2011 um 03:36 Uhr
 
Copyright © 2017 ms-excel.eu. Alle Rechte vorbehalten.
 

Autoren - Login

Werbung

wichtige Links:
http://ms-excel.eu
Hier habt Ihr eine gute Excel Hilfe
Besucherstatistik
Besucher gesamt: 4.476.122
Besucher heute: 1.569
Besucher gestern: 1.981
Max. Besucher pro Tag: 4.488
gerade online: 14
max. online: 507
counter Statistiken