Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VBA] Filter en import in Excel

Pagina: 1
Acties:

  • Merijn.
  • Registratie: November 2010
  • Laatst online: 20:04
Ik ook met mijn grote mond... |:(

[Waarschuwing: lang verhaal!]
Een vriend heeft op zijn werk een database waaruit ze mailinglijsten genereren aan klanten. Ze doen dit nu nog door 1 voor 1 een filter op de database toe te passen en de uitkomst te exporteren naar Excel. Veel handmatig werk en ik zei dat dat veel makkelijker moest kunnen met behulp van VBA. Logische reactie: "Oh, zou je dat voor mij willen maken?" en natuurlijk heb ik toen ja gezegd... 7(8)7

Nu heb ik al wel redelijk goed in me hoofd en op papier uitgedacht hoe het moet werken, maar het omzetten naar een goed functionerend geheel is lastiger. Hopelijk zijn hier mensen die mij een zetje in de goede richting kunnen geven. Dan moet ik er wel bij zeggen dat ik wel eens wat dingen in VBA heb gedaan, maar dat was vooral het aanpassen van bestaande code. Heb een (introductie) cursus gehad, maar ben dus geen pro...

Zoektochten op internet hebben me nog niet veel nuttige informatie opgeleverd. De voorbeelden en tutorials die ik tegen kwam waren steeds net weer op iets anders gericht.

-----------------
Mijn idee is als volgt: een dump van de database maken in Excel. (rechtstreekse koppeling met de database kan niet) En vervolgens op dat Excel bestand de diverse filters toepassen, om zo (in een nieuw bestand) een kant en klare verzendlijst te genereren.
De filters die moeten worden toegepast zijn:
- Doelgroep (meerdere opties mogelijk, in dump in zelfde cel maar gescheiden door spatie) [F1]
- Soort mailing (3 opties, slechts 1 keuze mogelijk) [F2]
- Uitsluiting van doelgroep (zie doelgroep) [F3]
- Wel/niet op mailing op naam [F4]

Volgens mij zou ik dan in VBA de volgende stappen moeten gaan programmeren:
[F1] Bepalen aan welke doelgroepen de adressen moeten voldoen, dmv een venster met keuzelijst. De keuzelijst zou moeten worden gegenereerd op basis van de waarden in kolom "x" van de dump, waarbij dubbele waarden in de lijst moeten worden voorkomen. Moeilijkheid hierbij is dat in één record (of cel) meerdere doelgroepen kunnen zijn genoemd, gescheiden door een spatie.
Zelf dacht ik aan een venster met links een kolom/lijst met alle mogelijke waardes, en dan een knop om doelgroepen naar een tweede kolom (rechts) te verplaatsen als zijnde de 'selectie'.

[F2] drie opties, met 'radiobuttons' de keuze maken en toepassen op kolom "z" van de selectie.

[F3] Zelfde selectie als bij [F1], maar nu gebruiken om records uit te sluiten met (1 van) die waarde(n) in kolom "y".

[F4] net als [F2] met radiobuttons twee keuzemogelijkheden geven en toepassen op kolom "w".

De waarden die met de filters zijn ingegeven zouden dan moeten worden losgelaten op de dump om zo een nieuwe lijst te genereren.

---------------------------------

Iemand tips hoe ik dit aan moet pakken, of mij aan een goed voorbeeld kan helpen?

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 00:40

Reptile209

- gers -

(jarig!)
Je kunt volgens mij met de autofilter van Excel alles realiseren wat je nodig hebt. De clue zit hem dan in het gebruik van 'contains' en 'does not contain' voor de (stom uitgevoerde) doelgroepenlijst. Knikker er een formpje voor, wat VBA voor validatie van de input en het instellen van het autofilter, klaar.

Zo scherp als een voetbal!


  • Merijn.
  • Registratie: November 2010
  • Laatst online: 20:04
Ja en nee... Als er slechts 1 of 2 doelgroepen per lijst geselecteerd zou worden, dan klopt dit. Echter, moet het ook mogelijk zijn om er meer tegelijk te selecteren. Uitgaande van Excel 2003, kun je bij de AutoFilter optie volgens mij max twee voorwaarden (per kolom) invullen?

  • LiquidT_NL
  • Registratie: September 2003
  • Laatst online: 13-05-2021
Merijn. schreef op maandag 10 september 2012 @ 15:47:
Ja en nee... Als er slechts 1 of 2 doelgroepen per lijst geselecteerd zou worden, dan klopt dit. Echter, moet het ook mogelijk zijn om er meer tegelijk te selecteren. Uitgaande van Excel 2003, kun je bij de AutoFilter optie volgens mij max twee voorwaarden (per kolom) invullen?
Jammer, ik kan het even niet checken gezien ik geen 2003 meer heb. Anders kan je toch gewoon itereren door de filters per doelgroep (via VBA) en dat exporteren naar een uitvoer (d.m.v. VBA)?

Explorers in the further regions of experience...demons to some, angels to others.


  • Witte
  • Registratie: Februari 2000
  • Laatst online: 15-10 13:46
Ik neem aan dat ik 'doelgroep' kan zien als 'categorie'?
Dan is het
A: een slechte database als dit in één veld wordt opgeslagen, en niet in een koppeltabel,
of
B: in de datadump wordt dit samengevoegd tot één veld om het in Excel leesbaar te krijgen.

Ik denk dat je in je datadump de juiste filters moet toepassen, dus vóórdat het categorieveld wordt samengesteld.
In alle databasepakketten kan je selectiequeries maken, in SQL heten deze dingen 'views'.
Definieer er een stuk of wat, en je kan steeds een andere databron raadplegen.

Houdoe