Excel macro (VBA) om cellen te kopiëren met datum

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Telin
  • Registratie: Januari 2020
  • Laatst online: 13:44
Mijn vraag
Voor mijn werk ben ik met een Excel sheet bezig waarbij het handig zou zijn als ik het voor elkaar krijg om bepaalde cellen te kopiëren naar een ander werkblad aan de hand van de (huidige) datum.

Ik zal met screenshots duidelijker proberen te maken wat ik bedoel.

Hieronder blad "Data"
Je ziet dat er getallen staan in cellen U40:Y40

Afbeeldingslocatie: https://tweakers.net/i/9gAH3T5cHD9zZq5Pw4KWf1fQ_eM=/800x/filters:strip_icc():strip_exif()/f/image/q2CFFAVrEQ9XvQ54rfPu157E.jpg?f=fotoalbum_large

Deze getallen wil ik kopiëren naar blad "Overzicht"
Dan op de regel met de datum die gelijk is aan de datum die is aangegeven in cel H1 (dit is de cel met de forumule =VANDAAG() )

Afbeeldingslocatie: https://tweakers.net/i/ryQsxI-oNA4mj2KrzNqvFnO61Z0=/800x/filters:strip_icc():strip_exif()/f/image/vjzHKNtEdqMMXjtuKGcTHWfP.jpg?f=fotoalbum_large

Het zou er dus als volgt uit moeten komen te zien na het uitvoeren van de macro:

Afbeeldingslocatie: https://tweakers.net/i/iI5DqC8OnduqP7Eqrtf4KGCCJ6w=/800x/filters:strip_icc():strip_exif()/f/image/qOTB5JYZIjBJVjQ3Tama4Snc.jpg?f=fotoalbum_large

Belangrijk is de datumvergelijking. Als ik dus een week zou overslaan en daarna de macro draai zou de reeks getallen uit het blad "Data" op de regel ingevuld moeten worden met de datum 24-11-2023 in het blad "Overzicht"

Relevante software en hardware die ik gebruik
Microsoft Windows 11 Pro
Microsoft Office 365

Wat ik al gevonden of geprobeerd heb
Cellen kopiëren met een macro lukt mij wel. Maar ik krijg het nog niet goed voor elkaar om die datum "afhankelijkheid" er goed in te krijgen.

Wie kan mij helpen? :)

Beste antwoord (via Telin op 24-11-2023 08:58)


  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Twee opmerkingen vooraf:
1. De naam 'Overzicht' moet je niet voor de naam van een werkblad gebruiken. Omdat 'Revisieoverzicht' een door Excel gereserveerde naam is, wordt ook de naam 'Overzicht' in bv. Excel 2010 niet geaccepteerd. Ik zal hier de naam 'Overz' gebruiken.
2. Het gebruik van samengevoegde cellen (zoals je voor de datum in H1 in het blad 'Overz' hebt gedaan, is af te raden; het leidt nogal eens tot problemen, zeker als je met vba werkt. En voor 1 datum is het gebruik van 1 cel meer dan voldoende.
a. Oplossing zonder vba:
Typ in B1 van het blad 'Overz': =als($A2=$H$1;Data!U$40;"")
Kopieer die formule naar rechts t/m F2, en kopieer A2:F2 naar beneden tot zover als nodig.

b. Oplossing met vba:
Plaats in een module onderstaande macro en voer die uit.
Er is vanuit gegaan dat de bladen de namen 'Overz' en 'Data' hebben.
code:
1
2
3
4
5
6
7
8
9
10
11
Sub macro1()
Dim x As Integer
With Sheets("Overz")
.Columns("b:f").ClearContents
For x = 2 To Range("a" & .Rows.Count).End(xlUp).Row
If .Range("a" & x).Value = .Range("h1").Value Then
Sheets("Data").Range("u40:y40").Copy Destination:=.Range("b" & x & ":f" & x)
End If
Next x
End With
End Sub

Alle reacties

Pagina: 1