Macro changement de date en fonction d'une cellule dans une suite de dates.

mmaevaa Messages postés 9 Statut Membre -  
mmaevaa Messages postés 9 Statut Membre -
Bonjour,

J'aimerais savoir s'il est possible de modifier une suite de dates en fonction de la première cellule de la colonne mais que cette cellule varie à chaque fois que la date change....
Je m'explique :

J'ai une suite de date comme suit :

01/01/2019
01/01/2019
01/01/2019
10/31/2018
10/31/2018
10/31/2018
10/31/2018

Et j'aimerais que de manière automatique cette suite devienne :

01/01/2019
01/02/2019 (+1)
01/03/2019 (+1)
10/31/2018
11/01/2018 (+1)
11/02/2018 (+1)
11/03/2018 (+1)

Bien sur dans les faits la suite fait 13000 lignes.

Est-ce possible via une formule ?
Un macro ?

Merci d'avance

1 réponse

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    par macro:

    Option Explicit
    Private Sub CommandButton1_Click()
    For_X_to_Next_Ligne
    End Sub
    Sub For_X_to_Next_Ligne()
    Dim FL1 As Worksheet, NoCol As Integer
    Dim NoLig As Long, Var As Variant
    Set FL1 = Worksheets("Feuil1")
        splitcolonne
        NoCol = 2 'lecture de la colonne B
        For NoLig = 2 To Split(FL1.UsedRange.Address, "$")(4)
            Var = FL1.Cells(NoLig, NoCol)
         If FL1.Cells(NoLig, NoCol) = FL1.Cells(NoLig - 1, NoCol) Then ' si la valeur est égale à la ligne précédente
          FL1.Cells(NoLig, NoCol - 1) = FL1.Cells(NoLig, NoCol - 1) & "(+1)" 'on ajoute (+1)
          End If
          Next
        Set FL1 = Nothing
         Columns("B:B").ClearContents 'on nettoie colonne B
    End Sub
    Sub splitcolonne()
    Dim FL1 As Worksheet, NoCol As Integer
    Dim NoLig As Long, Var As Variant
    
        Set FL1 = Worksheets("Feuil1")
        NoCol = 1 'lecture de la colonne A
        For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
            Var = FL1.Cells(NoLig, NoCol)
         FL1.Cells(NoLig, NoCol + 1) = Split(Var, "/")(2) 'on met l'année dans la colonne B
          Next
        Set FL1 = Nothing
    End Sub
    
    


    Voilà

    0
    1. mmaevaa Messages postés 9 Statut Membre
       
      Boinjour,

      Merci ça ressemble vraiment à ce que je recherche, mais je pense que je me suis mal exprimée,
      Je ne veux pas que le "(+1)" s'affiche en format texte, seulement que la case se recalcule en fonction de la précédente.

      A savoir dans l'exemple :

      01/01/2019
      01/01/2019
      01/01/2019
      10/31/2018

      Se transforme en :

      01/01/2019
      01/02/2019
      01/03/2019
      10/31/2018

      Merci
      0