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 ?
 
Solution
ok
ajoute une mfc
la formule
=ET(NB.SI($B3:$H3;"*")>0;ET($B3<>"";OU($L3&$B3="";$M3<ANNEE(AUJOURDHUI()))))

et ca s'applique à
=$B$3:$B$1000;$L$3:$M$1000
démo résultat
demo4.gif

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 ;)
 

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
831
Réponses
1
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
314 450
Messages
2 109 719
Membres
110 551
dernier inscrit
Khyolyanna