textbox opslaan naar range met offset

  • Onderwerp starter Onderwerp starter pasan
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

pasan

Terugkerende gebruiker
Lid geworden
6 nov 2010
Berichten
1.110
met de volgende code vul ik 9 textboxen als er een keuze gemaakt is in een combobox
dit gebeurt met een userform

Code:
Private Sub cbovoornaam_Change()
    With Worksheets("evenement").Range("ak3:ak31")
      Dim c
   c = .Find((cbovoornaam.Value), LookIn:=xlValues).Offset(, -1)
   txtsalarisnr.Text = c
   c = .Find((cbovoornaam.Value), LookIn:=xlValues).Offset(, 0)
   txtvoornaam.Text = c
   c = .Find((cbovoornaam.Value), LookIn:=xlValues).Offset(, 1)
   txtachternaam.Text = c
   c = .Find((cbovoornaam.Value), LookIn:=xlValues).Offset(, 2)
   txtgeboortedatum.Text = c
   c = .Find((cbovoornaam.Value), LookIn:=xlValues).Offset(, 3)
   txtplaats.Text = c
   c = .Find((cbovoornaam.Value), LookIn:=xlValues).Offset(, 4)
   txtstraatenhuisnummer.Text = c
   c = .Find((cbovoornaam.Value), LookIn:=xlValues).Offset(, 5)
   txtpostcode.Text = c
   c = .Find((cbovoornaam.Value), LookIn:=xlValues).Offset(, 6)
   txttelefoonthuis.Text = c
   c = .Find((cbovoornaam.Value), LookIn:=xlValues).Offset(, 7)
   txtmobieltelefoon.Text = c
 End With
  

End Sub


nu is mijn vraag

Als ik nu de gevonden waarde die verschijnt in de textbox verander hoe sla ik die dan op in de zelfde cel alswaar de waarde gevonden is.

ik heb een knop opslaan in de userform


Code:
Private Sub cmdtoevoegen_Click()

'welke code moet hier komen om de waarde van txtsalarisnr op te slaan

End With

'clear the data

Me.txtsalarisnr.Value = ""
Me.txtvoornaam.Value = ""
Me.txtachternaam.Value = ""
Me.txtgeboortedatum.Value = ""
Me.txtplaats.Value = ""
Me.txtstraatenhuisnummer.Value = ""
Me.txtpostcode.Value = ""
Me.txttelefoonthuis.Value = ""
Me.txtmobieltelefoon.Value = ""
Me.cbovoornaam.Value = ""

Application.ScreenUpdating = True
MsgBox "De gegevens zijn toegevoegd!"
 ActiveWorkbook.Save

End Sub


groet Pasan:thumb:
 
Laatst bewerkt:
het werkt

voor diegene die er intresse in hebben zet ik mn oplossing die ik na vele uren proberen en zoeken gevonden heb hier onder.
ik weet het is nog niet helemaal kompleet af maar mischien dat iemand hier een oplossing voor weet.
ik heb er geen error verwerking in zitten en ik heb begrepen dat dit wel belangerijk is.
iemand?...........
als ik de userform open moet ik eigenlijk, zolang er geen keuze gemaakt is in de combobox
de textboxen niet kunnen selecteren.
als iemand hier de oplossing voor weet verneem ik het graag.
en uiteraard andere tips om mn userform beter te laten werken hoor ik ook graag.


Code:
Private Sub cmdtoevoegen_Click()
  With Worksheets("evenement").Range("al3:al31")
  Dim c
  
  Application.ScreenUpdating = False
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, -2)
    c.Value = txtsalarisnr.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, -1)
    c.Value = txtvoornaam.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, -0)
    c.Value = txtachternaam.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 1)
    c.Value = txtgeboortedatum.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 2)
    c.Value = txtplaats.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 3)
    c.Value = txtstraatenhuisnummer.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 4)
    c.Value = txtpostcode.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 5)
    c.Value = txttelefoonthuis.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 6)
    c.Value = txtmobieltelefoon.Text
        
   
'clear the data

Me.txtsalarisnr.Value = ""
Me.txtvoornaam.Value = ""
Me.txtachternaam.Value = ""
Me.txtgeboortedatum.Value = ""
Me.txtplaats.Value = ""
Me.txtstraatenhuisnummer.Value = ""
Me.txtpostcode.Value = ""
Me.txttelefoonthuis.Value = ""
Me.txtmobieltelefoon.Value = ""
Me.cbovoornaam.Value = ""

Application.ScreenUpdating = True
MsgBox "De gegevens zijn toegevoegd!"
 ActiveWorkbook.Save
 End With
 
End Sub

groet Pasan:thumb:
 
update

zo dan een paar uur verder en volgens mij klopt de code nu aardig
on error resume next geen fout melding bij verkeerd opslaan
en nu moet je eerst in de combo box een keuze maken zo niet dan krijg je een melding en kun je niet te vroeg op de opslaan button klikken want er gebeurd dan niets

Code:
Private Sub cmdtoevoegen_Click()
  With Worksheets("evenement").Range("al3:al31")
  On Error Resume Next
  Dim c
  
           If (Me.cbovoornaam.Value) = "" Then
  Me.cbovoornaam.SetFocus
 MsgBox "maak eerst keuze of kies afsluiten"
  Exit Sub
  End If
  
  Application.ScreenUpdating = False
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, -2)
    c.Value = txtsalarisnr.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, -1)
    c.Value = txtvoornaam.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, -0)
    c.Value = txtachternaam.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 1)
    c.Value = txtgeboortedatum.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 2)
    c.Value = txtplaats.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 3)
    c.Value = txtstraatenhuisnummer.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 4)
    c.Value = txtpostcode.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 5)
    c.Value = txttelefoonthuis.Text
        Set c = .Find(cbovoornaam.Value, LookIn:=xlValues).Offset(, 6)
    c.Value = txtmobieltelefoon.Text
        

   
'clear the data

Me.txtsalarisnr.Value = ""
Me.txtvoornaam.Value = ""
Me.txtachternaam.Value = ""
Me.txtgeboortedatum.Value = ""
Me.txtplaats.Value = ""
Me.txtstraatenhuisnummer.Value = ""
Me.txtpostcode.Value = ""
Me.txttelefoonthuis.Value = ""
Me.txtmobieltelefoon.Value = ""
Me.cbovoornaam.Value = ""

Application.ScreenUpdating = True




MsgBox "De gegevens zijn toegevoegd!"
 ActiveWorkbook.Save
 
 
 End With
End Sub
 
Je voert 9X dezelfde zoekbewerking uit. Dit kan je vermijden door onderstaande te gebruiken.
Code:
Private Sub cmdtoevoegen_Click()
Dim FRow As Integer
On Error Resume Next
    If Me.cbovoornaam.Value = "" Then
        Me.cbovoornaam.SetFocus
        MsgBox "maak eerst keuze of kies afsluiten": Exit Sub
    End If
Application.ScreenUpdating = False
    With Worksheets("evenement")
        FRow = .Range("AL3:AL31").Find(cbovoornaam.Value, , xlValues, xlWhole).Row
        If FRow = "" Then MsgBox "Geen overeenkomstige naam gevonden.": Exit Sub
        .Cells(FRow, 36) = txtsalarisnr.Text
        .Cells(FRow, 37) = txtvoornaam.Text
        .Cells(FRow, 38) = txtachternaam.Text
        .Cells(FRow, 39) = txtgeboortedatum.Text
        .Cells(FRow, 40) = txtplaats.Text
        .Cells(FRow, 41) = txtstraatenhuisnummer.Text
        .Cells(FRow, 42) = txtpostcode.Text
        .Cells(FRow, 43) = txttelefoonthuis.Text
        .Cells(FRow, 44) = txtmobieltelefoon.Text
    End With
'clear the data
Me.txtsalarisnr.Value = ""
Me.txtvoornaam.Value = ""
Me.txtachternaam.Value = ""
Me.txtgeboortedatum.Value = ""
Me.txtplaats.Value = ""
Me.txtstraatenhuisnummer.Value = ""
Me.txtpostcode.Value = ""
Me.txttelefoonthuis.Value = ""
Me.txtmobieltelefoon.Value = ""
Me.cbovoornaam.Value = ""

MsgBox "De gegevens zijn toegevoegd!"
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub
 
dankjewel warme bakker

groet Pasan:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan