Mise en page via VBA

[Résolu/Fermé]
Signaler
Messages postés
28
Date d'inscription
lundi 19 octobre 2015
Statut
Membre
Dernière intervention
6 mars 2019
-
Messages postés
70
Date d'inscription
vendredi 2 juillet 2010
Statut
Membre
Dernière intervention
17 août 2019
-
Bonjour à tous !
Et même si je suis en retard, bonne année.

Une Question VBA (je suis déjà pas au top mais là c'est pire).

Mise en page VBA, j'essaie de simplifier la vie à certaines personnes, pour la récupération des données, les calculs ... c'est ok.
Mais pour le mise en page du Bon de livraison je ne sais pas comment faire.
J'ai trouvé des code sur le net mais comme je n'y comprends rien je n'arrive pas à les adapter.

Il faut mettre des bordures en fonction d'une cellule ... c'est compliqué à expliquer donc j'ai mis un fichier avant/après.

Et si vous avez quelques chose pour l'impression je suis preneuse.

Merci d'avance à tous !
Louisa


http://www.cjoint.com/c/GBqhc2rQo4R



5 réponses

Messages postés
16525
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 octobre 2021
3 231
Bonjour,

La couleur bleue est mise manuellement ou... ?
Messages postés
28
Date d'inscription
lundi 19 octobre 2015
Statut
Membre
Dernière intervention
6 mars 2019
1
Bonjour Michel,

Non, en fait je récupère les données depuis un autre fichier puis je copie/colle donc la couleur bleue vient du format initial du fichier qui nous est transmis.

Louisa
Messages postés
16525
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 octobre 2021
3 231
re,

proposition

Option Explicit
'------------------------------------------------------
Sub encadrer()
Dim Derlig As Integer, Dercol As Byte
Dim Nbre As Integer, Cptr As Integer, Lig As Integer, Col As Byte

Application.ScreenUpdating = False

'--------------------------bordures horizontales
'bas du cadre
Derlig = Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row + 1
Range(Cells(Derlig, "A"), Cells(Derlig, "O")).Borders(xlEdgeBottom).Weight = xlMedium
'lignes intermédiaires
Nbre = Application.CountIf(Columns("A"), "*")
Lig = 5
For Cptr = 1 To Nbre
Lig = Columns("A").Find(what:="*", After:=Cells(Lig, "A")).Row
If Cells(Lig, "A").Interior.ColorIndex = 8 Then _
Range(Cells(Lig, "A"), Cells(Lig, "O")).Borders(xlEdgeTop).Weight = xlMedium
Next

'-------------------------bordures verticales
'droite du cadre
Dercol = Rows(5).Find(what:="*", searchdirection:=xlPrevious).Column
Range("O5:O" & Derlig).Borders(xlEdgeRight).Weight = xlMedium
'colonnes intermédiaires
Nbre = Application.CountA(Rows(5)) - 1
Col = 1
For Cptr = 1 To Nbre
Col = Rows(5).Find(what:="*", After:=Cells(5, Col)).Column
Range(Cells(5, Col), Cells(Derlig, Col)).Borders(xlEdgeLeft).Weight = xlMedium
Next
End Sub


 Michel
Messages postés
28
Date d'inscription
lundi 19 octobre 2015
Statut
Membre
Dernière intervention
6 mars 2019
1
Re bonjour Michel

Merci pour ton temps.

J'ai pas tout compris, en fait tu te base sur les cellules bleues pour les lignes mais pour les colonnes je n'arrive pas a décrypter ...

J'ai une erreur 91

Je te mets le vrai fichier ...

http://www.cjoint.com/doc/17_02/GBqjPP1PWSR_BON-LIVRAISON-UPS.xlsm

@+
Messages postés
16525
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 octobre 2021
3 231
mettre ton classeur sur https://mon-partage.fr/ car cjoint n'accapte pas les classeurs avec macro et il faut faire des "renommer" pour ouvrir

Nota: j'avais testé comme d'hab et ca fonctionnait....
Messages postés
28
Date d'inscription
lundi 19 octobre 2015
Statut
Membre
Dernière intervention
6 mars 2019
1 >
Messages postés
16525
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 octobre 2021

Re

Je pense que c'est parce que je bidouille des bouts de codes que ça ne fonctionne pas chez moi, rassure toi ... mais j'y vais à l'arrache et j'apprends en même temps !

Le lien dans mon partage :

https://mon-partage.fr/f/qYGaiv4T/

Merci
Messages postés
70
Date d'inscription
vendredi 2 juillet 2010
Statut
Membre
Dernière intervention
17 août 2019
4
Wé :-/ !