Bonjour le forum,
Dans le tableau ci-joint, je souhaiterais supprimer les zones fusionnées (cellules en jaune),
Une fois les zones défusionnées, je souhaiterais supprimer les zones vides en décalant les données vers la gauche.
Je ne souhaite pas supprimer les fusions pour les zones en vert,
J'ai testé le code ci-dessous qui a l'air de fonctionner mais je rencontre 2 problèmes :
- je ne sais pas comment indiquer dans le code que le tableau démarre de la ligne A5 et rendre la dernière ligne Q23 dynamique car la hauteur du tableau varie d'un export à l'autre.
J'ai tenté avec "Selection.End(xlDown))" mais en vain....
- et éventuellement décaler la zone en rouge vers la gauche de façon que celle-ci soit alignée avec la dernière colonne du tableau
De plus je ne suis pas certain que ce code soit adapté mais si vous avez plus simple je suis preneur.
P.S : En réalité mon tableau perso fait plus de 20 000 lignes
Merci d'avance pour votre aide
Dans le tableau ci-joint, je souhaiterais supprimer les zones fusionnées (cellules en jaune),
Une fois les zones défusionnées, je souhaiterais supprimer les zones vides en décalant les données vers la gauche.
Je ne souhaite pas supprimer les fusions pour les zones en vert,
J'ai testé le code ci-dessous qui a l'air de fonctionner mais je rencontre 2 problèmes :
- je ne sais pas comment indiquer dans le code que le tableau démarre de la ligne A5 et rendre la dernière ligne Q23 dynamique car la hauteur du tableau varie d'un export à l'autre.
J'ai tenté avec "Selection.End(xlDown))" mais en vain....
- et éventuellement décaler la zone en rouge vers la gauche de façon que celle-ci soit alignée avec la dernière colonne du tableau
De plus je ne suis pas certain que ce code soit adapté mais si vous avez plus simple je suis preneur.
P.S : En réalité mon tableau perso fait plus de 20 000 lignes
Merci d'avance pour votre aide
Code:
Sub SpprimerDecaler()
Dim Data As Range, Lig, Col
Set Data = Range("A5:Q23")
Application.ScreenUpdating = False
With Data
For Lig = 1 To .Rows.Count
For Col = .Columns.Count To 1 Step -1
If .Cells(Lig, Col) = "" Then .Cells(Lig, Col).Delete shift:=xlToLeft
Next Col
Next Lig
End With
Application.ScreenUpdating = True
End Sub