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

VB variabele selectie op basis van lege regel

Status
Niet open voor verdere reacties.

Knollo

Gebruiker
Lid geworden
26 nov 2017
Berichten
31
Ik vraag mij af hoe ik een variabel bereik kan selecteren op basis van lege cellen eronder.

Voorbeeld:
Ik heb een simpele tabel met data, waarvan in kolom A de datum, en in de kolommen B t/m D data, corresponderend met die data.

Code:
       kolom A          kolom B          kolom C           kolom D
1    Datum              Klas H3A          Klas H3B         Klas V2A
2    1-1-2017             33                   31                24
3    2-1-2017             32                   36                24
4    3-1-2017             28                   32                21
5    4-1-2017             30                   31                20
6    5-1-2017             31                   37                22
7    6-1-2017
83  23-3-2017

In de regels B7 t/m D83 moet nog data worden ingevuld. In A2 t/m A83 staat alleen de datum.
Ik wil nu een selectie maken van de tabel, enkel waar al data is ingevuld, dat is in dit geval dus A2:D6
Maar als ik in de volgende regels ook data invul, moeten die ook bij de selectie horen. Kortom, als ik regel 7 en 8 ook heb ingevuld, dan zou de selectie A2:D8 moeten zijn. De selectie is dus niet statisch, maar dynamisch op basis van de regels die reeds ingevuld zijn.
Kortom, selecteren van een bereik tot aan de lege waarden eronder in B t/m D.

Als ik nu een macro opneem om A2:A6 te selecteren, ziet dat er zo uit:

Code:
Sub Kopie_volle_regels()
'
' Macro om regels met ingevulde data te selecteren en naar andere cel te kopiëren
'
'   Range("A2:D6").Select
    Selection.Copy
    Range("H1").Select
    ActiveSheet.Paste
End Sub

Alleen moet in deze code het regelnummer 6 (D6) variabel zijn, afhankelijk van de lege cellen eronder.

Hoe kan ik dat in deze code plaatsen?
 
Laatst bewerkt:
Code:
Range("A1:D" & Cells(Rows.Count, 4).End(xlUp).Row).Copy Range("H2")
 
Laatst bewerkt:
Code:
Range("a2", Cells(Rows.Count, 4).End(xlUp)).copy range("H1")
 
Wat is trouwens de betekenis van die "4" achter "Rows.Count"?
 
Het is mij reeds duidelijk. Dit betekent dat hij 4 kolommen naar rechts kijkt voor de laatste waarde (xlUp)?
 
De 4 staat voor kolom D.
Cells(1,4) = cells(rij,kolom) = range("D1")


Tel vanaf de laatste rij in kolom D naar boven, en geef het adres weer van de laatst ingevulde cel in die kolom.
We doen 'rows.count' opdat Excel 2007 en later 2^20= 1048576 rijen heeft, Excel 2003 en eerder 2^16 = 65536 rijen.
 
Hmm. Ik heb geprobeerd op dezelfde manier als in jullie codes een hele rij te selecteren, maar dat lukt niet. Wat doe ik hier fout?

Code:
Rows("Cells(Rows.Count, 17).End(xlUp).Row : Cells(Rows.Count, 17).End(xlUp).Row").Select
 
Ik heb het al ontdekt. Dit werkt wel:
Code:
Rows(Cells(Rows.Count, 17).End(xlUp).Row).Select
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan