Menu

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

Messages postés
9
Date d'inscription
lundi 9 janvier 2017
Statut
Membre
Dernière intervention
29 mai 2019
- - Dernière réponse : 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
Afficher la suite 

1 réponse

Messages postés
6117
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2019
372
0
Merci
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à

mmaevaa
Messages postés
9
Date d'inscription
lundi 9 janvier 2017
Statut
Membre
Dernière intervention
29 mai 2019
-
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
Commenter la réponse de cs_Le Pivert