VBA - Code de Mise en page

Bonjour,

J'utilise un classeur partagé qui me permet de générer des bons de livraison. Puisque le classeur est en partagé je n'ai pas le droit de fusionné des cellules une fois le partage activé. J'ai donc fusionné mes cellules avant de partager le classeur. Le code rempli le BL puis le vide pour le prochain utilisateur. De temps en temps mes cellules fusionnées disparaissent (désignation et matière) ce qui crée des problèmes de mise en page des BL notamment la ligne description déborde sur la ligne article client.

tableau

Voici le code qui permet d'effacer les données saisi dans le BL :

        'Efface les données
        Range("A27:J39").Select
        Selection.ClearContents
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        Selection.Borders(xlEdgeLeft).LineStyle = xlNone
        Selection.Borders(xlEdgeTop).LineStyle = xlNone
        Selection.Borders(xlEdgeBottom).LineStyle = xlNone
        Selection.Borders(xlEdgeRight).LineStyle = xlNone
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
        

Il y a aussi un code qui permet de mettre les bordures en prenant compte des cellules fusionnées :

                    'Bords des cellules
                    'Mise en page avec les bordures
                        Range("A" & lArticle & ":B" & lArticle).Select
                        With Selection.Borders(xlEdgeTop)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeBottom)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeRight)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeLeft)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlInsideVertical)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlInsideHorizontal)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Font
                            .Name = "Calibri"
                            .Size = 11
                        End With

                        'Mise en page de la désignation sans bordure
                        Range("C" & lArticle & ":E" & lArticle).Select
                    With Selection.Borders(xlEdgeLeft)
                            .LineStyle = xlContinuous
                            .ColorIndex = 0
                            .TintAndShade = 0
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeTop)
                            .LineStyle = xlContinuous
                            .ColorIndex = 0
                            .TintAndShade = 0
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeBottom)
                            .LineStyle = xlContinuous
                            .ColorIndex = 0
                            .TintAndShade = 0
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeRight)
                            .LineStyle = xlContinuous
                            .ColorIndex = 0
                            .TintAndShade = 0
                            .Weight = xlThin
                        End With

                        'Mise en page de la matière sans bordure
                        Range("G" & lArticle & ":H" & lArticle).Select
                    With Selection.Borders(xlEdgeLeft)
                            .LineStyle = xlContinuous
                            .ColorIndex = 0
                            .TintAndShade = 0
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeTop)
                            .LineStyle = xlContinuous
                            .ColorIndex = 0
                            .TintAndShade = 0
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeBottom)
                            .LineStyle = xlContinuous
                            .ColorIndex = 0
                            .TintAndShade = 0
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeRight)
                            .LineStyle = xlContinuous
                            .ColorIndex = 0
                            .TintAndShade = 0
                            .Weight = xlThin
                        End With

                        'Mise en page avec bordure de quantité
                        Range("Q" & lArticle).Select
                        With Selection.Borders(xlEdgeTop)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeBottom)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeRight)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeLeft)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlInsideVertical)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlInsideHorizontal)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Font
                            .Name = "Calibri"
                            .Size = 11
                        End With

                        'Mise en page avec bordure de couleur jusqu'à épaisseur
                        Range("I" & lArticle & ":J" & lArticle).Select
                        With Selection.Borders(xlEdgeTop)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeBottom)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeRight)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlEdgeLeft)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlInsideVertical)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Borders(xlInsideHorizontal)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                        End With
                        With Selection.Font
                            .Name = "Calibri"
                            .Size = 11
                        End With

Est-ce que vous pensez que ça provient du code ? Avez vous une solution à m'apporter ?

Je vous remercie pour votre lecture et pour vos futures réponses !

Bonjour 04Cecilia31

Il faut perdre, si possible, cette habitude de fusionner les cellules

Dans le présent fichier, à quoi cela vous sert-il ?

D'ailleurs

@+

Bonjour,

Tout d'abord je vous remercie pour votre réponse.

Je fusionne les cellules car sinon la désignation déborde sur les autres colonnes du tableau ce qui masque des éléments importants.

Concernant le fichier celui ci comporte des données confidentielles je n'ai pas le droit de le partagé

Je vais essayer de trouver une mise en page correcte sans fusionné les cellules !

Rechercher des sujets similaires à "vba code mise page"