Toon posts:

[VBA] Zoekfunctie in Macro in excel, krijg steeds een meldin

Pagina: 1
Acties:
  • 2.665 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

Ik ben bezig met een prijzenprogramma te schrijven in excel.
Ik heb 2 bladen in excel met artikellen.
Een kleine lijst en een grotere lijst. Maar met mijn kleine lijst krijg ik geen ean code's bij. In de grotere lijst staan die er wel bij. Nu wil ik in excel een macro maken die een artikelnummer die in de kleine lijst staat gaat zoeken in de grotere lijst.
Nu zit ik met het probleem dat soms niet alles gevonden word. Nu heb ik dit al gemaakt:
Maar wanneer ik een waarde zoek die niet wordt gevonden krijg ik in mijn macro meteen een foutmelding met:
Object variabele With is niet ingesteld!
En deze melding krijg ik alleen wanneer excel de waarde niet kan vinden.
En ik wil dat wanneer hij hem niet kan vinden gewoon niets doet en gewoon verder gaat:S
HELP!!!


Sub EAN_Importeren()


For b = 2 To 3000

Sheets("Totale lijst Incl EAN").Select
Range("A" & b).Select
w = ActiveCell.FormulaR1C1

Sheets("Basprijslijst origineel").Select
Range("A1").Select

Q = Cells.Find(What:=w).Activate


Sheets("Totale lijst Incl EAN").Select
Range("G" & b).Select
ActiveCell.FormulaR1C1 = Q


Next b
Sheets("Totale lijst Incl EAN").Select
End Sub

  • Notna
  • Registratie: November 2002
  • Nu online

Notna

Moderator General Chat / Wonen & Mobiliteit

Where are you?®

Jezus wat een gedoe met een macro :+. Neem gewoon verticaal.zoeken en je bent klaar :P (ff Excel help kijken hoe je dat moet doen ;) )
VERT.ZOEKEN

Zoekt naar een waarde in de eerste kolom van een tabelmatrix en geeft als resultaat een waarde uit dezelfde rij in een andere kolom van de tabelmatrix.

De tekenreeks VERT in de functienaam VERT.ZOEKEN staat voor 'verticaal'. Gebruik VERT.ZOEKEN in plaats van HORIZ.ZOEKEN als de vergelijkingswaarden zich in een kolom links van de gegevens bevinden die u zoekt.

Syntaxis
VERT.ZOEKEN(zoekwaarde;tabelmatrix;kolomindex_getal;benaderen)

Zoekwaarde De waarde die u wilt zoeken in de eerste kolom van de tabelmatrix (matrix: wordt gebruikt om enkelvoudige formules te maken die meerdere resultaten geven of die worden toegepast op een groep argumenten die in rijen en kolommen zijn gerangschikt. Een matrixbereik heeft een gemeenschappelijke formule; een matrixconstante is een groep constanten die als argument wordt gebruikt.). Zoekwaarde kan een waarde of een verwijzing zijn. Als de zoekwaarde kleiner is dan de kleinste waarde in de eerste kolom van de tabelmatrix, geeft VERT.ZOEKEN de foutwaarde #N/B als resultaat.

Tabelmatrix Twee of meer kolommen met gegevens. Geef een verwijzing naar een bereik of een bereiknaam op. De waarden in de eerste kolom van de tabelmatrix zijn de waarden waarnaar wordt gezocht met de zoekwaarde. Dit kunnen tekstwaarden zijn, getallen of logische waarden. Bij tekstwaarden wordt geen onderscheid gemaakt tussen hoofdletters en kleine letters.

Kolomindex_getal Het nummer van de kolom in de tabelmatrix waaruit de gezochte waarde moet worden geretourneerd. Als kolomindex_getal 1 is, wordt de waarde uit de eerste kolom in de tabelmatrix geretourneerd; als kolomindex_getal 2 is uit de tweede kolom, enzovoort. Als kolomindex_getal:

Kleiner is dan 1, retourneert VERT.ZOEKEN de foutwaarde #WAARDE!.
Groter is dan het aantal kolommen in de tabelmatrix, retourneert VERT.ZOEKEN de foutwaarde #VERW!.
Benaderen Een logische waarde die aangeeft of VERT.ZOEKEN wel of niet moet zoeken naar exact overeenkomende waarden:

Als 'benaderen' WAAR is of is weggelaten, is het resultaat een exacte overeenkomst of een benadering van de opgegeven waarde. Wordt er geen exacte overeenkomst gevonden, dan wordt de volgende grootste waarde die kleiner is dan de zoekwaarde geretourneerd.
De waarden in de eerste kolom van de tabelmatrix moeten in oplopende sorteervolgorde worden geplaatst. Als dit niet het geval is, retourneert VERT.ZOEKEN mogelijk niet de juiste waarde. Klik in het menu Data op Sorteren en klik vervolgens op Oplopend om de waarden in oplopende volgorde te sorteren. Zie voor meer informatie Standaardsorteervolgorden.

Bij ONWAAR wordt door VERT.ZOEKEN uitsluitend een exacte overeenkomst geretourneerd. In dit geval hoeven de waarden in de eerste kolom van de tabelmatrix niet te worden gesorteerd. Als er in de eerste kolom van de tabelmatrix twee of meer waarden staan die overeenkomen met de zoekwaarde, wordt de eerste aangetroffen waarde gebruikt. Wordt er geen exacte overeenkomst gevonden, dan wordt de foutwaarde #N/B geretourneerd.

[ Voor 91% gewijzigd door Notna op 29-03-2007 10:50 ]

Xbox Live ID:Notna8310


Verwijderd

Topicstarter
Hee

Dat maakt dus weinig uit.

Want ik heb een lijst met +/-nes 3000 artikelen. En dat doe ik dus liever niet met de hand.

In principe werkt mijn macro gewoon goed. Maarrrrrr Als hij geen waarde krijgt gevonden dan stopt mijn macrotje en dan krijg ik een foutmelding.
Hij moet gewoon verder gaan. Voor mij appart zet hij bv alleen maar een 1 en mijn andere lijst. Dan ben ik al blij. Maar nu stop hij gewoon:P

Zucht....Help:P

  • Notna
  • Registratie: November 2002
  • Nu online

Notna

Moderator General Chat / Wonen & Mobiliteit

Where are you?®

Verwijderd schreef op donderdag 29 maart 2007 @ 10:50:
Hee

Dat maakt dus weinig uit.

Want ik heb een lijst met +/-nes 3000 artikelen. En dat doe ik dus liever niet met de hand.

In principe werkt mijn macro gewoon goed. Maarrrrrr Als hij geen waarde krijgt gevonden dan stopt mijn macrotje en dan krijg ik een foutmelding.
Hij moet gewoon verder gaan. Voor mij appart zet hij bv alleen maar een 1 en mijn andere lijst. Dan ben ik al blij. Maar nu stop hij gewoon:P

Zucht....Help:P
Hoezo met de hand? Het is 1 keer een forumle maken, die kopieren naar al je cellen en dan ben je klaar :S

Beetje moeiete mag je toch wel doen ;) :P

Xbox Live ID:Notna8310


Verwijderd

Topicstarter
Ik zal het eens ff gaan proberen...
HOOP HOOP HOOP:D:D tot zo:P

Verwijderd

Topicstarter
Tnx.. Dit werkt idd heeeeeel veel sneller ook:P

Bedankt!!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 01-12 12:05
code:
1
2
3
4
5
6
7
set mycell = cells.find(What:=w)
if mycell is nothing then
  Msgbox "Niet gevonden"
else
  mycell.activate
  etc
end if

Maar vert.zoeken is beter (1x typen, 2999 kopieren)
Pagina: 1