lire des cellules en boucles

  • Initiateur de la discussion Initiateur de la discussion matt
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

matt

Guest
Je suis débutant et j'aimerais créer un programme colorant une image en fonction des données rentrées dans une autre colonne, sans boucle j'y arrive mais avec une boucle pas moyen, surement car je ne maitrise pas encore bien l'instruction for...to...next.
Voilà ce que j'ai essayé:

En utilisant Bi, j'aimerais que le programme comprenne B1 puis B2 -> B14

Private Sub CommandButton1_Click()
Dim i As Integer

For i = 1 To 14
If Range("Bi") = 1 Then
Image14.BackColor = &HFF&
ElseIf Range("Bi") = 2 Then
Image14.BackColor = &H80FF&
ElseIf Range("Bi") = 3 Then
Image14.BackColor = &HFFFF&
ElseIf Range("Bi") = 4 Then
Image14.BackColor = &HFFFF00
ElseIf Range("Bi") = 5 Then
Image14.BackColor = &HFF8080
ElseIf Range("Bi") = 6 Then
Image14.BackColor = &HFF0000
End If
Next i
End Sub

Si vous pouviez m'aider, d'avance merci
 
Bonsoir Matt,


Remplace tes :

If Range("Bi") =...

par

If Range("B" & i) = ...


En effet, si tu inclues le i dans les guillemets, il ne peut plus être considéré comme une variable. VBA essaie dans ce cas d'interpréter la chaine de caractère "Bi" qui ne veut rien dire...

Cordialement.
Didier
 
Merci de votre réponse, maintenant, sans vouloir abuser de votre savoir, cela va sans dire, pourriez vous m'indiquer, dans le même style, comment faire varier :
image14.backcolor en imagej.backcolor avec j variant de 1 à 14
c'est le même probleme, je ne sais pas taper la bonne ligne de commande et ici, 'image & j.backcolor' ne semble pas marcher.

Merci de votre aide
 
Bonjour Matt,

Dans ton exemple, "image14" est le nom d'un objet. Dans ce cas, "14" n'est pas considéré comme un index mais comme partie intégrante du nom de l'objet (tu ne peux donc faire varier cet élément). Malheureusement, VBA ne sait pas gérer les groupes de controles indexés comme Image(1), Image(2), etc...

Une solution consiste à stocker au préalable l'ensemble des objets 'image' dans un tableau de variables (de type 'objet'). Tu peux ensuite manipuler ces objets par l'intermédiaire de ce tableau.

Tu trouveras ci-joint un exemple.

C'est, à mon avis, la solution la plus simple.
Une autre solution consiste à utiliser un module de classe, mais ça.... c'est une autre histoire...

Cordialement.
Didier
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
707
Réponses
4
Affichages
581
Retour