VBA: Sélection d'une plage de cellules d'une feuille pour remplissage couleur

Résolu
SamGuelis - 31 déc. 2012 à 14:36
 SamGuelis - 6 avril 2013 à 23:52
Bonjour
je souhaite appliquer un remplissage de couleur dans des cellules qui contiennet les noms de divers champs sur une ligne. Pour la feuille nommée ws je fais l'action suivante pour sélectionner les cellules concernées:
With ws
.Range(.Cells(1, 1), .Cells(1, Columns.Count).End(xlToLeft).Column).Select
...
End With

Quand j'exécute l'instruction ci-dessus, je sors en erreur:
"l'erreur #1004 a été généré par VBAproject, la méthode Range de l'objet WorkSheet a échoué"
j'ai l'impression d'avoir fait la même chose ailleurs sans générer d'erreur. Quelqu'un peut-il m'aider à comprendre mon erreur? Ce doit être gros comme une nez au milieu du visage. Merci

SamGuelis

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 déc. 2012 à 15:01
Bonjour,
1) Qu'est ta variable ws ? (où et comment a-t-elle été déclarée et définie ?
2) qu'est selon toi End(xlToLeft).Column).Select
2) a quoi sert le select alors que tu cherches un N° de colonne ?
Regarde (exemple) :
With Worksheets("feuil2")
 toto = .Range(.Cells(1, 1), .Cells(1, Columns.Count).End(xlToLeft)).Column
 MsgBox toto

End With


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 déc. 2012 à 18:02
Et où est donc ton problème :
Ceci (exemple), colorera en rouge toutes les cellules de la ligne 1 jusqu'à la dernière colonne remplie de la feuille Feuil2 !
With Worksheets("feuil2")
  Dim toto As Long
  toto = .Cells(1, Columns.Count).End(xlToLeft).Column
  .Range(.Cells(1, 1), .Cells(1, toto)).Interior.ColorIndex = 3
End With

Je ne sélectionne rien (inutile) comme tu le vois !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
3
1- La variable ws est de type WorkSheet
2- mon objectif était de selectionner dans la ligne 1, les cellules 1 à la dernière de la ligne contenant une donnée. Pour moi End(xlToLeft).column devait justement me donner le numéro de la dernière colonne de la ligne, ayant une donnée.Dans mon cas il y a 16 cellules de la ligne 1 qui contiennent les noms de champs des colonnes. Donc faire une sélection des cellules 1 à 16 de la ligne pour changer la couleur de fond.
Merci
SamGuelis
0
Bonsoir
Désolé. J'ai pris en compte les indications sans dire qu'elles avait été acceptées.

SamGuelis
0
Rejoignez-nous