25 textboxen vullen

Status
Niet open voor verdere reacties.

pasan

Terugkerende gebruiker
Lid geworden
6 nov 2010
Berichten
1.110
hallo

ik heb een sheet waar ik de eerste 25 kolommen moet invullen, per regel
elke keer een nieuwe regel met vaak de zelfde gegevens als de vorige rij
en het komt ook voor dat in 1 rij een paar cellen niets staat

nu heb ik een userform gemaakt met 25 textboxen en nu wilde ik graag als ik de userform open dat de laatst ingevulde rij van 25 kolommen in de bijbehorende textbox komt te staan als ik dan 1 of meerdere textboxwaarden wijzig en op de knop opslaan klik dat de waarden van alle textboxen onder de laatst gevulde rij wordt weggeschreven
ik kan dan hierna de userform herladen zodat de laatst ingevulde rij weer in de textboxen wordt weergegeven.
kolom A (textbox1) wordt altijd ingevuld
kolom B (textbox2 = datum van vandaag) is een datum
iemand een idee?
groet

Pasan:thumb:
 
In userform1 module
De commandbutton1 is voor het wegschrijven.

Code:
Public i As Integer
Private Sub UserForm_Initialize()
    For i = 1 To 25
     Me("Textbox" & i) = Sheets("Blad1").Cells(Cells(Rows.Count, 1).End(xlUp).Row, i).Value
   Next
End Sub
Private Sub CommandButton1_Click()
  For i = 1 To 25
     Sheets("Blad1").Cells(Cells(Rows.Count, i).End(xlUp).Row, i)(2).Value = Me("Textbox" & i).Value
   Next
    UserForm1.Hide
  Unload Me
End Sub
Private Sub UserForm_Deactivate()
  Unload Me
End Sub
 
Laatst bewerkt:
hoi HSV
jou code kreeg ik niet aan het werk
ik denk dat ik het stukje "In userform1 module" niet helemaal begrepen heb
want als ik een module invoeg en jou code erin zet krijg ik een fout melding
wordt niet herkent.

de code die ikzelf in elkaar geflanst heb werkt wel alleen de textboxen waar ik een datum invul zoals "12-4" wordt na elke opslaan actie andersom weggeschreven "4-12"
en dan weer "12-4"

en dan nog ff dit..... Textbox 2 is in mijn geval automatisch de datum van vandaag
mischien moet ik daar Textbox 1 van maken ? als ik jou code gebruik?




Code:
Private Sub CommandButton1_Click()
Dim lRow As Long
Dim ws As Worksheet

Set ws = Worksheets("blad1")


Application.ScreenUpdating = False
lRow = ws.Cells(Rows.Count, 1) _
  .End(xlUp).Offset(1, 0).Row

With ws
  .Cells(lRow, 1).Value = Me.TextBox1.Value
  .Cells(lRow, 2).Value = Me.Textdate.Value
  .Cells(lRow, 3).Value = Me.TextBox4.Value
  .Cells(lRow, 4).Value = Me.TextBox5.Value
  .Cells(lRow, 5).Value = Me.TextBox6.Value
  .Cells(lRow, 6).Value = Me.TextBox7.Value
  .Cells(lRow, 7).Value = Me.TextBox8.Value
  .Cells(lRow, 8).Value = Me.TextBox9.Value
  .Cells(lRow, 9).Value = Me.TextBox10.Value
  .Cells(lRow, 10).Value = Me.TextBox11.Value
  .Cells(lRow, 11).Value = Me.TextBox12.Value
  .Cells(lRow, 12).Value = Me.TextBox13.Value
  .Cells(lRow, 13).Value = Me.TextBox14.Value
  .Cells(lRow, 14).Value = Me.TextBox15.Value
  .Cells(lRow, 15).Value = Me.TextBox16.Value
  .Cells(lRow, 16).Value = Me.TextBox17.Value
  .Cells(lRow, 17).Value = Me.TextBox18.Value
  .Cells(lRow, 18).Value = Me.TextBox19.Value
  .Cells(lRow, 19).Value = Me.TextBox20.Value
  .Cells(lRow, 20).Value = Me.TextBox21.Value
  .Cells(lRow, 21).Value = Me.TextBox22.Value
  .Cells(lRow, 22).Value = Me.TextBox23.Value
  .Cells(lRow, 23).Value = Me.TextBox24.Value
  .Cells(lRow, 24).Value = Me.TextBox25.Value
  .Cells(lRow, 25).Value = Me.TextBox26.Value
  

End With
Unload Me
Application.ScreenUpdating = True
frm1.Show 'deze is om te testen hoe het opgeslagen word zodat je meteen het resultaat ziet

End Sub

Private Sub UserForm_Initialize()
Dim lRow As Long
Dim ws As Worksheet

Set ws = Worksheets("blad1")


Application.ScreenUpdating = False
lRow = ws.Cells(Rows.Count, 1) _
  .End(xlUp).Offset(0, 0).Row

With ws
   Me.TextBox1.Value = .Cells(lRow, 1).Value
   Me.TextBox4.Value = .Cells(lRow, 3).Value
   Me.TextBox5.Value = .Cells(lRow, 4).Value
   Me.TextBox6.Value = .Cells(lRow, 5).Value
   Me.TextBox7.Value = .Cells(lRow, 6).Value
   Me.TextBox8.Value = .Cells(lRow, 7).Value
   Me.TextBox9.Value = .Cells(lRow, 8).Value
   Me.TextBox10.Value = .Cells(lRow, 9).Value
   Me.TextBox11.Value = .Cells(lRow, 10).Value
   Me.TextBox12.Value = .Cells(lRow, 11).Value
   Me.TextBox13.Value = .Cells(lRow, 12).Value
   Me.TextBox14.Value = .Cells(lRow, 13).Value
   Me.TextBox15.Value = .Cells(lRow, 14).Value
   Me.TextBox16.Value = .Cells(lRow, 15).Value
   Me.TextBox17.Value = .Cells(lRow, 16).Value
   Me.TextBox18.Value = .Cells(lRow, 17).Value
   Me.TextBox19.Value = .Cells(lRow, 18).Value
   Me.TextBox20.Value = .Cells(lRow, 19).Value
   Me.TextBox21.Value = .Cells(lRow, 20).Value
   Me.TextBox22.Value = .Cells(lRow, 21).Value
   Me.TextBox23.Value = .Cells(lRow, 22).Value
   Me.TextBox24.Value = .Cells(lRow, 23).Value
   Me.TextBox25.Value = .Cells(lRow, 24).Value
   Me.TextBox26.Value = .Cells(lRow, 25).Value
Me.Textdate.Value = Format(Int(Now()), "dd mm yy ")
End With
End Sub

groet

Pasan:thumb:
 
Laatst bewerkt:
hoi
het probleem dat ik had dat de textboxen waar ikzelf een datum in moet vullen
zoals "4-5" en die dan elke keer omgedraaid weggeschreven werd heb ik opgelost
zie onderstaande code! en vergelijk met vorige reactie
in textbox2 wordt automatisch een datum ingezet van vandaag en dat gaat goed
helaas is het me niet gelukt de code van HSV te gebruiken maar tot zover werkt alles prima

Code:
Private Sub CommandButton1_Click()
Dim lRow As Long
Dim ws As Worksheet

Set ws = Worksheets("blad1")


Application.ScreenUpdating = False
lRow = ws.Cells(Rows.Count, 1) _
  .End(xlUp).Offset(1, 0).Row

With ws
  .Cells(lRow, 1).Value = Me.TextBox1.Value
  .Cells(lRow, 2).Value = Me.Textdate.Value
  .Cells(lRow, 3).Value = Me.TextBox4.Value
  .Cells(lRow, 4).Value = Me.TextBox5.Value
  .Cells(lRow, 5).Value = Me.TextBox6.Value
  .Cells(lRow, 6).Value = Me.TextBox7.Value
  .Cells(lRow, 7).Value = Me.TextBox8
  .Cells(lRow, 8).Value = Me.TextBox9.Value
  .Cells(lRow, 9).Value = Me.TextBox10.Value
  .Cells(lRow, 10).Value = Me.TextBox11.Value
  .Cells(lRow, 11).Value = Me.TextBox12.Value
  .Cells(lRow, 12).Value = Me.TextBox13
  .Cells(lRow, 13).Value = Me.TextBox14.Value
  .Cells(lRow, 14).Value = Me.TextBox15.Value
  .Cells(lRow, 15).Value = Me.TextBox16.Value
  .Cells(lRow, 16).Value = Me.TextBox17.Value
  .Cells(lRow, 17).Value = Me.TextBox18
  .Cells(lRow, 18).Value = Me.TextBox19.Value
  .Cells(lRow, 19).Value = Me.TextBox20.Value
  .Cells(lRow, 20).Value = Me.TextBox21.Value
  .Cells(lRow, 21).Value = Me.TextBox22.Value
  .Cells(lRow, 22).Value = Me.TextBox23
  .Cells(lRow, 23).Value = Me.TextBox24.Value
  .Cells(lRow, 24).Value = Me.TextBox25.Value
  .Cells(lRow, 25).Value = Me.TextBox26.Value
  

End With
Unload Me
Application.ScreenUpdating = True

ActiveWorkbook.Save
End Sub

groet

Pasan:thumb:
 
Hierbij een bestandje gemaakt waar de code uitstekend werkt.

Bij jouw code mis ik textbox 2 of 3.
Vandaar dat de code niet loopt.

In dit voorbeeldje 9 textboxen.
Maak je meerdere textboxen in de Userform, hoef je in de code alleen het cijfer 9 te veranderen in het aantal textboxen.
 

Bijlagen

  • 9 textboxen.xls
    37 KB · Weergaven: 93
bedankt HSV voor je uitleg
nu is het mij ook duidelijk idd box 2 was missing.........
dat wist ik maar had die link niet gelegd.
dom dom

nogmaals bedankt en ik zet de vraag op opgelost

groet

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