Een gebied instellen tot waar hij uitleest

Status
Niet open voor verdere reacties.

HammerJohn

Gebruiker
Lid geworden
27 apr 2016
Berichten
173
Graag zou ik willen weten hoe ik dit invul formulier kan laten zoeken in de A kolom tot een bepaalde rij
nu zoekt hij in a helemaal naar beneden
Maar ik heb eerst 10 regels met nummers daaronder 5 regels tekst en dan weer 10 nummers hij zou de
tekst regels niet weer moeten geven.

Code:
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then Exit Sub
With Sheets("outputform")
Set r = .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp)).Find(ComboBox1.Value)
TextBox1.Value = .Cells(r.Row, 3)
TextBox2.Value = .Cells(r.Row, 4)
TextBox3.Value = .Cells(r.Row, 5)
TextBox4.Value = .Cells(r.Row, 6)
End With

End Sub

Private Sub CommandButton1_Click()
If ComboBox1.ListIndex = -1 Then Exit Sub
With Sheets("outputform")
Set r = .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp)).Find(ComboBox1.Value)
.Cells(r.Row, 3) = TextBox1.Value
.Cells(r.Row, 4) = TextBox2.Value
.Cells(r.Row, 5) = TextBox3.Value
.Cells(r.Row, 6) = TextBox4.Value
End With

End Sub

Private Sub UserForm_Initialize()
With Sheets("outputform")
ComboBox1.List = .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp)).Value
End With
End Sub
 
Plaats eens een bestand, kunnen we zien waarom je in de tekstregels niet wilt zoeken.
 
Is zoiets de bedoeling?
Waarom heb je tweemaal deelnemer 40?
Code:
Private Sub UserForm_Initialize()
Dim zoekR As Range,zoekC As Range
    Set zoekR = Worksheets("outputform").Range("A1")
    Set zoekR = Range(zoekR, zoekR.End(xlDown))
For Each zoekC In zoekR
   If IsNumeric(zoekC.Value) Then ComboBox1.AddItem zoekC.Value
Next
End Sub
 
Of:
Code:
Private Sub UserForm_Initialize()
 ComboBox1.List = Evaluate("Row(1:" & Sheets("outputform").Cells(Rows.Count, 1).End(xlUp).Value & ")")
End Sub
 
Harry

Ik heb jouw code gebruikt die werkt tot en met nr 24 daarna krijg ik een fout melding

Met de andere code krijg ik wel alle nummers zichtbaar maar worden de listboxen niet gevuld met
de gegevens.


Ik doe denk ik iets fout maar dat is gewoonlijk altijd zo
 
dat de textboxen niet worden gevuld heeft in ieder geval niets met mijn code te maken.
Hierbij uw voorbeeld werkend
 

Bijlagen

De code van HSV werkt prima. Je gebruikt Find niet op de juiste manier. Vanaf rij 28 stap je over van waarden naar formules. 25 en 26 zullen dan niet gevonden worden en verder krijgt r de verkeerde waarde.

Gebruik
Code:
.Find(ComboBox1.Value, , xlValues, xlWhole)

=SUM(A27+1) = A27+1
 
Ik zag het net ook ik heb nu de nummers niet meer als formule staan,
en dan werkt het perfect....

met heel veel dank voor de snelle reacties.
 
Voor het vullen van de Textboxen
Code:
For j = 1 To 4
    Me("TextBox" & j) = .Cells(r.Row, j + 2)
  Next j

Voor het wegschrijven
Code:
.Cells(r.Row, 3).Resize(, 4) = Array(TextBox1.Value, TextBox2.Value, TextBox3.Value, TextBox4.Value)
 
Je hebt de find methode niet nodig.
Code:
Private Sub ComboBox1_Change()
With ComboBox1
 If .ListIndex > -1 Then
 For j = 1 To 4
  Me("textbox" & j) = Cells(.ListIndex + IIf(.ListIndex > 39, 6, 4), j + 2)
  Next j
 End If
End With
End Sub


Private Sub CommandButton1_Click()
With ComboBox1
 If .ListIndex > -1 Then
  Cells(.ListIndex + IIf(.ListIndex > 39, 6, 4), 3).Resize(, 4) = Array(TextBox1.Value, TextBox2.Value, TextBox3.Value, TextBox4.Value)
 End If
End With
End Sub


Private Sub UserForm_Initialize()
 ComboBox1.List = Evaluate("Row(1:" & Cells(Rows.Count, 1).End(xlUp).Value & ")")
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan