Array et nom d une etiquette

Bonjour,

Ca va peut-être paraître idiot, mais j ai une liste de chiffres dans un array que j aimerais utiliser dans le nom de différentes etiquettes présentes sur ma feuille excel.

Les noms de ces différents zone sont comme ceci:

lblCell1

lblCell2

Etc jusqu a 53

Sur ma feuille excel j ai une cellule qui sert à me dire quelles étiquettes doivent etre indisponibles. Donc on écrit les numéros séparés de ;

Ex: 23;24;45;67

Dans mon array, je récupère les numéros

Et ces numéros.... j aimerais les ajouter derrière lblCell pour ensuite indiquer une couleur

J ai essayé comme suit:

Tableau = split(range("v4").value, ";")

For i= 0 to Ubound(Tableau)

maCell = "lblCell" & Tableau(i)

maCell.Backcolor = RGB......

Next i

Et ben ça ne va nin

Une idée du pq ca foire?

Surement une question de type incompatibles ou autre mais la je ne vois pas

Merci pour votre aide

Fabian

Bonsoir,

pour vous aider à comprendre pourquoi ça ne marche pas voici quelque questions auxquelles faut répondre :

Votre variable maCell correspond à quoi ?

Si vous savez à quoi elle correspond, dites le nous...

Moi ce que je vois c'est une valeur "texte".

Est ce qu'une variable "String" comporte des propriétés de variable "objet" ?

Moi je ne pense pas, donc derrière une variable String il ne peut y avoir de ".QuelQueChose"

Lorsque l'on veut faire de la purée, généralement on prend des pommes de terre...

Donc vous devez requalifier vos variables :

maCell, si c'est la représentation VBA d'une cellule de feuille Excel doit être un objet "Range" :

Dim maCell As Range

Ensuite pour attribuer un objet à une variable Objet il faut utiliser "Set" :

Set maCell = Range("A2") '(par exemple)

Dans votre cas ce n'est pas A2 la cellule mais "lblCell" & la valeur de Tableau(i) lors de la boucle :

Range("lblCell" & Tableau(i))

Ce qui peut donner :

Dim maCell As Range
Tableau = Split(Range("V4").Value, ";")
 For i= 0 to Ubound(Tableau)
 Set maCell = Range("lblCell" & Tableau(i))
 maCell.Interrior.Color = RGB(255,0,0)
 Next i

A condition qu'il existe bien une cellule nommée pour chaque "lblCell" testé lors de la boucle

Au pire mettre un On ErrorResume Next après le "DIM" afin de ne pas stopper l'exécution du code si une référence n'est pas trouvée.

Mais Attention ! Cela peut cacher d'autre erreurs, à utiliser avec parcimonie et en connaissance de cause.

@ bientôt

LouReeD

Bonjour,

Oui je suis d accord si il avait été question d une cellule. Alors oui j aurais utilisé range. Mais comme je l ai dit, il s agit d une étiquette (label)

Donc range me provoque aussi une erreur

Merci pour votre aide rapide, c est vraiment sympa

Fabian.

Bonjour,

OK j'ai lu trop vite !

Pour accéder aux shape d'une feuille, vous pouvez faire ceci :

Activesheet.Shapes("lblCell" & Tableau(i))

Ensuite les paramètres à mettre derrière vous pouvez les avoir en lançant l'enregistreur de macro...

@ bientôt

LouReeD

bizarrement ça ne fonctionne pas, par contre si je fait .select alors la il prend bien mes labels

et quand j utilise l enregistreur de macro, il indique tout sauf quand je vais sur la propriété pour changer la couleur.

dju quel casse tete ce truc, je crois qu au lieu d'utiliser les labels, je vais utiliser des cellules

un grand merci pour votre aide en tout cas, c est vraiment sympa

Bonjour,

Je commence à comprendre : vos labels sont des labels titrés du menu devellopeur, non ?

Avez vous essayé de faire la même chose mais en faisons "Insertion formes" en sélectionnant par exemple le rectangle coins arrondis ?

Ceux ci fonctionne avec le shape et on arrive à voir ce que nous faisons avec L'enregistreur.

De plus on peut leur affecter des macros...

A voir donc, mais hélas toujours sans fichier

@ bientôt

LouReeD

Rechercher des sujets similaires à "array nom etiquette"