Datum classificeren als kwartaal 1, 2, 3 of 4

Status
Niet open voor verdere reacties.

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
901
Beste Helpmij'ers,

Ik heb een code die geactiveerd wordt als kolom A (per regel) gevuld is en kolom AE (per regel) leeg is. Wanneer dat het geval is, kijkt deze in kolom C (per regel) waar een datum staat. Nu is het de bedoeling dat kolom AE gevuld wordt met het betreffende kwartaal behorende bij de datum in kolom C. M.a.w. als in kolom C "1-1-18" staat, dan moet in kolom AE van dezelfde regel "1" geplaatst worden.

Code:
Sub test()
Dim cell As Range
For Each cell In Range("AE13:AE1500")
If cell.Value = "" Then
    If cell.Offset(, -30).Value <> "" Then
        cell.Offset(, 0) = [COLOR="#FF0000"]cell.Offset(, -28).Value[/COLOR]
    Else
        cell.Offset(, 1) = ""
    End If
End If
Next
End Sub

Bovenstaande code (in het rood) plaatst nu de datum i.p.v. de kwartaalaanduiding (1, 2, 3 of 4).

Alvast heel hartelijk dank.

Robert
 
Laatst bewerkt:
Code:
datepart("q", date, 1, 1)

Ik vermoed dat onderstaande al voldoende is.
Code:
datepart("q", date)
 
Laatst bewerkt:
Het is mij niet duidelijk waar ik de code moet plaatsen i.c.m.:
Code:
cell.Offset(, 0) = cell.Offset(, -28).Value

Ik heb meerdere opties uitgeprobeerd.
 
gebruik geen namen voor variabelen die al in Excel of VBA gereserveerd zijn.

Code:
Sub M_snb()
   For Each it in Range("AE13:AE1500")
    If it="" and it.offset(,-30)<>"" Then it.Value=format(it.Offset(, -28),"q")
  Next
End Sub
 
Laatst bewerkt:
Zet de eigenschap op standaard.
Code:
Then it[COLOR=#0000ff].value[/COLOR]=format(it.Offset(, -28),"q")
 
Volgens mij zat het idd in celeigenschap, het werkt nu prima :thumb:. Allen hartelijk dank, hier was ik wederom nooit zelf opgekomen.
 
Nee, da's het nadeel van niet declareren.
Code:
dim it as range

Vandaar dat je er: it.value van moest maken.
 
Dat is meer het effekt van inconsistenties in VBA.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan