Home VBA Makro Beispiele Suchen und Finden VBA - Kundennummer suchen
VBA - Kundennummer suchen PDF Drucken E-Mail
Geschrieben von: Marcus Rose   
Freitag, 08. August 2008 um 09:21 Uhr

Adresse nach Kundennummer suchen und eintragen lassen

Bei folgendem Code müssen 2 Tabellenblätter vorhanden sein. Das eine sollte Rechnung heißen. Das zweite Tabellenblatt nennen wir Kunden. Folgenden Aufbau der Tabellen habe ich gewählt:
Rechnung

 CDE
11   
12 Herr 
13   
14 Rose, Marcus 
15 Eichenhoferweg 91 
16   
17 42279 Wuppertal 
18   

 

Kunden

 ABCDE
1Knd. Nr.AnredeName, VornameAdressePlz / Wohnort
21HerrRose, MarcusEichenhofer Weg 9142279 Wuppertal
32HerrPanther, Paulchenyyyyyyyyyy

 

Nun ist es Ziel eines Makros, dass eine Kundennummer eingegeben wird. Diese wird im Tabellenblatt Kunden gesucht. Wird die Kundennummer gefunden, so soll der Name und die Adresse ins Tabellenblatt Rechnung eingetragen werden. Hier könnte man eventuell die Funktion Vlookup nutzen, aber ich gehe hier extra diesen Weg, damit Ihr ein Beispiel für ein solches Suchmakro erhaltet. Ich habe den folgenden Code hinter dem Tabellenblatt Kunden liegen:

 


Option Explicit

Sub Instrsuche()
    Dim i As Long
    Dim Loletzte As Long, gesucht As String
    Dim FirstAddress As String, intErgebnis As Range
    gesucht = Application.InputBox("Bitte geben Sie die Kundennummer ein")
    Worksheets("Rechnung").Range("D12:D18").ClearContents
'Beginn der Suchfunktion
    Loletzte = Worksheets("Kunden").Cells(Rows.Count, 1).End(xlUp).Row + 1
    With Worksheets("Kunden").Range("A2:" & "A" & Loletzte)
    Set intErgebnis = .Find(gesucht, LookAt:=xlWhole, LookIn:=xlValues)
        If Not intErgebnis Is Nothing Then
            FirstAddress = intErgebnis.Address
            Do
            Worksheets("Rechnung").Range("D12") = Sheets("Kunden").Cells(intErgebnis.Row, 2)
            Worksheets("Rechnung").Range("D14") = Sheets("Kunden").Cells(intErgebnis.Row, 3)
            Worksheets("Rechnung").Range("D15") = Sheets("Kunden").Cells(intErgebnis.Row, 4)
            Worksheets("Rechnung").Range("D17") = Sheets("Kunden").Cells(intErgebnis.Row, 5)
            Set intErgebnis = .FindNext(intErgebnis)
            Loop While Not intErgebnis Is Nothing And intErgebnis.Address <> FirstAddress
            Else
               MsgBox ("Kein Eintrag vorhanden!")
            Exit Sub
        End If
        End With
End Sub

Um das Ganze zu komplettieren kommt hier aber noch eine Möglichkeit mit Vlookup:


Option Explicit

Sub mit_vlookup()
    Dim gesucht As Double
    gesucht = Application.InputBox("Bitte geben Sie die Kundennummer ein")
    Worksheets("Rechnung").Range("D12") = Application.WorksheetFunction.VLookup(gesucht, _
    Worksheets("Kunden").Range("A2:E" & Worksheets("Kunden").Cells(Rows.Count, 1).End(xlUp).Row), 2, 0)
    Worksheets("Rechnung").Range("D14") = Application.WorksheetFunction.VLookup(gesucht, _
    Worksheets("Kunden").Range("A2:E" & Worksheets("Kunden").Cells(Rows.Count, 1).End(xlUp).Row), 3, 0)
    Worksheets("Rechnung").Range("D15") = Application.WorksheetFunction.VLookup(gesucht, _
    Worksheets("Kunden").Range("A2:E" & Worksheets("Kunden").Cells(Rows.Count, 1).End(xlUp).Row), 4, 0)
    Worksheets("Rechnung").Range("D17") = Application.WorksheetFunction.VLookup(gesucht, _
    Worksheets("Kunden").Range("A2:E" & Worksheets("Kunden").Cells(Rows.Count, 1).End(xlUp).Row), 5, 0)
End Sub

 
Copyright © 2010 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: 458.209
Besucher heute: 25
Besucher gestern: 1.099
Max. Besucher pro Tag: 1.517
gerade online: 4
max. online: 38
counter Statistiken