Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Dubbele gegevens filteren en optellen  (gelezen 24339 keer)

0 leden en 1 gast bekijken dit topic.

Offline danielle

  • Lid
  • *
  • Berichten: 28
  • Oplossing.be
Re: Dubbele gegevens filteren en optellen
« Reactie #15 Gepost op: 19 april 2007, 14:31:33 »
Oh oke dus ik moet de code er even bij plakken  :). De code is:

Sub CommandButton2_Click()
Dim iLaatsteRegel As Integer

    Application.ScreenUpdating = False
   
    'verwijder de oude subtotaaltabel
    Range("L:U").Delete
   
    'filter de basistabel op unieke records, copieer en plak in kolom I:O
    Columns("G:I").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Columns( _
        "R:T"), Unique:=True
    'maak de header 'totalen' aan voor kolom P
    Range("U1").FormulaR1C1 = "TOTAAL VERBRUIK"
    Range("V1").FormulaR1C1 = "TOTALE KOSTEN"
    'en ook 'vet'...
    Range("U1").Characters.Font.FontStyle = "Bold"
    'maak de kolommen passend aan de inhoud
    Columns("L:V").EntireColumn.AutoFit
    'plaats de formule sumif in cel P2
    Range("U2").FormulaR1C1 = "=SUMIF(C[-13],RC[-2],C[-15])"
    Range("V2").FormulaR1C1 = "=SUMIF(C[-14],RC[-3],C[-17])"
    'bepaal de laatste regel van de filtertabel
    iLaatsteRegel = Range("T2").End(xlDown).Row
    'copieer en plak de formule in de rest van kolom P
    Range("U2").AutoFill Destination:=Range("U2:U" & iLaatsteRegel)
    Range("U1").Select
    Range("V2").AutoFill Destination:=Range("V2:V" & iLaatsteRegel)
    Range("V1").Select

    Application.ScreenUpdating = True

End Sub


Als ik deze macro uit ga voeren filtert die het verbruik er prima uit, maar de totaalkosten niet. Hij filtert namelijk de dubbele artikelnummers er uit en baseert daar de totale kosten op. Dit doet die met de formule:

Range("V2").FormulaR1C1 = "=SUMIF(C[-14],RC[-3],C[-17])"

Maar hij moet eigenlijk ook kijken naar de aantallen. Want als aantal 2 is moet ie dat maal 2 doen. En dat gebeurd nu niet.

Als je het voorbeeldje bekijkt dan kun je zien dat die de aantallen niet pakt.

Hopelijk is het nu een beetje duidelijk  ???

Groetjes,

Danielle


Standaard emailprogramma: Via Browser (Hotmail, Gmail,...)
Standaard Operating System: Windows XP SP1
Standaard Browser:Internet Explorer 6

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Dubbele gegevens filteren en optellen
« Reactie #16 Gepost op: 19 april 2007, 23:11:14 »
Danielle, waarschijnlijk vanmiddag ff niet zo goed gekeken. ??? Toen ik vanavond opnieuw je bestandje binnenhaalde (thuis) ontdekte ik wél je code.

Maar... weer terugkerend naar je vraag. Het klopt dat de formule =SUMIF(H:H;S2;E:E) je niet het gewenste resultaat geeft. De functie SUMIF (som.als) doet namelijk precies dat wat tie zegt: 'het optellen van waarden die aan een bepaalde conditie voldoen'. En jij wilt graag het product berekenen. Dit zou je kunnen oplossen door ook de kolom 'Prijs (incl)' mee over te hevelen naar je gefilterde tabel. En vervolgens dat getal te vermenigvuldigen met het totaal van het aantal stuks (die je hebt gevonden via de formule Sumif) van het artikel.

Ik heb het nu voor je opgelost door de formule in kolom V te vervangen voor (engels) =(OFFSET($E$1;MATCH(T2;I:I;0)-1;0))*U2(of nederlands)=(VERSCHUIVING($E$1;VERGELIJKEN(T2;I:I;0)-1;0))*U2Wat doet deze formule....
=verschuiving(vanaf welke cel; hoeveel rijen naar boven of onder; hoeveel kolommen naar links of rechts)
De 'startcel' hier is dus E1. Van hieruit moet er bewogen worden.
Het aantal rijen naar beneden krijgen we door de functie Vergelijken. Hier wordt gezocht in de kolom I naar de artikelomschrijving uit kolom T (met schakeloptie nul = de preciese waarde moet gevonden worden).
En als laatste moeten er nul kolommen opzij gedaan worden (je zoekt immers het bedrag dat bij het artikel hoort).
Deze gevonden waarde wordt dan daarna nog vermenigvuldigd met het resultaat van de formule uit kolom U.
Het resultaat van dit geheel kan je bekijken in de bijlage.

Ik heb trouwens ook de code weer in een algemene module geplaats ipv de sheetmodule. En de knoppen op je sheet vervangen voor knoppen uit het 'Formulier-menu' ipv uit de 'Control toolbox' (vind ik zelf prettiger werken). ;D

Kan je nu weer een stapje verder?

Groet, Leo
______________________________

Groet, Leo

Offline danielle

  • Lid
  • *
  • Berichten: 28
  • Oplossing.be
Re: Dubbele gegevens filteren en optellen
« Reactie #17 Gepost op: 20 april 2007, 09:31:42 »
Hallo Leo,

Heel erg bedankt voor je hulp. Ik snap nu hoe ik dit moet invullen in de macro. Beetje bij beetje leer ik steeds iets meer van de macro’s. Toch blijft het best lastig. Hoe maak jij eigenlijk van die knoppen uit het formulier-menu? Dat is inderdaad veel handiger werken hoe jij dat doet, want anders zit ik steeds met die command 1, etc en al die sheetscodes.

Ojah nog bedankt voor die macro voor het verwijderen van de gegevens  8). Top!

Groetjes,

Danielle
Standaard emailprogramma: Via Browser (Hotmail, Gmail,...)
Standaard Operating System: Windows XP SP1
Standaard Browser:Internet Explorer 6

Offline danielle

  • Lid
  • *
  • Berichten: 28
  • Oplossing.be
Re: Dubbele gegevens filteren en optellen
« Reactie #18 Gepost op: 20 april 2007, 11:37:45 »
Hallo Leo,

Ik weet al hoe het moet. Dat werkt inderdaad veel makkelijker.

Groetjes,

Danielle  :)
Standaard emailprogramma: Via Browser (Hotmail, Gmail,...)
Standaard Operating System: Windows XP SP1
Standaard Browser:Internet Explorer 6

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Dubbele gegevens filteren en optellen
« Reactie #19 Gepost op: 20 april 2007, 21:34:06 »
Danielle, Leuk hè, spelen met VBA (vind ik tenminste wel). Dat is de beste manier (naast dikke boeken raadplegen) om het te leren. Dus top dat je dit zelf ontdekt hebt. ;)

Tot een volgende vraag (?) ;D

Groet, Leo
______________________________

Groet, Leo

Offline danielle

  • Lid
  • *
  • Berichten: 28
  • Oplossing.be
Re: Dubbele gegevens filteren en optellen
« Reactie #20 Gepost op: 23 april 2007, 09:26:52 »
Hallo Leo,

Ja een beetje uitvinden is wel mooi werk. Toch wel erg makkelijk als je een beetje kennis hebt van VBA.

Haha ja een volgende vraag zal er zeker wel komen.

Groetjes,

Danielle
Standaard emailprogramma: Via Browser (Hotmail, Gmail,...)
Standaard Operating System: Windows XP SP1
Standaard Browser:Internet Explorer 6

Offline danielle

  • Lid
  • *
  • Berichten: 28
  • Oplossing.be
Re: Dubbele gegevens filteren en optellen
« Reactie #21 Gepost op: 23 april 2007, 15:33:19 »
Hallo Leo,

Hier ben ik weer haha  :). Ik heb nog even een vraagje. Als ik mijn lijsten heb gefilterd blijven er nog wel wat “dubbele omschrijvingen staan. Dit komt omdat soms de omschrijvingen verschillen. Deze verschillen komen voor als de mensen artikelen bestellen maar deze niet uit het systeem halen. Deze gegevens wil ik graag uit filteren met de macro voor extra controle dubbele artikelnummers. Ik zie dat die de aantallen van het artikelnummer er wel goed bij zet.

Weet jij of hij filteren kan puur op artikelnr. Maar dat die de aantallen wel goed berekend. Als het niet wil heb ik ook wel een macro dat die dan eerst filtert zodat die dat nu doet maar dat die dan later de dubbele artikelnummers verwijderd (maar die loopt ook niet helemaal haha).

Ik heb er even een klein voorbeeldje bijgedaan. Kijk maar eens bij omschrijving PROEFGEGEVEN. Dan kun je zien wat ik bedoel.

Alvast bedankt.

Groetjes,

Danielle
Standaard emailprogramma: Via Browser (Hotmail, Gmail,...)
Standaard Operating System: Windows XP SP1
Standaard Browser:Internet Explorer 6

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Dubbele gegevens filteren en optellen
« Reactie #22 Gepost op: 24 april 2007, 10:01:34 »
Danielle, ik hoop dat ik in de middagpauze ff tijd heb om er naar te kijken... (nogal druk vandaag :'(). Anders geef ik je vanavond antwoord.

Groet, Leo
______________________________

Groet, Leo

Offline danielle

  • Lid
  • *
  • Berichten: 28
  • Oplossing.be
Re: Dubbele gegevens filteren en optellen
« Reactie #23 Gepost op: 24 april 2007, 10:07:18 »
Leo,

Oh doe maar rustig aan hoor. Ben al lang blij dat je mij kan helpen :)

Groetjes,

Danielle
Standaard emailprogramma: Via Browser (Hotmail, Gmail,...)
Standaard Operating System: Windows XP SP1
Standaard Browser:Internet Explorer 6

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Dubbele gegevens filteren en optellen
« Reactie #24 Gepost op: 26 april 2007, 13:23:42 »
Danielle, volgens mij kan je een paar dingen doen.
1) je klanten opvoeden zodat ze altijd de juiste omschrijving gebruiken (lijkt me een utopie! ;D)
2) je 'te filteren tabel' eerst dmv een Lookup (Zoeken) de juiste omschrijvingen bij de artikelnummers te plaatsen (dit haal je dan uit een goede artikeltabel). Daarna kan je je knop gebruiken om te filteren.
3) de kolom 'omschrijving' verplaatsen naar de laatste kolom. Vervolgens filteren op de kolommen 'artikelnummer' en 'eenheid' en dan in je gefilterde tabel de omschrijvingen er bij zoeken dmv een Lookup (Zoeken). (zie ook bijlage)

De laatste optie heeft mijn voorkeur omdat je dan minder zoekacties moet uitvoeren.

De filterfunctie van Excel is zo krachtig dat er inderdaad voor ieder record gekeken wordt of die uniek is (te beginnen bij de opgegeven sleutel (in het voorbeeld: artikelnummer)). Dus iets dat heel mooi is, kan je dus ook de das omdoen... ;)

Kan je hier iets mee?

Groet, Leo
______________________________

Groet, Leo

Offline danielle

  • Lid
  • *
  • Berichten: 28
  • Oplossing.be
Re: Dubbele gegevens filteren en optellen
« Reactie #25 Gepost op: 26 april 2007, 15:14:47 »
Hallo Leo,

Ja dat is een goede oplossing, bedankt. Ik heb nu de Look up functie gebruikt. Alleen ik heb de velden wel wat verschoven anders kreeg ik het niet voor elkaar. Maar nu heb ik zelf even een macro gemaakt, maar die loopt niet echt goed. De macro moet dan automatisch de omchrijvingen erbij zetten. Bij mij zet die er wel wat bij maar niet de omschrijvingen haha  ???.

Bij deze even het voorbeeldje.

Groetjes,

Danielle
Standaard emailprogramma: Via Browser (Hotmail, Gmail,...)
Standaard Operating System: Windows XP SP1
Standaard Browser:Internet Explorer 6

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Dubbele gegevens filteren en optellen
« Reactie #26 Gepost op: 26 april 2007, 22:27:28 »
Danielle, Waar is de tabel met de correcte omschrijvingen? Je kan natuurlijk niet gaan zoeken in je 'te filteren tabel'. Daar staan nameljik eventuele foute omschrijvingen in!
Dan ff over je macro...    Range("O2").Select
    ActiveSheet.Paste
    Selection.AutoFill Destination:=Range("O2:O12")
...mist iets belangrijks! Namelijk een regel waarin je iets gaat copieren. In regel 1 selecteer je een cel en in regel 2 ga je gelijk al plakken...  ;) Zoals het codeblokje nu staat, genereer je inderdaad een fout en klapt je code.

Ik kom morgen verder op je sheet terug (er komt nu een film die ik graag wil zien 8))

Groet, Leo
______________________________

Groet, Leo

Offline danielle

  • Lid
  • *
  • Berichten: 28
  • Oplossing.be
Re: Dubbele gegevens filteren en optellen
« Reactie #27 Gepost op: 27 april 2007, 18:29:00 »
Hallo Leo,

Ja ik dacht dat ik gewooon de macro kon opnemen met de recorder. Maar dat pakte toch even anders uit.

Groetjes,

Danielle
Standaard emailprogramma: Via Browser (Hotmail, Gmail,...)
Standaard Operating System: Windows XP SP1
Standaard Browser:Internet Explorer 6

 


www.combell.com