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 -
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
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:
- Macro changement de date en fonction d'une cellule dans une suite de dates.
- Changer de dns - Guide
- Nombre de jours entre deux dates excel - Guide
- Fonction si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Aller à la ligne dans une cellule excel - Guide
1 réponse
Bonjour,
par macro:
Voilà
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à
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