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

ID nummer 1 zoeken gaat fout

Status
Niet open voor verdere reacties.

Andre175

Gebruiker
Lid geworden
2 feb 2018
Berichten
351
Hallo allen.....

Dacht ik alles werkend te hebben, sluipt er toch een vreemde fout naar voren.
Aangezien het bestand vele namen en telefoonnummers enz bevat hoop ik dat we er zonder bestand tot een oplossing kunnen komen.

zodra in combobox de waarde 1 wordt ingevuld, gaat het zoeken fout.
in de eerste kolom moet worden gezocht.
Echter alleen als er naar "1"gezocht moet worden, wordt de waarde 1 in kolom 2 gevonden.
(Van links naar rechts, boven naar onder gezien is dit de tweede "1" in de tabel)
alle overige waarden (2,3,4....enz) gaat wel goed.

Code:
Private Sub OpgK11_Change()
Set ws = Worksheets("Planning Evenementen")
     Set rng = [Tbl_Planning]
    [COLOR="#FF0000"]Set fnd = rng.Find(what:=OpgK11.Value, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlColumns)[/COLOR]
    If Not fnd Is Nothing Then
        Naam11.Value = ws.Cells(fnd.Row, 4).Value
        BedragAA.Value = ws.Cells(fnd.Row, 19).Value
    End If
End Sub




Bij een andere soortgelijke code gaat het ook fout bij de zoekwaarde "1".
Ook hier wordt ID 1 niet gevonden, maar vind de eerst volgende "1" in de tabel.
Hierdoor worden de gegevens in de verkeerde rij opgeslagen.
Ook hier ondervind ik geen probleem met andere zoekwaarden.

Code:
Private Sub CmdbChangeDeb_Click()
Set ws = Worksheets("Opgave_Kinderen")
    Set rng = [Tbl_Opg_Kind]
    [COLOR="#FF0000"]Set fnd = rng.Find(what:=OpgK0.Value, LookIn:=xlValues, LookAt:=xlWhole)[/COLOR]
    If LbKinderen.ListIndex = -1 Then
        MsgBox "Kies eerst een kind!", vbCritical, "Kind??"
        LbKinderen.SetFocus
        Exit Sub
    End If
    If Not fnd Is Nothing Then
        ws.Cells(fnd.Row, 2).Resize(, 10).Value = Array(OpgK1.Value, OpgK2.Value, OpgK3.Value, _
                                                        OpgK4.Value, OpgK5.Value, OpgK6.Value, OpgK7.Value, _
                                                        OpgK8.Value, OpgK9.Value, OpgK10.Value)
        ws.Cells(fnd.Row, 12).Resize(, 8).Value = Array(OpgK11.Value, OpgK12.Value, OpgK13.Value, OpgK14.Value, _
                                                        OpgK15.Value, OpgK16.Value, OpgK17.Value, OpgK18.Value)
        ws.Cells(fnd.Row, 21) = OpgK19.Value    'Heeft betaaald
        ws.Cells(fnd.Row, 23) = OpgK22.Value    'Bijzonderheden Kind
    End If
LbKinderen.ListIndex = -1
    For Each ctrl In Controls
        If TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox" Then ctrl.Value = ""
    Next ctrl
LbKinderen.List = [Tbl_Opg_Kind].Value
end sub

beide tabellen hebben kopteksten. Dus rij 1 zijn kopteksten
Vanaf rij 2 staan de waarden.
1e kolom is het ID nr
Het lijkt erop dat er niet gezocht wordt in cel A2..... daar waar ID nummer 1 staat. :(
 
Hou er rekening mee dat 1 als tekst iets anders is dan 1 als nummeriek.
Plaats dus een voorbeeld documentje.
 
kan de fout niet opgelost worden door alleen in de eerste kolom te zoeken?

Code:
Set fnd = rng.Find(what:=OpgK0.Value, LookIn:=xlValues, LookAt:=xlWhole)

deze code zoekt volgens mij in de gehele tabel.


Ben het met je eens Edmoor dat een voorbeeld documentje het makkelijker maakt voor de helpers, wil het wel proberen een "blanco"bestandje te maken, echter er staat zoveel in........
 
Laatst bewerkt:
gebruik listcolumns(1) om in de eerste kolom te zoeken.
 
Nee,

Code:
 Set rng = listobjects("Tbl_Planning").listcolumns(1)
 
SearchOrder:=xlColumns lijkt mij ook niet logisch als je in rijen zoekt.
 
Ik heb een ID nummer waar op gezocht wordt, deze staat in de eerste kolom van de tabel.
als het nummer gevonden wordt, heb ik het rijnummer nodig om de gegevens weg te schrijven.



met de code die HSV aangaf in #6 krijg ik de foutmelding Sub of Function niet gedefinieerd.
 
De naam van de tabel is wel Tbl_Planning?



Opmerking:

Daarom is een koprij ook nuttig.
Als je in range("a1:a10") zoekt, pakt het altijd de tweede als A1 en A2 de zoekwaarde is.

Bv. in A1 en A2 "hsv"
Code:
set c = range("a1:a10").find("hsv")
msgbox c.address

Is $A$2.

En dat komt doordat 'After' automatisch uitgaat van A1 in deze kwestie.

Plaats een bestand.
 
Weet ik VenA....
Het bestand is groot en vol gegevens....
zal dan echt een nieuw voorbeeld bestandje moeten maken.
dus hoopte het zo te kunnen oplossen.
zal eens zien wat ik kan doen.
 
Laatst bewerkt:
Je leest de berichten niet goed.

@edmoor heeft nog niet weer gereageerd.
 
oeps... excuses... idd niet goed gelezen

#11 aangepast
 
Laatst bewerkt:
Wat is de naam van je tabel?
 
Tbl_Planning

dat klopt wel.

ben ingekort bestandje aant maken, ff kijken wat er allemaal in moet komen.


bestand nu toegevoegd


Bekijk bijlage probleem met ID1.xlsb


op sheet Opgave_kinderen staat de knop "start hier"
Als bij Keuze 1 een 1 ingevuld wordt, moet ernaast "Sporten in de beweegtuin" komen te staan.
echter komt er "Muziek, met dans en instrumentjes" te staan
 
Laatst bewerkt:
Bestand bevat onleesbare inhoud hier.

Waar is de code gebleven trouwens?
 
Het spijt me, ik kan er niets mee.

Onleesbare inhoud → tabel en code verdwenen.
Excelversie verschil waarschijnlijk.
 
Helaas, ik laat het aan anderen over als die het bestand feilloos kunnen openen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan