Harmonisation tableau

nathg31

XLDnaute Nouveau
Bonjour,
Je bloque sur un code qui me semble très simple.
Je mets un fichier excel pour que vous ayez la disposition des tableaux.
Le plus simple est de l'ouvrir et vous allez directement comprendre ce que je souhaite faire.

J'aimerais aligner mes [N°] au même niveau, le problème est que j'ai des cellules fusionnés qui perturbe la disposition de mon tableau. J'utilise Unmerge mais des cellules blanches sont crées et c'est la que je bloque.

Ça doit être un truc évident mais je n'arrive pas à avoir la logique.
Merci d'avance pour toute aide.
Cordialement.
 

Pièces jointes

  • forum.xlsm
    23.4 KB · Affichages: 5

nathg31

XLDnaute Nouveau
Pour ceux que ça intéresse.
VB:
Sub Harmonisation()
    
    'Enlève la fusion sur l'ensembles des cellules de la table
    Sheets("TABLE").Cells.UnMerge
    
    

    'Décale des blocs de 4 colonnes vers le haut si la première de ces 4 colonnes est vide
    lCol = Sheets("TABLE").Cells(1, Columns.Count).End(xlToLeft).Column
    For i = 1 To lCol Step 5
    If Sheets("TABLE").Cells(2, i).Value = "" Then
    
    lLig = Sheets("TABLE").Cells(Rows.Count, i).End(xlUp).Row
    Range(Sheets("TABLE").Cells(3, i), Sheets("TABLE").Cells(lLig, i + 3)).Copy
    Sheets("TABLE").Cells(2, i).PasteSpecial xlPasteValues
    
    'Supprime le contenu de la dernière ligne
    Range(Sheets("TABLE").Cells(lLig, i), Sheets("TABLE").Cells(lLig, i + 3)).ClearContents
    Range(Sheets("TABLE").Cells(lLig, i), Sheets("TABLE").Cells(lLig, i + 3)).Borders(xlEdgeLeft).LineStyle = xlNone
    Range(Sheets("TABLE").Cells(lLig, i), Sheets("TABLE").Cells(lLig, i + 3)).Borders(xlEdgeBottom).LineStyle = xlNone
    Range(Sheets("TABLE").Cells(lLig, i), Sheets("TABLE").Cells(lLig, i + 3)).Borders(xlEdgeRight).LineStyle = xlNone
    Range(Sheets("TABLE").Cells(lLig, i), Sheets("TABLE").Cells(lLig, i + 3)).Borders(xlInsideVertical).LineStyle = xlNone
    Range(Sheets("TABLE").Cells(lLig, i), Sheets("TABLE").Cells(lLig, i + 3)).Borders(xlInsideHorizontal).LineStyle = xlNone
    


    End If
    Next i
    
   Rows("2:2").Select
    Selection.Font.Bold = False
    With Selection.Font
        .Name = "Arial"
        .Size = 10
    End With
    
End Sub
 

Discussions similaires

Réponses
69
Affichages
1 K
Réponses
2
Affichages
214

Statistiques des forums

Discussions
312 525
Messages
2 089 327
Membres
104 121
dernier inscrit
bobquad01