• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

automatisch gegevens invullen uit database

Status
Niet open voor verdere reacties.

jan85

Nieuwe gebruiker
Lid geworden
27 nov 2011
Berichten
3
Hallo iedereen,
Ik ben op zoek naar een code voor vba in excel die het volgende doet:
in de eerste sheet heb ik een database met klanten. in de eerste kolom staat een numerieke unieke code per klant.
in de volgende scheet wil ik een database maken met projecten.
in de eerste kolom vul ik een projectnummer in,
in de tweede de klantnummer
nu zoek ik een code die start op het moment dat ik de cel waar het klantnummer ingevuld word en het volgende doet:
de naam van de klant invult in de derde kolom
het telefoonnummer van de klant invult in de vierde kolom.

Het zal mooi zijn als de code ook gelijk het volgende doet:

is de cel blank word de code gestopt.
is de klantcode onjuist een "fout" messagebox waarnaar de inhoud van de cel gewist word.

ik hoop dat iemand me kan helpen
alvast bedankt

Bekijk bijlage voorbeeldbestand.xlsm
 
Even voor de duidelijkheid en juiste naamgevingen:
Excel is geen database.
Daarnaast heeft een werkblad niets met het eten van bruine bonen van doen :P

M.u.v. een messagebox is je doelstelling eenvoudig met de functie VERT.ZOEKEN en dus zonder VBA te halen. Bijvoorbeeld in C2 van blad Projecten:
=VERT.ZOEKEN(B2;klanten!A2:B5;2)
 
Laatst bewerkt:
@edmoor
sorry voor de typefout:(
Ik ben bekend met de VERT.ZOEKEN formule
alleen het is zeer van belang dat als de gegevens in de sheet met klanten wijzigt dat dit op andere sheets niet word doorgevoerd. daarom zoek ik een oplossing in VBA.
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Columns(2)) Is Nothing Then
        With Sheets("Klanten")
            On Error GoTo Err_Handler
            CustRow = .Columns(1).Find(Target.Value, , xlValues, xlWhole).Row
            Target.Offset(, 1) = .Cells(CustRow, 2).Value
            Target.Offset(, 2) = .Cells(CustRow, 4).Value
        End With
    End If
    Exit Sub
Err_Handler:
    MsgBox "Klant is nog niet geregistreerd."
    Target = vbNullString
    
End Sub
 
Bedank iedereen!!
Ik moet eerlijk zeggen dat de oplossing van warme bakkertje het beste werkt
ik kan weer verder met m n project
thanks :thumb::thumb::thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan