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

Samenvoegen en optellen middels een macro

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

xmir

Gebruiker
Lid geworden
12 mrt 2011
Berichten
218
Hi excel goeroes,

In bijgevoegde voorbeeld heb ik in kolom G een naam en in H een bedrag.
Deze lijst wordt in mijn werkelijke bestand heel lang en nu zou ik graag met een druk op een knop (macro) de rijen waarbij de naam overeenkomt samenvoegen en de bedragen optellen zodat ik de kolommen steeds kan inkorten.
In het voorbeeld heb ik erbij gezet hoe de kolom er na de macro uit zou moeten zien.

Hopelijk kunnen jullie me helpen want dit gaat me boven mijn pet helaas.

Groet Mirjam
 

Bijlagen

Waarom een macro? Kan heel makkelijk met een draaitabel, zonder programmeren.
 
Bedoel je een draaitabel maken op een andere plek, die uitvoeren en dan de kolommen vervangen oid?
 
Hoi OctaFish,'

Ja dat dacht ik al en zo doe ik het nu ook wel maar nu moet ik steeds de draaitabel refreshen en hem dan weer over de kolommen in het 'bron tabblad' plakken. Nu kan ik van die handeling wel makkelijk een macro maken maar de draaitabel heeft niet altijd evenveel rijen dus dan gaat het ook fout. Ik dacht dat het misschien handiger zou kunnen.
 
Je kan een draaitabel óók op hetzelfde werkblad zetten; de draaitabel hóeft niet op een apart werkblad te staan. Het is wél veiliger om hem apart te houden, omdat je dan geen problemen krijgt met overschrijven van gegevens. Een groot voordeel van een draaitabel is, dat hij altijd de juiste gegevens laat zien (als je instelt dat de draaitabel automatisch ververst), wat niet gebeurt als je de totaaltabel met VBA maakt. Mij lijkt alleen dat laatste nadeel al voldoende reden om het niet op de door jou gevraagde wijze te doen :).
 
Je kan een draaitabel óók op hetzelfde werkblad zetten; de draaitabel hóeft niet op een apart werkblad te staan. Het is wél veiliger om hem apart te houden, omdat je dan geen problemen krijgt met overschrijven van gegevens. Een groot voordeel van een draaitabel is, dat hij altijd de juiste gegevens laat zien (als je instelt dat de draaitabel automatisch ververst), wat niet gebeurt als je de totaaltabel met VBA maakt. Mij lijkt alleen dat laatste nadeel al voldoende reden om het niet op de door jou gevraagde wijze te doen :).

Ok dank je voor de uitleg! Ik ga verder met de draaitabel!
 
Gescheiden pagina's en zonder macro en draaitabel

Dag Mirjam,
Zie bijgaand bestand.
Op Blad 1 is de invoer en op Blad 2 zijn de totalen per naam.
Bij wijziging in het invoerblad zijn de totalen per naam direct zichtbaar.
Volgens mij wil je dat ook zo.
Laat maar weten of je hiermee verder kan.
Groet, Wim
 

Bijlagen

Als je een draaitabel gebruikt kan je beter van jouw gegevensbereik een tabel maken. Met een macro is ook niet zo ingewikkeld. (moet je ook een handeling voor doen om te starten):)

Code:
Sub VenA()
  ar = Cells(2, 7).CurrentRegion
  Set d = CreateObject("Scripting.Dictionary")
  For j = 2 To UBound(ar)
    d(ar(j, 1)) = d(ar(j, 1)) + ar(j, 2)
  Next j
  Cells(13, 10).Resize(d.Count, 2) = Application.Transpose(Array(d.keys, d.items))
End Sub
 
Dag Mirjam,
Zie bijgaand bestand.
Op Blad 1 is de invoer en op Blad 2 zijn de totalen per naam.
Bij wijziging in het invoerblad zijn de totalen per naam direct zichtbaar.
Volgens mij wil je dat ook zo.
Laat maar weten of je hiermee verder kan.
Groet, Wim

Hoi Wim,

Niet helemaal want de korte (opgetelde) lijst moet de lange lijst vervangen op verschillende momenten dus ook in jou voorbeeld moet ik hem handmatig vervangen. Ik heb het nu opgelost middels een macro die steeds opnieuw de draaitabel aanmaakt en vervolgens de lange lijst vervangt dus met 1 klik heb ik nu wat ik wil. Probleem opgelost dus :)
 
Als je een draaitabel gebruikt kan je beter van jouw gegevensbereik een tabel maken. Met een macro is ook niet zo ingewikkeld. (moet je ook een handeling voor doen om te starten):)

Code:
Sub VenA()
  ar = Cells(2, 7).CurrentRegion
  Set d = CreateObject("Scripting.Dictionary")
  For j = 2 To UBound(ar)
    d(ar(j, 1)) = d(ar(j, 1)) + ar(j, 2)
  Next j
  Cells(13, 10).Resize(d.Count, 2) = Application.Transpose(Array(d.keys, d.items))
End Sub

Dank je maar ik heb het inmiddels opgelost :)
 
Dag Mirjam,
Dat had ik niet zo begrepen uit jouw vraag maar als je zelfs die ene klik wil uitsluiten en het helemaal automatisch wil doen dan kan dat ook (in mijn oplossing zonder draaitabel).
Macro automatisch iedere vooraf ingestelde tijd laten starten.
Groet, Wim
 
Dag Mirjam,
Dat had ik niet zo begrepen uit jouw vraag maar als je zelfs die ene klik wil uitsluiten en het helemaal automatisch wil doen dan kan dat ook (in mijn oplossing zonder draaitabel).
Macro automatisch iedere vooraf ingestelde tijd laten starten.
Groet, Wim

Oeh dat klinkt dan wel weer interessant (niet omdat het moet maar omdat het kan ;))
Kun je me dat laten zien?
 
Hey Mirjam,

Ikke nog eens... je zou het natuurlijk ook met een kort (lees: draaitabelloos) macrootje kunnen doen :

Oei die is wel heel leuk....daar ga ik eens mee stoeien! Dank je wel!!!
Kun je de code wat nader toelichten want ik zie niet wat ik aan moet passen om hem in mijn originele bestand werkend te krijgen?

Laat maar...ik kon hem gewoon 1 op 1 overnemen :)
Hij helpt wel de opmaak om zeep maar daar kom ik wel uit. Dank!
 
Laatst bewerkt:
Hoi,

Snap ik dat nu goed dat je je bericht nog twee keer hebt aangepast? (daar krijg ik geen melding van en zag het nu toevallig)
In elk geval fijn dat je hem tussendoor zelf in je eigen bestand aan de praat hebt gekregen!
Ik had hem zo basic (of zo begrijpelijk) mogelijk gemaakt met behulp van een lege kolom. In het échte leven hoeft dat natuurlijk niet: in versie 2 worden de totalen gemaakt los van je werkblad; dat zou meteen de opmaak ten goede kunnen komen.
Nog veel stoeipret !
 

Bijlagen

Hoi,

Snap ik dat nu goed dat je je bericht nog twee keer hebt aangepast? (daar krijg ik geen melding van en zag het nu toevallig)
In elk geval fijn dat je hem tussendoor zelf in je eigen bestand aan de praat hebt gekregen!
Ik had hem zo basic (of zo begrijpelijk) mogelijk gemaakt met behulp van een lege kolom. In het échte leven hoeft dat natuurlijk niet: in versie 2 worden de totalen gemaakt los van je werkblad; dat zou meteen de opmaak ten goede kunnen komen.
Nog veel stoeipret !

Haha ja sorry voor de spam ;). En dank voor versie 2, daar ga ik maar eens mee verder!
 
Ik dacht even dat versie 2 perfect ging maar helaas...deze haalt allerlei rijen weg van naastliggende kolommen :(
Kun je dat misschien nog verhelpen zodat hij alleen iets doet met die twee kolommen (F en I zijn leeg dus die kunnen wel gebruikt worden)? Ik stuur het voorbeeld van een geheel blad ff mee.
 

Bijlagen

Ha ja, bij een sterk vereenvoudigd voorbeeldbestand kan de hulp vaak niet anders dan beperkt blijven tot het op weg helpen.
In je uitgebreidere bijlage staat nu ook een totaalrij waardoor het al direct fout moest gaan. In versie 3 blijft de methode behouden uit versie 2, dus zonder gebruik te maken van het werkblad.
De totaalrij mag staan waar ze wil, enkel het gedeelte erboven wordt behandeld, en dit enkel voor de 2 relevante kolommen.
Vermoedelijk is het nu helemaal zoals je had gehoopt (?).
Voor een goed begrip : nog steeds gráág gedaan, hoor !
 

Bijlagen

Ha ja, bij een sterk vereenvoudigd voorbeeldbestand kan de hulp vaak niet anders dan beperkt blijven tot het op weg helpen.
In je uitgebreidere bijlage staat nu ook een totaalrij waardoor het al direct fout moest gaan. In versie 3 blijft de methode behouden uit versie 2, dus zonder gebruik te maken van het werkblad.
De totaalrij mag staan waar ze wil, enkel het gedeelte erboven wordt behandeld, en dit enkel voor de 2 relevante kolommen.
Vermoedelijk is het nu helemaal zoals je had gehoopt (?).
Voor een goed begrip : nog steeds gráág gedaan, hoor !

Wouw ja bijna helemaal (normaal lukt het inderdaad wel nadat ik met een eenvoudig voorbeeld op weg geholpen ben maar dit is net wat ingewikkelder vrees ik).
Het enige wat nog niet helemaal goed gaat is dat de keuzelijst uit G verdwijnt (je zag natuurlijk ook de lijst niet omdat dat tabblad er niet in zat) in een aantal rijen en dat in H de opmaak en eigenschap valuta verdwijnt. Is dat heel toevallig ook nog op te lossen? Ik ben nu ook al super blij hoor maar dan zou het helemaal perfect zijn ;).

In elk geval heeeeeel erg bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan