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

Commandbutton wel maar niet met ComboBox

Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.076
Besturingssysteem
Wndows 11
Office versie
2016
Hier hier iets heel simpels, maar ik kom er niet uit
Hier onder staat een code die wel werkt met een Commandbutton maar niet met een ComboBox
Dit werkt:
Code:
Private Sub Cmd_Opzoeken_Click()
Dim code As Range
    With Worksheets("klanten")
    Set code = .Range("A:AA").Find(ComboBox1.Value, LookIn:=xlValues, Lookat:=xlWhole)
        For i = 2 To 27
            Me("TextBox" & i) = .Cells(code.Row, i)
        Next
    End With
End Sub

Maar deze dus niet.
Code:
Private Sub ComboBox1_Click()
Dim code As Range
    With Worksheets("klanten")
    Set code = .Range("A:AA").Find(ComboBox1.Value, LookIn:=xlValues, Lookat:=xlWhole)
        For i = 2 To 27
            Me("TextBox" & i) = .Cells(code.Row, i)
        Next
    End With
End Sub

Ik snap alleen niet waarom, ik maak toch een keuze door op het item van de ComboBox te klikken.
Dus snap het niet.

Een tip graag
 
Code:
Private Sub ComboBox1_Click()
  if combobox1<>"" then 
    sn = sheets("klanten").usedrange.resize(,27).Find(ComboBox1.Value,,, 1).entirerow
    For i = 2 To 27
      Me("TextBox" & i) = sn(1,i)
    Next
  end if
End Sub
 
Ik kom er niet uit, heb een klein klanten bestand voor mijn zoon gemaakt die ik steeds verder wil uitbreiden.
Heb gelijk ook maar het bestand meegestuurd
Bekijk bijlage helpmij-klant.xlsm
Of ik nu de oplossing van SNB gebruik of mijn eigen loop steeds op onderstaande vast

Mijn eigen
Code:
Private Sub Cmd_Opzoeken_Click()
Dim code As Range
    With Worksheets("klanten")
    Set code = .Range("A:AA").Find(ComboBox1.Value, LookIn:=xlValues, Lookat:=xlWhole)
        For i = 2 To 27
            [COLOR="#FF0000"]Me("TextBox" & i) = .Cells(code.Row, i)[/COLOR]
        Next
    End With
End Sub

En die van SNB
Code:
Private Sub ComboBox1_Click()
  if combobox1<>"" then 
    sn = sheets("klanten").usedrange.resize(,27).Find(ComboBox1.Value,,, 1).entirerow
    For i = 2 To 27
      [COLOR="#FF0000"]Me("TextBox" & i) = sn(1,i)[/COLOR]
    Next
  end if
End Sub

Normaal zijn de oplossingen van SNB altijd juist.
door dat ik er te lang naar tuur zie ik het niet meer.
 

Bijlagen

  • 2018-07-02 13_17_37-Microsoft Visual Basic.png
    2018-07-02 13_17_37-Microsoft Visual Basic.png
    10,6 KB · Weergaven: 36
Laatst bewerkt:
Dan moet je gewoon doen wat ik doe en kijken in welke regel het fout gaat en wat de waarde van de variabelen is.

Dan blijkt Textbox14 niet te bestaan.
Dat kun je prima zelf uitvinden.
 
SNB
Inderdaad heb ik de fout gevonden, de code zocht naar te veel TextBoxen deze is gewijzigd in 13 ipv 27.
Dus dit gedeelte werkt nu maar het opslaan van de wijzigingen neemt het programma de wijzigingen niet over.
onderstaand gewijzigd document

Bekijk bijlage helpmij-klant.xlsm

Wie heeft er nog een tip voor het opslaan van de klant wijzigingen
 
Probleem is opgelost gewoon een verkeerde button naam STOM HE :(
 
Met een iets betere structuur en minder interactie met het werkblad. De knoppen 'Zoek' en 'Formulier leeg maken' heb ik weggelaten. (lijken mij beide overbodig voor het wijzigen van gegevens)
 

Bijlagen

Dank je VenA,

Mooie en nuttige oplossing :thumb:
 
VenA

Heb nog klein vraagje, waar is VenA 1 enz. gedefinieerd zoals onder

Code:
Private Sub TextBox1_Change()
 [COLOR="#FF0000"] VenA 1[/COLOR]
End Sub
 
Oeps :o:o:o:o:o

Niet gezien

Dank je
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan