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

maand aanpassen

Status
Niet open voor verdere reacties.

ikselle

Gebruiker
Lid geworden
25 mei 2009
Berichten
198
EEN GELUKKIG 2019 BOORDEVOL GEZONDHEID !!!
Het jaar is nog maar begonnen en hier zijn we weer. Zit te knoeien met oudere datums.
Kan er iemand een handje helpen met mijn probleem in bijlage ?
 

Bijlagen

Hetzelfde gewenst :)

Volgens mij klopt je "moet worden" niet met je vraagstelling.
Kijk eens naar deze:
Bekijk bijlage MaandAanpassen.xlsm

Anders een betere uitleg.
En wil je het in VBA of als formule?
 
Laatst bewerkt:
@jempi10 en @edmoor: bedankt voor het meedenken en de formules. Ik zou het daar mee kunnen doen, Maar ik had eerder gedacht aan vba zodat ik zelf een deel van de gegevens kan selecteren en de formules daarop kan laten toepassen. Ik had daar reeds iets tevergeefs geprobeerd in vba.
@edmoor: "Volgens mij klopt je "moet worden" niet met je vraagstelling" ... ik ben niet helemaal mee met wat er niet zou kloppen.
 
Code:
Sub Maand()
    PasMndAan Range("A4:a17")
End Sub
Sub PasMndAan(rGebied As Range)
    Dim c      As Range, sp0, sp1

    Set c = rGebied
    iMaand = 12
    If Not rGebied Is Nothing Then
        For Each c In rGebied.Cells
            sp0 = Split(c.Value, "/")                                'cel opsplitsen op "/"
            sp1 = Split(c.Offset(-1).Value, "/")                     'idem voor cel erboven
            If UBound(sp0) = 2 And UBound(sp1) = 2 Then              'beide cellen in 3 stukken gesplitst
                sp0(1) = --sp0(1) + (--sp0(0) > --sp1(0))            '2e deel (maand) van cel eventueel 1 verlagen (WAAR=-1)
            End If
            c.Offset(, 1).Value = Join(sp0, "/")                     'nue eventjes uitvoeren naar de cel ernaast
        Next c
    Else
        MsgBox "u heeft niets geselecteerd"
    End If
End Sub
 
@cow18 : bedankt voor je reactie maar wanneer ik dit uitvoer krijg ik toch niet het gewenste resultaat
 

Bijlagen

Voor als er ook rekening gehouden moet worden met de jaren

Code:
Sub VenA()
  ar = Selection.Resize(, 2)
  ar(1, 2) = ar(1, 1)
  m = Split(ar(1, 1), "/")(1)
  y = Split(ar(1, 1), "/")(2)
  For j = 2 To UBound(ar)
    s1 = Split(ar(j, 1), "/")
    s2 = Split(ar(j - 1, 1), "/")
    If s1(0) > s2(0) Then
      m = IIf(s1(1) = 1, 12, m - 1)
      y = IIf(s1(1) = 1, y - 1, y)
    End If
    ar(j, 2) = Format(s1(0), "00/") & Format(m, "00/") & y
  Next j
  Selection.Resize(, 2) = ar
End Sub
 
tja, de verwachtte resultaten en de vraagstelling verschillen dus duidelijk.
Eigenlijk moet je datums systematisch steeds achteruit duwen.
Mag ik vragen, als ik naar de Gregoriaanse kalender kijk, dan zie ik geen reden om bovenstaande aanpassingen uit te voeren rond dat tijdstip.
Wat is de logica hiervan ?
 
Of

Code:
Sub M_snb()
   sn = Blad1.Range("A4:A9")
   
   For j = 2 To UBound(sn)
     sn(j, 1) = DateSerial(Year(sn(j, 1)), Month(sn(j - 1, 1)) + (Left(sn(j, 1), 2) > Left(sn(j - 1, 1), 2)), Day(sn(j, 1)))
   Next
 
  Blad1.Range("G4:G9") = sn
End Sub
 
@VenA : jouw manier werkt maar "Voor als er ook rekening gehouden moet worden met de jaren" begrijp ik niet helemaal. Maar ik ben reeds zeer tevreden als ik per jaar kan werken
@snb : ik doe waarschijnlijk iets verkeerd want de aangeleverde sub geeft slechts resultaat in 1 cel
@cow18 : ik voer begrafenisregisters in om er klappers (indexen) van te maken
Alvorens de gegevens van de aktes zelf in te voeren vul ik enkel de dag v/d maand in en daarom heb ik dit nodig
De gegevens voer ik dan in via een userform en heb daarbij mits het tonen van de reeds ingevulde datum een extra controle.
Het gaat om duizenden gegevens en elke tijdswinst komt goed van pas.
Ik werk chronologisch terug in de tijd omdat het latere geschrift meer leesbaar is en ik op die manier het geschrift en de formulering gewoon wordt.
Mvg,
ikselle
 

Bijlagen

In dit geval doet Excel iets fout.

Code:
Sub M_snb()
   sn = Sheet1.Range("A4:A9")
   
   For j = 2 To UBound(sn)
       sn(j, 1) = Format(DateSerial(Year(sn(j, 1)), Month(sn(j - 1, 1)) + (Left(sn(j, 1), 2) > Left(sn(j - 1, 1), 2)), Day(sn(j, 1))), "dd\/mm\/yyyy")
   Next

  Sheet1.Range("G4:G9") = sn
End Sub
 
Het kan zelfs zo:

Code:
Sub M_snb()
   sn = Sheet1.Range("A4:A9")
   
   For j = 2 To UBound(sn)
       sn(j, 1) = Left(sn(j, 1), 2) & "/" & Month(sn(j - 1, 1)) + (Day(sn(j, 1)) > Day(sn(j - 1, 1))) & "/" & Year(sn(j, 1))
   Next

  Sheet1.Range("G4:G9") = sn
End Sub
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan