Changer couleur de la police d'une plage de cellule variable Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
b
batoine
Membre habitué
Membre habitué
Messages : 111
Inscrit le : 9 décembre 2014
Version d'Excel : 2013 FR

Message par batoine » 25 octobre 2016, 16:09

Bonjour,

Je souhaite changer la couleur de la police d'une plage de cellule variable. Pour cela j'ai essayé plusieurs méthode de sélection de cette plage mais toutes, me renvoie un message d'erreur in fine.

La plage donc je souhaite modifier la couleur est à partir de la Cellule(25,4) jusqu'à la Cellule(50,Dercol).

Voici le code utilisé :
Private Sub ToggleButton1_Click()

Application.ScreenUpdating = True

DernCol = Cells(22, Cells.Columns.Count).End(xlToLeft).Column
a = OLEObjects("ToggleButton1").Object.Value

'on teste si la sélection de la colonne A est vide
If Sheets("USL").Cells(25, 1).Value = "" And _
Sheets("USL").Cells(26, 1).Value = "" And _
'je vous épargne la mutitude de lignes de codes, que je tenterai de réduire ultérieurement (autre objectif)
Sheets("USL").Cells(48, 1).Value = "" And _
Sheets("USL").Cells(49, 1).Value = "" Then
'si rien n'est coché on empeche le changement d'état du bouton et l'on colorie l'ensemble de la plage en noir
    ToggleButton1 = False
    'ThisWorkbook.Sheets("USL").Range("D25:" & Dercol & "50").Font.Color = vbBlack
    ThisWorkbook.Sheets("USL").Range(Cells(25, 4), Cells(50, dercol)).Font.Color = vbBlack
End if

Application.ScreenUpdating = False

End Sub

Pouvez-vous m'aider pour ce problème de coloriage de sélection varaible ?

Merci d'avance pour votre aide,

batoine
Avatar du membre
gelinotte
Membre dévoué
Membre dévoué
Messages : 601
Inscrit le : 29 juillet 2013
Version d'Excel : 2016

Message par gelinotte » 25 octobre 2016, 16:45

Bonjour,

Il est pratique de déclarer nos variables ... dans le nom, on place au moins une lettre en majuscule.
Ainsi, en tapant le code, on tape le nom de la variable en minuscule. En changeant de ligne, si le nom est exact, la majuscule va s'ajouter automatiquement.
Dans ton code, tu écrits Derncol, puis Dercol ... donc, pas de correspondance.
Aussi, pour minimiser l'écriture, on peut déclarer sur quelle feuille on travaille "With Worksheets("USL")". Ainsi, on peut seulement placer le "." point devant l'adressage ".Cells(48, 1).Value". La macro va savoir que tu parles de la feuille déclarée. À la fin, il ne faut pas oublier de terminer cette sélection "End With".
J'ai désactivé les lignes non essentielles au traitement du dépannage.
Private Sub ToggleButton1_Click()
Dim DerCol As Integer

'Application.ScreenUpdating = False

DerCol = Cells(22, Cells.Columns.Count).End(xlToLeft).Column
   '    a = OLEObjects("ToggleButton1").Object.Value

With Worksheets("USL")
    'on teste si la sélection de la colonne A est vide
    'je vous épargne la mutitude de lignes de codes, que je tenterai de réduire ultérieurement (autre objectif)
   If .Cells(25, 1).Value = "" And .Cells(26, 1).Value = "" And _
      .Cells(48, 1).Value = "" And .Cells(49, 1).Value = "" Then
          'si rien n'est coché on empeche le changement d'état du bouton et l'on colorie l'ensemble de la plage en noir
         ' ToggleButton1 = False
          'ThisWorkbook.Sheets("USL").Range("D25:" & Dercol & "50").Font.Color = vbBlack
       .Range(Cells(25, 4), Cells(50, DerCol)).Font.Color = vbBlack
       .Range(Cells(25, 4), Cells(50, DerCol)).Select
    End If

End With
Application.ScreenUpdating = True

End Sub


Gelinotte
Google est mon ami ...
b
batoine
Membre habitué
Membre habitué
Messages : 111
Inscrit le : 9 décembre 2014
Version d'Excel : 2013 FR

Message par batoine » 26 octobre 2016, 16:50

Merci pour ce petit rappel basique et pour m'avoir aidé ! Tout fonctionne grâce à tes conseils ! :D
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message