Boucle pour mise en forme de tableaux

  • Initiateur de la discussion Initiateur de la discussion Tony44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tony44

XLDnaute Junior
Bonjour,

j'ai un feuille dans laquelle j'ai plusieurs petits tableaux qui se suivent et qui sont séparés d'un ligne vierge.

j'ai créé une macro de mise en forme qui permet de mettre en forme chaque tableau lorsque je suis positionné dessus.

je souhaite créer une boucle qui dirait qu'à chaque fois qu'il trouve un tableau, la boucle applique la macro de mise en forme.

merci pour votre aide.
le tableau est en pièce jointe
 

Pièces jointes

Bonjour,
Essaie un truc comme ça...
VB:
Sub Boucle_Mise_en_forme()
    Dim Cellule As Range
    Const LigneVideAvantPremierTableau = 6
    Const ColonneFamille = 1
    
    For Each Cellule In ActiveSheet.Cells(LigneVideAvantPremierTableau, ColonneFamille).Resize(Rows.Count - LigneVideAvantPremierTableau)
        If IsEmpty(Cellule) Then
            If Not IsEmpty(Cellule.Offset(1, 0)) Then
                Cellule.Offset(1, 0).Select
                Call Mise_en_forme
            Else
                Exit For
            End If
        End If
    Next Cellule
End Sub
 
Ah oui, personnellement je les ai découvertes avec étonnement.

La Macro dit:
- Pour chaque cellule de la feuille active qui va de la ligne 6 à la dernière ligne de la feuille dans la colonne 1
- Si la cellule est vide et que la suivante ne l'est pas:
- Sélectionner la suivante et appliquer la mise en forme
- Si la cellule est vide et que la suivante l'est aussi :
- Sortir de la boucle (arrêt du traitement)
 
Dernière édition:
RE

Une variante si c'est le Code Famille qui détermine l'angle du tableau
VB:
Sub Mise_en_Forme()
    Dim Coin As Range, Prem As String
    Set Coin = ActiveSheet.Range("A:A").Find("Code Famille")
    If Not Coin Is Nothing Then Prem = Coin.Address Else Exit Sub
    Do
        Coin.AutoFormat Format:=xlRangeAutoFormatSimple, Number:=True, _
            Font:=True, Alignment:=False, Border:=True, Pattern:=True, Width:=False
        Set Coin = ActiveSheet.Range("A:A").FindNext(Coin)
    Loop While Not Coin Is Nothing And Prem <> Coin.Address
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
134
Réponses
2
Affichages
105
Réponses
12
Affichages
215
Retour