Mise en page via VBA

Résolu
saxo91 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -  
kikkoCCm Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -
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



A voir également:

5 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
Bonjour,

La couleur bleue est mise manuellement ou... ?
0
saxo91 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   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
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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
0
saxo91 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   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

@+
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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....
0
saxo91 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   1 > michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kikkoCCm Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   4
 
Wé :-/ !
0