[Excel] dynamische/variabele range aangeven (voor een macro)

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • tbenschop2
  • Registratie: Maart 2005
  • Laatst online: 10-02-2021
Momenteel probeer ik een macro te maken, die al mijn sheets toepasbaar moet zijn. Er kunnen 1 tot enkele honderden regels/rijen in een sheet staan.

Stel, ik heb er één met 50 regels die ik gebruik om de macro mee te maken. Kolom A en B zijn al gevuld, kolom C is leeg. Ik wil kolom A en B samenvoegen in kolom C. Dus in cel C1 voer ik in
=A1&B1
Mijn vraag: hoe zorg ik er nu voor dat alle regels hieronder nu ook de juiste waarde krijgen (A+B)?
Als ik dubbel op de rechter onderhoek van cel C1 klik, dan worden alle waarden netjes naar beneden gekopieerd. Echter in de macro wordt dit geregistreerd als 'tot en met rij 50'. Dat is niet goed, want in een andere sheet, met (bijvoorbeeld) 200 regels, moet hij C1 doorkopieren t/m rij 200.

Dus: hoe zorg ik voor een variabele range in mijn macro, die C1 altijd doorkopieert tot de laatste regel uit mijn sheet?

Beste antwoord (via tbenschop2 op 31-01-2020 13:50)


  • Ruben0s
  • Registratie: November 2010
  • Laatst online: 06:46
variabel = Range("A" & Rows.Count).End(xlUp).Row
Range("C1").Select
Selection.AutoFill Destination:=Range("C1:C" & variabel)

[ Voor 7% gewijzigd door Ruben0s op 27-01-2020 15:51 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 07:50

g0tanks

Moderator CSA
Er zijn meerdere manieren om de laatste regel nummer te bepalen. Zie bijvoorbeeld: https://www.excelcampus.com/vba/find-last-row-column-cell/

Je zult in je macro moeten inbouwen dat het voor elke sheet opnieuw wordt bepaald.

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Ruben0s
  • Registratie: November 2010
  • Laatst online: 06:46
variabel = Range("A" & Rows.Count).End(xlUp).Row
Range("C1").Select
Selection.AutoFill Destination:=Range("C1:C" & variabel)

[ Voor 7% gewijzigd door Ruben0s op 27-01-2020 15:51 ]


Acties:
  • 0 Henk 'm!

  • tbenschop2
  • Registratie: Maart 2005
  • Laatst online: 10-02-2021
Ik ga het proberen. Thanks!

Acties:
  • 0 Henk 'm!

  • tbenschop2
  • Registratie: Maart 2005
  • Laatst online: 10-02-2021
Het werkt! Bedankt!

Dit is mijn test macro, die in kolom B in elke rij een 1 plaatst waar er iets in kolom A staat.
--------------------------------
Sub Macro2()
'
' Macro2 Macro
'

'
ActiveCell.FormulaR1C1 = "1"
Range("B1").Select
Selection.AutoFill Destination:=Range("B1:B" & (Range("A" & Rows.Count).End(xlUp).Row))
Range("B1:B" & (Range("A" & Rows.Count).End(xlUp).Row)).Select
End Sub