Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 procédure qui ne fait rien

Bill73

XLDnaute Junior
bonjour,

je me casse les dents depuis quelques heures avec :

VB:
Public Sub Format_Ligne(feuille As String, ByVal lig As Integer, dbcol As Integer, fncol As Integer)
        
        Worksheets(feuille).Range(dbcol & lig & ":" & fncol & lig).Borders.LineStyle = 1
        Worksheets(feuille).Range(dbcol & lig & ":" & fncol & lig).Borders.Weight = xlMedium
        Worksheets(feuille).Range(dbcol & lig & ":" & fncol & lig).Borders.Color = RGB(230, 230, 230)
        Worksheets(feuille).Cells(lig, fncol).Borders(xlEdgeRight).Color = RGB(89, 89, 89)
        Worksheets(feuille).Range(dbcol & lig & ":" & fncol & lig).Borders(xlEdgeTop).Color = RGB(230, 230, 230)
        Worksheets(feuille).Range(dbcol & lig & ":" & fncol & lig).Borders(xlEdgeBottom).Color = RGB(89, 89, 89)
        If lig Mod 2 = 0 Then
            Worksheets(feuille).Range(dbcol & lig & ":" & fncol & lig).Interior.Color = RGB(232, 232, 232)
        Else
            Worksheets(feuille).Range(dbcol & lig & ":" & fncol & lig).Interior.Color = RGB(209, 209, 209)
        End If
End Sub

je voudrais avoir ce code en général avec appel type " Format_Ligne "Entrée", ligent, 2, 15 " , ligent étant une variable contenant un numéro de ligne, depuis plusieures feuilles.

si je mets ce code à chaque fois dans les différentes feuilles, ça marche, si je fais une procédure globale, rien ne se passe.

Si quelqu'un a une idée ?
 

Bill73

XLDnaute Junior
bien vu,... mais permet d'effacer l'ancienne dernière ligne (RGB(89..) et de la passer en RGB(230..).
je n'ai trouvé que ça pour que ça change la couleur. si je garde juste le Borders.color, la ligne reste en 89 !
 

Bill73

XLDnaute Junior
je reprends :
j'écris une ligne A d'infos dans un tableau (dernière ligne du tableau)
mise en forme de la ligne : la ligne du bas : color 89, les autres lignes 230
je rajoute une ligne B (devient la dernière ligne)
j'ai donc en mise en forme la ligne basse de A en 89 (elle reste, c'est comme ça !)
et la ligne basse de B en 89 aussi (normal, on lui demande)
et c'est pour ça le XlTop

bon, je vais quand même revérifier, mais à l'époque, j'avais fais ça pour corriger ce bug d'affichage il me semble.
 

patricktoulon

XLDnaute Barbatruc
re
je re formule
tu parle de plusieurs lignes et plusieurs colonnes
le 230 fait la totale au départ
le 89 fait le xlright de Fligne sachant que Fligne est la dernière cellule en bas a droite
et encore 89 le bottom de ligne
que viens faire la correction du xltop de ligne la dedans
maintenant si tu parle d'une seule ligne je comprends mieux
et quoi que il te sufit de mettre tout en 230 et juste le xlright et botom en 89 sur Fligne
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re

VB:
Public Sub Format_Ligne(feuille As String, ByVal lig As Integer, dbcol As Integer, fncol As Integer)
    With Worksheets(feuille)
        With .Range(.Cells(lig, dbcol), .Cells(lig, fncol))
            .Borders.LineStyle = 1
            .Borders.Weight = xlMedium
            .Borders.Color = RGB(230, 230, 230)
            .SpecialCells(xlLastCell).Borders(xlEdgeRight).Color = RGB(89, 89, 89)
            .Borders(xlEdgeBottom).Color = RGB(89, 89, 89)
            .Interior.Color = Array(RGB(232, 232, 232), RGB(209, 209, 209))(Abs(lig Mod 2 <> 0))
        End With
    End With
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
après je crois comprendre qu'en fait il s'agit que d'une ligne a chaque coup et qu'a chaque inscription ou changement de ligne tu applique le format et selon l'index de ligne pair ou impair le interior est différent

oserais-je dire qu'il y a les tableaux structuré pour ça et pas besoins de code
ou bien même par MFC
 

patricktoulon

XLDnaute Barbatruc
re
tien tape quelque chose dans le col 1 a 7
regarde dans les MFC
des que tu va entrer quelque chose dans une des colonne la ligne se formate
PAS DE CODE
 

Pièces jointes

  • mfc 1 ligne sur 2+condition sur rempli ou pas.xlsx
    9.8 KB · Affichages: 9

Bill73

XLDnaute Junior
bonjour,
je connaissais les mfc mais pas avec des formules, jamais essayé. Trop puissant.
par contre, maintenant, j'ai un autre problème, j'ai des colonnes avec des codes couleurs différents.

pour continuer avec les mfc, j'aurais besoin d'une formule type :

If (abd = 0 And abj = 0) Or abj < Year(Date) en mettant aussi : ET(NB.SI($B3:$H3;"*")>0;

et là, je bute !
 

Discussions similaires

Réponses
8
Affichages
681
Réponses
1
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…