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

Fermé
mmaevaa Messages postés 9 Date d'inscription lundi 9 janvier 2017 Statut Membre Dernière intervention 29 mai 2019 - 24 mai 2019 à 15:59
mmaevaa Messages postés 9 Date d'inscription lundi 9 janvier 2017 Statut Membre Dernière intervention 29 mai 2019 - 27 mai 2019 à 10:21
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
A voir également:

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 24 mai 2019 à 17:57
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
mmaevaa Messages postés 9 Date d'inscription lundi 9 janvier 2017 Statut Membre Dernière intervention 29 mai 2019
27 mai 2019 à 10:21
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