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

Textbox waarde gebruiken om te zoeken

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

Ik heb een userform met een textbox klantnummer.
nu wil ik die waarde gebruiken om te zoeken met de onderstaande code.

Wat zie ik nu over het hoofd (rode gedeelte)

Code:
Private Sub CommandButton1_Click()
''Workbooks.Open Filename:="P:\automatisering\Batch\901-Prijzen per klant.xls"
    
With Workbooks("Prijsafspraak ZNP brief.xls").Sheets("formulier")
  Dim c As Range
  
   For Each c In Workbooks("901-Prijzen per klant.xls").Sheets("Data1").Range("A2:A10000")
        If c = [COLOR="Red"]Me.Klantnummer.Value [/COLOR]Then
            c.Rows.EntireRow.Copy
            ['Formulier'!A65536].End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
        End If
    Next
End With
End Sub

Als ik enkel een waarde in vul, dan werkt de code perfect.

groet HWV
 
Is de naam van je textbox juist geschreven ? Typ in je code eens Me. in, dan zou je in de keuzelijst die dan opent je textbox moeten terugvinden
 
Gedaan

Rudi,

Die controle had ik inderdaad ook al gedaan.
Hij neem daar de juiste naam van over.

groet HWV

ps
Code:
Range("A1").Value = Klantnummer.Value
With Workbooks("Prijsafspraak ZNP brief.xls").Sheets("formulier")
  Dim c As Range
  
   For Each c In Workbooks("901-Prijzen per klant.xls").Sheets("Data1").Range("A2:A10000")
        If c = [A1] Then
            c.Rows.EntireRow.Copy
            ['Formulier'!A65536].End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
        End If
    Next
End With

Zo werkt hij wel naar behoren
 
Laatst bewerkt:
Als je in gewoon Nederlands beschrijft wat de macro doet, stuit je vanzelf op de vergissing.
Probeer Copy te vermijden. In VBA kun je waarden van overeenkomstige cellen/gebieden aan elkaar gelijk stellen.

Code:
Private Sub CommandButton1_Click()
  on error resume next
  Workbooks.Open "P:\automatisering\Batch\901-Prijzen per klant.xls"

  Workbooks("Prijsafspraak ZNP brief.xls").Sheets("formulier").cells(rows.count,1).End(xlUp).Offset(1).entirerow=Workbooks("901-Prijzen per klant.xls").Sheets("Data1").Range("A2:A10000").find(Klantnummer.Text,,xlvalues,xlWhole).entirerow.value
End Sub
 
maar één regel uit het bestand gehaald

Beste,

bedankt weer voor de ractie.

Is een ander insteek, maar hij kopieer nu enkel maar één regel ipv alle regels die voldoen aan deze criteria.

Groet HWV
 
Probeer het zo eens
Code:
If c.Value = Me.Klantnummer.Value
 
Code:
If c.Value = Me.Klantnummer.Value

Helaas Rudi, deze werkt ook niet.
Zoals ik al eerder aan gaf heb ik hem wel werkend gekregen met deze code:

Code:
[COLOR="Red"]Range("A1").Value = Klantnummer.Value[/COLOR]
With Workbooks("Prijsafspraak ZNP brief.xls").Sheets("formulier")
  Dim c As Range
  
   For Each c In Workbooks("901-Prijzen per klant.xls").Sheets("Data1").Range("A2:A10000")
        If c = [COLOR="red"][A1][/COLOR] Then
            c.Rows.EntireRow.Copy
            ['Formulier'!A65536].End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
        End If
    Next
End With

Het blijf wel vreemd dat er dan problemen zijn met de andere manier ?

Het werkt dus heeft geen haast, maar begrijp dat dit misschien weer een uitdaging is voor de excel meesters

Groet HWV
 
Waarom zou MS toch filterfunkties ingebouwd hebben in Excel ?
 
Beste,

Bedankt voor uw reactie.
Begrijpelijk uw vraag !

Dit is ook maar een deel van de code, uiteindelijk maak ik
met deze gegevens een prijsafspraken brief per debiteur.

Omdat de mensen die er mee werken niet erg handig zijn met Excel of word,
wil ik het hen zo makkelijk mogelijk maken.
Een cursus bij deze mensen is zeker op zijn plaats, maar daar moet dan wel even ruimte voor zijn.

Maar in iedergeval scherp opgemerkt.

Groet HWV
 
Hallo,

Of probeer het zo eens
Code:
If c.Value = Me.Klantnummer.txt
Met vr gr
Jack
 
Beste,

Sorry voor mij late reactie.
Ik heb het getest en krijg de volgende melding.

Code:
Compileerfout:
Kan de methode of het gegevenslid niet vinden

Groet HWV
 
Hé Red Evil,

Bedankt voor je reactie.

In kolom A staan debiteurennummers.

In het kort even wat ik doe met de code.

Ik haal uit ons systeem een excel sheet met prijsafspraken,
Doormiddel van deze textbox te gebruiken kan ik een debiteurennummer invoeren.
Als hij dan in kolom A de waarde uit de textbox vind kopieer hij deze naar de sheet formulier. Hier laat ik dan een macro overheen lopen die dan een prijsafspraken brief gaat samenstellen. Hij maak een kopie en slaat deze op onder het debiteurennummer bij ons op de server.

Groet HWV
 
Beste,

Dit is nu denk ik de tweede keer dat we elkaar kwijt raken.
Ik probeer het te verklaren :-( maar wat ik niet begrijp is dat
als ik de waarde vanuit een cel A1 ophaal naar de textbox dat hij dan wel goed draait de code.
Doe ik de waarde invullen rechtstreeks in de tekstbox dat het dan niet werkt.

Sorry, met je hint kom ik niet verder :-(, zo`n goeroe ben ik ook niet VBA

Groet HWV
 
Henk, stuur je bestand met je textbox eens naar mijn privé-mail dan kijk ik er zo wel eens naar.
 
Bedankt weer voor je reactie.
Naar aanleiding van jou opmerking heb ik geprobeerd wat te veranderen.
De hint zal zijn dat als je een textbox gebruikt je niet op nummers kan zoeken.
Dus gebruik gemaakt van een combobox, helaas zonder resultaat.

Hoe de code nu draait is het toch ook gewoon uit kolom A numeriek.
enkel via een omweg dat ik een verwijzing heb gemaakt naar een cel.

Dus ik ga het nog steeds niet begrijpen, ik hoop dat jij het wel doet.


Groet HWV
 
HWV,

Het is het proberen waard maar probeer deze eens:

Code:
If c = [COLOR="Red"]Val([/COLOR]Me.Klantnummer.Value[COLOR="Red"])[/COLOR] Then
 
Ok, we komen weer een stap verder.

Was me er niet van bewust dat we een onderscheid daar in moesten maken.

Betekend, ik de code moet aanpassen zodat hij tekst en numeriek kan lezen.
Maar weet weer niet hoe.

zal het iets moeten zijn met
Code:
xlvalues,xlwhole
groet HWV
 
HWV,

De 2 opties die jij aangeeft stellen onderdelen van een zoekfunctie voor.

LookIn:=xlValues
Betekent: zoek in de waardes van de cel

LookAt:=xlWhole
Betekent: zoekwaarde moet volledig overeenkomen met de waarde, formule of wat dan ook in de cel
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan