A voir également:
- Macro excel et ajout / suppression de ligne
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Forcer suppression fichier - Guide
- Si et excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
3 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 681
26 févr. 2008 à 09:12
26 févr. 2008 à 09:12
bonjour
J'aimerais avoir plus qu'une seul date par ligne, sans perdre aucune données... et remplacer une des dates par des "XX".
Avec cette petite macro tu devrais faire ce que tu veux
J'aimerais avoir plus qu'une seul date par ligne, sans perdre aucune données... et remplacer une des dates par des "XX".
Avec cette petite macro tu devrais faire ce que tu veux
Public Sub une_date() Dim l As Long Dim c As Integer Dim d As Integer For l = Cells(65536, 1).End(xlUp).Row To 2 Step -1 For c = 4 To 2 Step -1 For d = 2 To c - 1 If IsDate(Cells(l, c).Value) _ And IsDate(Cells(l, d).Value) Then Cells(l + 1, c).EntireRow.Insert Cells(l + 1, 1).Value = Cells(l, 1).Value Cells(l + 1, 2).Resize(1, 3).Value = "XX" Cells(l + 1, c).Value = Cells(l, c).Value Cells(l, c).Value = "XX" End If Next d Next c Next l End Sub
Bonjour,
Merci c'est exactement ce que je souhaite ...
Est-ce que tu peux me donner des details sur la macro pour la comprendre stp ?
Ciao
Olivier
Merci c'est exactement ce que je souhaite ...
Est-ce que tu peux me donner des details sur la macro pour la comprendre stp ?
Ciao
Olivier
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 681
26 févr. 2008 à 17:17
26 févr. 2008 à 17:17
bonjour
on part de la fin du fichier puisque tu vas rajouter des lignes
For l = Cells(65536, 1).End(xlUp).Row To 2 Step -1
on part de la fin de la ligne en cours
For c = 4 To 2 Step -1
on regardes s'il y a une autre date
For d = 2 To c - 1
If IsDate(Cells(l, c).Value) _
And IsDate(Cells(l, d).Value) Then
2 dates trouvées sur la ligne, on insère une ligne devant la suivante (+1)
Cells(l + 1, c).EntireRow.Insert
on récupère la colonne A et on initialise les autres à "XX"
Cells(l + 1, 1).Value = Cells(l, 1).Value
Cells(l + 1, 2).Resize(1, 3).Value = "XX"
On descend la date de droite et on la remplace par "XX"
Cells(l + 1, c).Value = Cells(l, c).Value
Cells(l, c).Value = "XX"
on boucle sur la recherche dates
Next d
on boucle sur la colonne suivante
Next c
on boucle sur la ligne suivante
Next l
Est-ce suffisamment clair ou bien as-tu des questions à poser ?
on part de la fin du fichier puisque tu vas rajouter des lignes
For l = Cells(65536, 1).End(xlUp).Row To 2 Step -1
on part de la fin de la ligne en cours
For c = 4 To 2 Step -1
on regardes s'il y a une autre date
For d = 2 To c - 1
If IsDate(Cells(l, c).Value) _
And IsDate(Cells(l, d).Value) Then
2 dates trouvées sur la ligne, on insère une ligne devant la suivante (+1)
Cells(l + 1, c).EntireRow.Insert
on récupère la colonne A et on initialise les autres à "XX"
Cells(l + 1, 1).Value = Cells(l, 1).Value
Cells(l + 1, 2).Resize(1, 3).Value = "XX"
On descend la date de droite et on la remplace par "XX"
Cells(l + 1, c).Value = Cells(l, c).Value
Cells(l, c).Value = "XX"
on boucle sur la recherche dates
Next d
on boucle sur la colonne suivante
Next c
on boucle sur la ligne suivante
Next l
Est-ce suffisamment clair ou bien as-tu des questions à poser ?