VBA/Excel datum met 7 verhogen

Status
Niet open voor verdere reacties.

LinkinTED

Gebruiker
Lid geworden
12 feb 2010
Berichten
5
Hallo,

Ik ben een noob op het gebied van VBA, maar vind het wel interessant en ben zodoende bezig om het te leren.

Situatie is als volgt:
dmv een sneltoets wil ik dat de huidige sheet gekopieerd wordt. Dat lukt
Dan moeten twee datums verhoogt worden met één week, daar gaat het mis.

Heb deze VB code:
Code:
Sub Volgendeweek()
'
' Volgendeweek Macro
'
' Sneltoets: CTRL+SHIFT+N
'
    Sheets("1").Select
    Sheets("1").Copy After:=Sheets(1)
    Sheets("1 (2)").Select
    
    Dim denaam As Integer
    denaam = Application.Sheets.Count
    Application.Sheets(denaam).Name = denaam
    
    
    Dim dattie As Date
    Range("C7:D7").Select
    dattie = CDate(ActiveCell.Value)
    dattie = dattie.DateAdd("d", 7, dattie)   <<<<<< HIER GAAT HET FOUT
    ActiveCell.FormulaR1C1 = dattie
    
    Range("C7:D7").Select
    Dim datEnd As Date
    datEnd = CDate(ActiveCell.Value)
    datEnd = datEnd.DateAdd("d", 7, dattie)
    ActiveCell.FormulaR1C1 = datEnd
    
    Range("O7:P7").Select
    Dim week As Integer
    week = ActiveCell.Value
    week = week + 1
    ActiveCell.FormulaR1C1 = week

End Sub
In de code geef ik al aan waar het fout gaat, ik krijg nl de melding "Compileerfout: ongeldige kwalifiactie"

Wie schiet te hulp op deze zonnige vrijdag middag?


Gr LinkinTED
 
Als ik het zo bekijk moet de syntax zo zijn:

dattie = DateAdd("d", 7, dattie)

en 5 regels verder:
datEnd = DateAdd("d", 7, dattie)

Maar zo kan het veel korter:
Sheets(1).Range("C7").Value = DateAdd("d", 7, Sheets(1).Range("C7").Value)
Sheets(2).Range("C7").Value = DateAdd("d", 7, Sheets(1).Range("C7").Value)
Sheets(1).Range("O7").Value = Sheets(1).Range("O7").Value + 1

Groet, Ed
 
Laatst bewerkt:
Code:
Sub Volgendeweek()
  Sheets(1).Copy , Sheets(1)
  With Sheets(Sheets.Count)
    .Name = "Pagina " & sheets.count
    .[C7:D7]=dateadd("d",7,[C7])
    .[O7:P7]=dateadd("w",1,[O7])
  End With
End Sub
 
Bedankt, met wat kleine aanpassingen heb ik het werkend gekregen:
Code:
Sub Volgendeweek()
'
' Volgendeweek Macro
'
' Sneltoets: CTRL+SHIFT+N
'
  Sheets(Sheets.Count).Copy , After:=Sheets(Sheets.Count)
  With Sheets(Sheets.Count)
    .Name = Sheets.Count
    .[C7] = DateAdd("d", 7, [C7])
    .[F7] = DateAdd("d", 7, [F7])
    .[O7] = [O7] + 1
  End With
End Sub
 
of
Code:
Sub Volgendeweek()
  ActiveSheet.Copy , Sheets(Sheets.Count)
  With Sheets(Sheets.Count)
    .Name = Sheets.Count
    .Range("C7,F7") = .[C7]+7
    .[O7] = .[O7] + 1
  End With
End Sub
 
Laatst bewerkt:
Dat gaat niet op.

De waarde in C7 en F7 zijn beiden verschillende (datum van maandag, en van vrijdag), dus dan werkt het niet.

Toch bedankt, kan ik wellicht later nog een keer gebruiken!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan