Zoeken op plaatje

Status
Niet open voor verdere reacties.

KlaasH

Gebruiker
Lid geworden
20 mei 2009
Berichten
10
ik heb een script gemaakt waarbij hij de plaatjes netjes van de map haalt en weergeeft, ook bij het bladeren met de next en de previous button.
Nu is mijn probleem dat wanneer ik de zoekfunctie gebruik hij de juiste gegevens opvraagt, maar niet het plaatje.
Kan iemand mij daarmee helpen?

Dit is mijn zoek script

HTML:
Private Sub CommandButton1_Click()
row_number = 0
Do
DoEvents
row_number = row_number + 1
item_in_review = Sheets("Artikel").Range("B" & row_number)
    If item_in_review = txtArtikelNaam.Text Then
    txtID.Text = Sheets("Artikel").Range("A" & row_number)
    txtBeschrijving.Text = Sheets("Artikel").Range("C" & row_number)
    txtPrijs.Text = Sheets("Artikel").Range("D" & row_number)
    End If
    
Loop Until item_in_review = ""

End Sub


zo haalt hij hem tevoorschrijn bij de previous button
HTML:
Private Sub cmdPreviousData_Click()
Dim NameFound As Range
fPath = ThisWorkbook.Path & "\"
currentrow = currentrow - 1
If currentrow > 1 Then
txtID.Text = Cells(currentrow, 1).Value
txtArtikelNaam.Text = Cells(currentrow, 2).Value
txtBeschrijving.Text = Cells(currentrow, 3).Value
txtPrijs.Text = Cells(currentrow, 4).Value

With Cells(currentrow, 2)
txtArtikelNaam.Text = Cells(currentrow, 2).Value
Set NameFound = .Find(txtArtikelNaam.Text)

With NameFound
On Error Resume Next
imgData.Picture = LoadPicture(fPath & "nopic.jpg")
imgData.Picture = LoadPicture(fPath & txtArtikelNaam.Text & ".jpg")
End With

End With

ElseIf currentrow = 1 Then
MsgBox "Dit is het eerste Artikel!"
currentrow = currentrow + 1
End If

End Sub

het plaatjesnaam bij settings is: imgData

Kan iemand mij hiermee helpen?
 
Klaas,

Ten eerste Currentrow is niet gedefinieerd, dus nul, dus werkt de gehele tweede code niet.
Ik vermoed dat je Activecell.row wil gebruiken.
Verder gebruik je .Find om een artikel te vinden dit vind normaal plaats binnen een range niet binnen
een enkele cel.
Verder zou ik de bestanden omdraaien dan wordt "nopic.jpg" geopend als TxtArtikelnaam.Text niet bestaat.
Hierbij mijn versie van de code
Code:
Private Sub cmdPreviousData_Click()
Dim NameFound As Range

fPath = ThisWorkbook.Path & "\"
ActiveCell.Row = ActiveCell.Row - 1
If ActiveCell.Row > 1 Then
    txtID.Text = Cells(currentrow, 1).Value
    txtArtikelNaam.Text = Cells(currentrow, 2).Value
    txtBeschrijving.Text = Cells(currentrow, 3).Value
    txtPrijs.Text = Cells(currentrow, 4).Value
 
    On Error Resume Next
    imgData.Picture = LoadPicture(fPath & txtArtikelNaam.Text & ".jpg")
    imgData.Picture = LoadPicture(fPath & "nopic.jpg")
 
ElseIf ActiveCell.Row = 1 Then
    MsgBox "Dit is het eerste Artikel!"
    ActiveCell.Row = ActiveCell.Row + 1
End If
 
End Sub

Veel Succes.
 
De zoekfunctie werkt! mijn probleem zit hem bij het ophalen van de plaatje bij het zoeken.
Dit is de code voor het zoeken.

Private Sub CommandButton1_Click()
row_number = 0
Do
DoEvents
row_number = row_number + 1
item_in_review = Sheets("Artikel").Range("B" & row_number)
If item_in_review = txtArtikelNaam.Text Then
txtID.Text = Sheets("Artikel").Range("A" & row_number)
txtBeschrijving.Text = Sheets("Artikel").Range("C" & row_number)
txtPrijs.Text = Sheets("Artikel").Range("D" & row_number)
End If

Loop Until item_in_review = ""

End Sub

Klaas,

Ten eerste Currentrow is niet gedefinieerd, dus nul, dus werkt de gehele tweede code niet.
Ik vermoed dat je Activecell.row wil gebruiken.
Verder gebruik je .Find om een artikel te vinden dit vind normaal plaats binnen een range niet binnen
een enkele cel.
Verder zou ik de bestanden omdraaien dan wordt "nopic.jpg" geopend als TxtArtikelnaam.Text niet bestaat.
Hierbij mijn versie van de code
Code:
Private Sub cmdPreviousData_Click()
Dim NameFound As Range

fPath = ThisWorkbook.Path & "\"
ActiveCell.Row = ActiveCell.Row - 1
If ActiveCell.Row > 1 Then
    txtID.Text = Cells(currentrow, 1).Value
    txtArtikelNaam.Text = Cells(currentrow, 2).Value
    txtBeschrijving.Text = Cells(currentrow, 3).Value
    txtPrijs.Text = Cells(currentrow, 4).Value
 
    On Error Resume Next
    imgData.Picture = LoadPicture(fPath & txtArtikelNaam.Text & ".jpg")
    imgData.Picture = LoadPicture(fPath & "nopic.jpg")
 
ElseIf ActiveCell.Row = 1 Then
    MsgBox "Dit is het eerste Artikel!"
    ActiveCell.Row = ActiveCell.Row + 1
End If
 
End Sub

Veel Succes.
 
Klaas,

Ik begrijp je vraag niet, als CmdPreviousData_click goed werkt zal het niet moeilijk zijn
deze ook bruikbaar te maken voor de andere knoppen.
Wat werkt er nu niet goed? Het ophalen van de plaatjes?
Ik stel voor dat je een voorbeeld bestand upload.

Veel Succes.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan