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.
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 WithEst-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 !