• 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.

Userform

Status
Niet open voor verdere reacties.

popipipo

Meubilair
Lid geworden
21 nov 2006
Berichten
8.426
Ik ben een adressen bestand aan het maken
Het invullen van de gegevens doe ik via een userform.
Echter adressen en telefoon nummers veranderen wel eens.
Kan ik zo'n verandering ook via dat zelfde userform invoeren of moet ik dat anders doen
 
Kan je niet zoeken met Ctrl-F en dan de nodige aanpassingen doen in het werkblad zelf? Dus zonder Userform.

Bekijk ook eens Data > Formulier...

Wigi
 
Heb een macro gevonden, alleen moet je nog met de hekjes "(###) ###-####")"nog zelf aanpassen aan uw format?

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 
 Dim s as String, s1 as String, i as long, l as long 
' strip out any characters 
 s = Textbox1.Text 
s1 = "" 
 for i = 1 to len(s) 
   if isnumeric(mid(s,i,1)) then 
     s1 = s1 & mid(s,i,1) 
   end if 
 Next 

 if len(s1) <> 10 then 
   msgbox "Invalid Number" 
   Textbox1.Text = "" 
   Cancel = true 
else 
   l = int(s1) 
   s1 = format(l,"(###) ###-####") 
   TextBox1.Text = s1 
end if 
End Sub


Als je 1234567890 invult met dit als format (###) ###-####)
krijg je (123) 456-7890.


Pierre
 

Bijlagen

  • userform(1).zip
    14,2 KB · Weergaven: 168
Laatst bewerkt:
Hallo Wigi
Natuurlijk kan je in het werkblad zelf de aanpassingen doen.
Je kan daar alle adressen zo in zetten, je hebt dan ook voor de invoer geen userform nodig.
Maar ja het oog wil ook wat en daarom is het userform zo handig.

Via Data > Formulier heb je wel het juiste resultaat.
Kan de layout van het Formulier echter nog aangepast worden?

Pierre ook bedankt voor je reactie.
Je hebt echter de vraag niet goed begrepen.
Met jou oplossing kan ik geen adres veranderen.
 
Popi,

Bekijk deze file eens, misschien heb je er wat aan.
Is een van mijn eerste file mbv VBA dus de code zal niet overal efficient zijn.
Bij vragen weet je helpmij te vinden :)
 

Bijlagen

  • Personeel.zip
    53,3 KB · Weergaven: 461
Hallo Ferenc

Dit ziet er goed uit.
De werking van het userform is zoals ik in gedachte had.
Ik ga ermee aan de slag.
Als ik nog meer vragen heb hoor je nog van me.

Bedankt
 
Dag popi,

Zie bijlage.

gegroet,

Axel.
 

Bijlagen

  • Bestandsbeheer.zip
    18,3 KB · Weergaven: 392
Axel

Ook bedankt
Het werkt op de zelfde manier als Ferenc al had aangegeven.
 
Hallo Ferenc
Toch nog een paar vraagjes.

Het zoeken op naam wil ik toch iets anders.
nl: Roepnaam, Tussenvoegsel Achternaam
De komma na Roepnaam mag eventueel ook weg.
Als ik dit doe dan vult hij de gegevens niet verder aan.
Ik neem aan dat het aan onderstaand stukje VBA ligt.
Ik kan dit echter niet goed interpreteren.
Kun je mij dit uitleggen en aanpassen zodat het userform wel wordt ingevuld.

Of zijn er nog meer aanpassingen die ik moet doen? zo ja welke.

Bijvoorbaat dank voor de moeite


Code:
    i = InStr(zoeknaam, ", ") 'naammedewerker delen op de plaats van de komma
        stZoekenLinks = Trim(Left(zoeknaam, i - 1))   'var. Zoeknaam staat links van de komma
       stZoekenRechts = Mid(zoeknaam, i + 2, InStr(i + 2, zoeknaam, " ") - (i + 2)) 'Achternaam1
     stTussenvoegsel1 = Right(zoeknaam, Len(zoeknaam) - InStr(i + 2, zoeknaam, " "))
 
popipipo,

Ten eerste werkt de code wel ok. Alleen je had je bereik in je for functie niet aangepast aan jouw wensen (A moest een D worden).
Tevens heb ik de code iets voor je om gegooit zodat het meer begrijpelijker wordt.

Code:
Private Sub zoeknaam_Change()
Dim MyRange             As Variant
Dim c                   As Range
Dim i                   As Long

Set MyRange = Worksheets("gegevens")

'tegen flikkeren van beeldscherm
Application.ScreenUpdating = False

'haal de beveiliging van het blad
Sheets("gegevens").Unprotect

'zoeknaam is naam van combobox waar je de naam van de medewerkers selecteerd
'hierin selecteer je de naam van de medewerker, vb: Klaassen, Jan

If zoeknaam = Empty Then
    MsgBox "Kies medewerker en druk op de zoek knop!!!"
    Exit Sub
Else
'InStr geeft het locatienummer van waar de komma staat in de string zoeknaam
i = InStr(zoeknaam, ", ")
'Left geeft vanaf links aantal karakters weer in de string zoeknaam.
'we doen dit mbv de locatie van de komma
'bv jan, klaassen dan is Instr = 4 (, staat op de 4e plek), left is dan Instr - 1 want de komma willen we niet. Left = Instr - 1 (Jan, - , wordt Jan)
stZoekenLinks = Trim(Left(zoeknaam, i - 1))
'Hier zoeken we in de string zoeknaam naar het midden gedeelte.
'We zoeken het gedeelte tussen de komma en de spatie
stTussenvoegsel = Mid(zoeknaam, i + 2, InStr(i + 2, zoeknaam, " ") - (i + 2)) 'Achternaam
'Hier zoeken we gegevens rechts van de spatie.
'met de functie Trim halen we de komma's links en recht (als deze aanwezig zijn) weg
stZoekenRechts = Right(zoeknaam, Len(zoeknaam) - InStr(i + 2, zoeknaam, " "))

    For Each c In MyRange.[COLOR="Red"]Range("D3:D80")[/COLOR]
        If c = stZoekenLinks And c.Offset(0, 1).Value = stTussenvoegsel And c.Offset(0, 2).Value = stZoekenRechts Then
            
                       'relatie.Text = MyRange.Range("A" & c.Row)
                         'titel.Text = MyRange.Range("B" & c.Row)
                   voorletters.Text = MyRange.Range("C" & c.Row)
                      roepnaam.Text = MyRange.Range("D" & c.Row)
                tussenvoegsel1.Text = MyRange.Range("E" & c.Row)
                   achternaam1.Text = MyRange.Range("F" & c.Row)
                tussenvoegsel2.Text = MyRange.Range("G" & c.Row)
                   achternaam2.Text = MyRange.Range("H" & c.Row)
                         adres.Text = MyRange.Range("I" & c.Row)
                    huisnummer.Text = MyRange.Range("J" & c.Row)
                         extra.Text = MyRange.Range("K" & c.Row)
                      postcode.Text = MyRange.Range("L" & c.Row)
                    woonplaats.Text = MyRange.Range("M" & c.Row)
                          land.Text = MyRange.Range("N" & c.Row)
                      telefoon.Text = MyRange.Range("O" & c.Row)
                        mobiel.Text = MyRange.Range("P" & c.Row)
                         email.Text = MyRange.Range("Q" & c.Row)
                       webside.Text = MyRange.Range("R" & c.Row)
        
        End If
    Next
End If

'beveilig blad weer
Sheets("gegevens").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

'tegen flikkeren van beeldscherm
Application.ScreenUpdating = True

End Sub

Heb even snel een uitleg erbij gegeven (beetje tijdsnood vandaag :()
Je kan de functie sook makkelijk via de Excel helpfile raadplegen wat ze precies doen.
Alleen je moet de trucjes weten hoe ze aan elkaar te koppelen (met dank aan dit forum (vooral Wigi))

Succe en we horen wel weer :L).
 
Wat een lettertje al niet (of wel) kan doen.

Dank je Ferenc voor je snelle reactie
De termen van Trim, Left , Mid en Right begreep ik dat het met opsplitsen te maken had.
De code die daar achter staat was voor mij abracadabra.
Ik begrijp het nu, maar zelf zoiets schrijven is nog een tweede.

Ik ben blij met het forum
 
Popi,

Bekijk deze file eens, misschien heb je er wat aan.
Is een van mijn eerste file mbv VBA dus de code zal niet overal efficient zijn.
Bij vragen weet je helpmij te vinden :)

ik vind het een geweldig programmatje maar zou je mij eventueel ook kunnen helpen!
Ik ben dit jaar begonnen aan een oleiding applicatie ontwikkeling maar VB staat later pas op het programma.
nu help ik af en toe in een zonnenbank center en daar moeten een helehoop klanten gegevens worden bij gehouden en bij ieder bezoek geupdate worden!
Nu snap ik zelf niks van maar den basis is eigenlijk fanatstisch. Heel gebruiksvriendelijk!

het origineel programma dat ik hier heb gevonden was personeel!
 

Bijlagen

  • nieuwe fiche.jpg
    nieuwe fiche.jpg
    96,9 KB · Weergaven: 221
  • gegevens.xls
    28,5 KB · Weergaven: 347
  • Personeel.rar
    49,8 KB · Weergaven: 229
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan