Fonction "police"

[Résolu]
Signaler
Messages postés
25
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
2 mai 2007
-
Messages postés
25
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
2 mai 2007
-
Salut, j'aimerai faire une procédure ou fonction qui prend comme paramètre d'entrée " nom" qui es une cellule ou partie de cellule, "gras" un boolean, "taille" un integer, "couleur" un string qui est censée changer la police de "nom".
Voilà ce que j'ai codé:

Sub police(nom As Range, gras As Boolean, taille As Integer, couleur As String)
With nom.Font
    If gras Then
        .Bold = True
    Else
        .Bold = False
    End If
    .Size = taille
    Select Case couleur
        Case "rouge"
        .Color = RGB(250, 0, 0)
        Case "vert"
        .Color = RGB(0, 100, 0)
        Case "orange"
         .Color = RGB(255, 191, 0)
        Case "bleu"
        .ColorIndex = 55
        Case "marron"
        .ColorIndex = 9
        Case "noir"
        .Color = RGB(0, 0, 0)
    End Select
End With

mais quand  cette "sub" elle ne marque un message d'erreur : "erreur de syntaxe"
par exemple,
Sub affectepolice()
 police(range("NAMEbis"), True, 13, "noir")
end sub

où NAMEbis est une partie d'une colonne

Pouvez vous m'aider?

5 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bon...
Je vois maintenanty mieux ce que tu veux faire mais ne connaios pas VBA (j'ignorais que VBA pouvait comprendre un_Range.font.color ...)


Ton appel de la procédure, par contre, devrait être fait sans les parenthèses
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Heu...
1) nom , c'est quoi, dans cette affaire ? Une Forme ? un contrôle ? une Imprimante ? l'objet Screen ?
Précise

2) une police n'a pas de propriété couleur !

Si tu veux une réponse précise, il va te falloir poser une question précise et en détail !
J'appelle par ailleurs ton attention sur l'existence d'un composant : CommnDialog ! (à tout hasard)
Messages postés
25
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
2 mai 2007

en faite, nom est une plage par exemple : Range(A1:B5)
et ce que j'aimerai c'est affecter cette plage une taille de police, le caractére gras ou pas,la couleur du texte dans cette plage par une cellule.... étais-je bien clair?
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

Va peut-être falloir faire un For Each Cell In nom :

Sub police(nom As Range, gras As Boolean, taille As Integer, couleur As String)
    Dim MyCell As Range
   
For Each MyCell In ActiveSheet.Range(nom)
    With MyCell.Font
        .Bold = gras
        .Size = taille
        Select Case couleur
            Case "rouge"
            .Color = RGB(250, 0, 0)
            Case "vert"
            .Color = RGB(0, 100, 0)
            Case "orange"
             .Color = RGB(255, 191, 0)
            Case "bleu"
            .ColorIndex = 55
            Case "marron"
            .ColorIndex = 9
            Case "noir"
            .Color = RGB(0, 0, 0)
        End Select
    End With
Next
End Sub

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
Messages postés
25
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
2 mai 2007

oui effectivement!!! il fallait enlever les parenthèses!!! et dire que j'ai passer des heures la dessus sur ce problème!!!
voila mon code final qui a l'air de marcher...ca pouurait  aider
merci pour vos réponses en tous cas

Sub police(nom As Range, gras As Boolean, taille As Integer, couleur As String)
With nom.Font
    If gras Then
        .Bold = True
    Else
        .Bold = False
    End If
    .Size = taille
    Select Case couleur
        Case "rouge"
        .Color = RGB(250, 0, 0)
        Case "vert"
        .Color = RGB(0, 100, 0)
        Case "orange"
         .Color = RGB(255, 191, 0)
        Case "bleu"
        .ColorIndex = 55
        Case "marron"
        .ColorIndex = 9
        Case "noir"
        .Color = RGB(0, 0, 0)
    End Select
End With
   
End Sub

Sub affectepolice()
police Range("NAMEbis"), True, 13, "noir"
end sub