In cel "G1" staat geboortedatum. Deze inhoud wil ik graag verplaatsen naar de nieuwe kolom Geboortedatum zijnde kolom H. Omdat het format van de tabel nog wel eens wijzigt, wil ik het met een variabele oplossen.
. Verderop probeer ik met
naar kolom H te gaan en daar stokt de macro. Wat doe ik verkeerd?
Hieronder de hele macro:
Volgens mij wordt met de expressie
geconverteerd naar
.
Hoe kom ik in de volgende kolom?
geeft de foutmelding dat de typen niet overeen komen en dat snap ik wel, want Range("G1") is een string en '+1' stelt een waarde voor. Hoe los ik dit op?
Bij voorbaat dank voor het meedenken.
Code:
Dim strKolomGebDatum as string
Code:
Range(strKolomGebDatum + 1 &"1").select
Hieronder de hele macro:
Code:
Sub GebdatConverteren()
' GebdatConverteren Macro
Dim strKolomGebDatum As String
Dim intRijen As Integer
Dim intKolommen As Integer
'Rijen tellen
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
intRijen = Selection.Rows.Count
'Kolommen tellen
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
intKolommen = Selection.Columns.Count
'Info ter controle weergeven in venster Direct
Debug.Print intRijen, intKolommen
Application.EnableEvents = False
'Gegevens opvragen en lege kolom invoegen voor Gebdatum in format dd-mm-jjjj
strKolomGebDatum = InputBox("In welke kolom staat de geboortedatum", "Kolom geboortedatum")
Debug.Print strKolomGebDatum
Range(strKolomGebDatum & ":" & strKolomGebDatum).Select 'Dit gaat nog goed
Selection.Insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 'dit ook nog
Range(strKolomGebDatum & "1").Select 'hier hapert het!
Selection.Cut
Range(strKolomGebDatum, xlToRight & "1").Select
ActiveSheet.Paste
Range(KolomGebDatum & "2").Select
ActiveCell = DateSerial(Mid(KolomGebDatum + 1 & "2", 1, 4), Mid(KolomGebDatum + 1 & "2", 6, 2), Mid(KolomGebDatum + 1 & "2", 9, 2))
ActiveCell.Select
Range(KolomGebDatum & "2:" & KolomGebDatum & Chr(34) & intRijen & Chr(34)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Columns(KolomGebDatum & ":" & KolomGebDatum).Select
Application.CutCopyMode = False
Selection.Delete shift:=xlToLeft
'Call DatumLidSindsConverteren
End Sub
Volgens mij wordt met de expressie
Code:
range(strKolomGebDatum & "1").Select
Code:
Range("G1").Select
Hoe kom ik in de volgende kolom?
Code:
strKolomGebDatum + 1
Bij voorbaat dank voor het meedenken.
Laatst bewerkt: