Suppression de ligne dans une boucle
Résolu
Kuartz
Messages postés
852
Date d'inscription
Statut
Membre
Dernière intervention
-
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Suppression de ligne dans une boucle
- Forcer suppression fichier - Guide
- Partage de photos en ligne - Guide
- Aller à la ligne dans une cellule excel - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
2 réponses
Re-
Il te faut un second test lorsque Ai n'est pas vide...
Teste par exemple si Bi = Bi + 1 ET Ci = Ci + 1
Autre souci les dates en colonne A sont modifiées chez moi. Donc j'ai ajouté CDate()
Donc quelque chose comme :
Il te faut un second test lorsque Ai n'est pas vide...
Teste par exemple si Bi = Bi + 1 ET Ci = Ci + 1
Autre souci les dates en colonne A sont modifiées chez moi. Donc j'ai ajouté CDate()
Donc quelque chose comme :
Sub RETRAITEMENTS()
Dim DL As Long
Range("A:E,J:O,Q:Q,S:S").Delete
DL = Cells(Application.Rows.Count, 5).End(xlUp).Row
For i = DL To 5 Step -1
If Range("A" & i) = "" Then
Range("A" & i).Value = CDate(Range("A" & i - 1).Value)
Range("B" & i).Value = Range("B" & i - 1).Value
Range("C" & i).Value = Range("C" & i - 1).Value
Range("D" & i).Value = Range("D" & i - 1).Value
Range("F" & i).Value = Range("F" & i - 1).Value
Range("G" & i).Value = Range("G" & i - 1).Value
Range("H" & i).Value = Range("H" & i - 1).Value
Range("I" & i).Value = CDate(Range("I" & i - 1).Value)
Rows(i - 1).Delete
i = i - 1
ElseIf Range("B" & i) = Range("B" & i + 1) And Range("C" & i) = Range("C" & i + 1) Then
Rows(i).Delete
End If
Next i
End Sub
Bonjour,
Il te faut refaire la mise en forme en fin de macro.
Pour cela, créer une seconde Sub avec la mise en forme Arial, 8.5, alignement horizontal et vertical...
Cela te donne, au final, ces deux procédures :
Il te faut refaire la mise en forme en fin de macro.
Pour cela, créer une seconde Sub avec la mise en forme Arial, 8.5, alignement horizontal et vertical...
Cela te donne, au final, ces deux procédures :
Sub RETRAITEMENTS() Dim DL As Long Range("A:E,J:O,Q:Q,S:S").Delete DL = Cells(Application.Rows.Count, 5).End(xlUp).Row For i = DL To 5 Step -1 If Range("A" & i) = "" Then Range("A" & i).Value = CDate(Range("A" & i - 1).Value) Range("B" & i).Value = Range("B" & i - 1).Value Range("C" & i).Value = Range("C" & i - 1).Value Range("D" & i).Value = Range("D" & i - 1).Value Range("F" & i).Value = Range("F" & i - 1).Value Range("G" & i).Value = Range("G" & i - 1).Value Range("H" & i).Value = Range("H" & i - 1).Value Range("I" & i).Value = CDate(Range("I" & i - 1).Value) Rows(i - 1).Delete i = i - 1 ElseIf Range("B" & i) = Range("B" & i + 1) And Range("C" & i) = Range("C" & i + 1) Then Rows(i).Delete End If Next i DL = Cells(Application.Rows.Count, 5).End(xlUp).Row Mise_En_Forme Range("A2:V" & DL) End Sub Sub Mise_En_Forme(RngSelect As Range) With RngSelect With .Font .Name = "Arial" .Size = 8.5 End With .HorizontalAlignment = xlLeft .VerticalAlignment = xlTop End With End Sub
Rah merci encore une fois. Je crois que dans le jus ça je l'aurais pas trouvé tout seul. Vraiment merci.
Vous avez une idée de comment garder la même mise en forme? Le format de l'écriture de départ est vraiment bien pour la lisibilité de mon fichier.
Merci !