Macro excel et ajout / suppression de ligne
Corse_94
-
corse_94 -
corse_94 -
Bonjour,
Je suis novice sous VB et n'arrive pas a mettre cette macro en place. Voici mon problème :
J'ai un tableau avec 4 colonnes :
- N° Serie
- Recette
- Qualification
- Production
Du type :
La macro que je souhaite mettre en place est la suivante :
- J'aimerais avoir plus qu'une seul date par ligne, sans perdre aucune données.
Je pensais donc faire une macro pour copier les lignes qui ont plusieurs dates (ex : E1234X) et remplacer une des dates par des "XX".
Le résultat souhaité est celui d'en dessous :
Merci d'avance pour votre aide, car je ne sais plus comment faire !
Je ne sais pas si je suis très clair, si vous avez besoin de plus de renseignements, je vous en donnerai volontiers.
Olivier
Je suis novice sous VB et n'arrive pas a mettre cette macro en place. Voici mon problème :
J'ai un tableau avec 4 colonnes :
- N° Serie
- Recette
- Qualification
- Production
Du type :
Num Serie Recette Qualif Production E1234X XX 01/02/2008 08/02/2008 E4568Z 06/02/2008 XX 21/02/2008 E1234P XX XX 23/02/2008 E7852S XX 06/02/2008 XX E6547M 01/02/2008 08/02/2008 23/02/2008
La macro que je souhaite mettre en place est la suivante :
- J'aimerais avoir plus qu'une seul date par ligne, sans perdre aucune données.
Je pensais donc faire une macro pour copier les lignes qui ont plusieurs dates (ex : E1234X) et remplacer une des dates par des "XX".
Le résultat souhaité est celui d'en dessous :
Num Serie Recette Qualif Production E1234X XX 01/02/2008 XX E1234X XX XX 08/02/2008 E4568Z 06/02/2008 XX XX E4568Z XX XX 21/02/2008 E1234P XX XX 23/02/2008 E7852S XX 06/02/2008 XX E6547M 01/02/2008 XX XX E6547M XX 08/02/2008 XX E6547M XX XX 23/02/2008
Merci d'avance pour votre aide, car je ne sais plus comment faire !
Je ne sais pas si je suis très clair, si vous avez besoin de plus de renseignements, je vous en donnerai volontiers.
Olivier
A voir également:
- Macro excel et ajout / suppression de ligne
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Forcer suppression fichier - Guide
- Liste déroulante excel - Guide
- Partage de photos en ligne - Guide
3 réponses
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
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 ?