Wegschrijven Data met macro Excel

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • JessiePeters
  • Registratie: November 2022
  • Laatst online: 07-11-2022
Ik heb 3 sheets, data, een dag(1dag) berekening, en een samenvatting. In de dag berekening wil ik het totaal wegschrijven naar de samenvatting, maar dan voor alle dagen die in de samenavatting staat.
Dus in de samenvatting staan bijvoorbeeld 7 dagen, de berekening per 1 dag staat in de dag Berekening Sheet, uiteindelijk wil ik dat deze 7 dagen in de samenvatting komt.
Waarschijnlijk moet ik allerlei loopjes gebruiken, ik weet alleen niet hoe.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Patrick_6369
  • Registratie: April 2010
  • Laatst online: 08:58
Misschien niet het antwoord waar je op hoopt, want voor een kant-en-klaar script heb ik echt te weinig VBA-kennis. Bovendien hoop ik zo wat intelligent zelf nadenken te bevorderen O-)

Hoe zou je dat met de hand doen? Kijk eens wat er gebeurt als je gewoon een macro opneemt terwijl je die handelingen met de hand uitvoert?
Vervolgens ga je die macro de volgende keer weer gebruiken en zal het ergens mis gaan. Dan kun je (of wij gezamenlijk als de VBA-code hier post) vervolgens kijken waarom het mis gaat en hoe je de code moet aanpassen om wel tot het gewenste resultaat te komen.

Hier zou een handtekening kunnen staan.


Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Om een gericht antwoord te kunnen geven is meer informatie nodig:
Als ik het goed begrijp wil je vanuit het blad "Berekening" daggegevens kopiëren of verplaatsen (welk van de twee?) naar het blad "Samenvatting". Daarvoor moet bekend zijn wáár er in het blad "Berekening" gegevens staan (welk bereik, aantal kolommen per rij), en wáár die gegevens in het blad "Samenvatting precies naar toe moeten.

Acties:
  • 0 Henk 'm!

  • heuveltje
  • Registratie: Februari 2000
  • Laatst online: 15:06

heuveltje

KoelkastFilosoof

Kun je niet gewoon vooruit met een draai tabel ?
Klinkt alsof er niet heel veel spannends gebeurd.

Als je het toch wilt met een macro zul je wat vba moeten kennen.
maar als je eerst met de macro recorder een paar stappen opneemt en terugkijkt
En als je een paar super basic syntaxcen snapt :

Cells(doelregel, 9) = Bes_ID > Data in cellen zetten
PC_van_nr = Int(Cells(i, 3)) > data uit cellen halen
While i < 26281 ; i=i+1 ; Wend> While loop
For i = 2 To LastRowInt ; endif > For loop
If Bes_ID <> Cells(i, 1) Then blok_compleet = True ; Endif > If then blokken

Dan kun je echt heel snel best wel complexe dingen maken en er uit halen

[ Voor 50% gewijzigd door heuveltje op 08-11-2022 09:52 ]

Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Stap 1 is de beginselen van VBA leren. Het is gevaarlijk om andermans code over te nemen zonder te begrijpen. Dan ga je data verliezen.

Qua code: inspiratie voor het kopieren uit de bronsheet is inderdaad op te halen bij macro-opnemen. Al zou ik adviseren nooit de macro-opnemen code 1-op-2 over te nemen, dat is zowel slecht leesbar als vaak niet de beste manier om het te doen. Maar wel zie je wat er gebeurt en kan je de betreffende functies leren kennen.

Enige dat wat minder simpel is: zorgen dat de nieuwe data in een nieuwe rij komt. Dat kan je inderdaad doen met een FOR loop, of met ActiveSheet.Cells(.Rows.Count, "A").End(xlUp).Row

We denken graag mee, maar zoals je ziet: kant-en-klare code is niet per se te verwachten. Al was het omdat wij niet alle details en uitzonderingen in je sheet kennen.

[ Voor 11% gewijzigd door F_J_K op 08-11-2022 10:18 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)