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

Zoeken en vinden

Status
Niet open voor verdere reacties.

patje8

Gebruiker
Lid geworden
31 jul 2005
Berichten
436
Via de macro ControleBestelBonnen open je een userform. In de bovenste 3 textboxen geef ik dan een getal in en deze moet hij zoeken in kolom E - F - G van de excelsheet 2006.
Dit lukt wel maar hij zou de gegeven van kolom B die bij deze nummers horen in de txtArtikel moet geven en dit lukt me niet.

Weet er iemand raad?
 

Bijlagen

Dag Patje

Iets zoals dit?

Code:
Dim Dag As Integer
Dim Trommel As Integer
Dim Rest As Integer
Dim strfound As Range

Private Sub CommandButton1_Click()
LotnummerIngeven
ArtikelZoeken
ArtikelAfdrukken
End Sub

Public Sub LotnummerIngeven()
Dag = Val(TextBox1.Text)
Trommel = Val(TextBox2.Text)
Rest = Val(TextBox3.Text)
End Sub

Public Sub ArtikelZoeken()
Dim dataRange As Range
Dim x As String
Set dataRange = ActiveSheet.Range("e1:e10000")
x = Dag
With dataRange
Set strfound = .Find(What:=x, LookIn:=xlFormulas, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not strfound Is Nothing Then
ArtikelAfdrukken
Else
MsgBox (x & " niet gevonden")
End If
End With
End Sub

Public Sub ArtikelAfdrukken()
txtArtikel = strfound.Offset(0, -3).Value
End Sub
 
Dit lukt perfect maar als er nu meerdere gevonden moeten worden, hoe doe je dat dan?
 
Patje,

je moet nog een paar kleine dingen veranderen, maar dit is al zo goed als de hele code:

Code:
Dim Dag As Integer, Rest As Integer, Trommel As Integer
Dim strfound As Range, Find_Range As Range

Private Sub CommandButton1_Click()
LotnummerIngeven
ArtikelZoeken
End Sub

Public Sub LotnummerIngeven()
Dag = Val(TextBox1.Text)
Trommel = Val(TextBox2.Text)
Rest = Val(TextBox3.Text)
End Sub

Public Sub ArtikelZoeken()
Dim dataRange As Range
Dim x As String
Set dataRange = ActiveSheet.Range("e1:e10000")
x = Dag

With dataRange
Set strfound = .Find(What:=x, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not strfound Is Nothing Then

Set Find_Range = strfound
            firstAddress = strfound.Address
            txtArtikel = ""
            Do
                txtArtikel = txtArtikel & vbCr & strfound.Offset(0, -3).Value
                Set strfound = .FindNext(strfound)
            Loop While Not strfound Is Nothing And strfound.Address <> firstAddress
Else
MsgBox (x & " niet gevonden")
End If
End With
End Sub
 
Kan je dit ook in een ListBox laten verschijnen in plaats van in een textBox ("txtArtikel")?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan