Affichage / Extinction de "shapes" en VB

Résolu/Fermé
collod - 12 juin 2010 à 22:36
 collod - 14 juin 2010 à 11:05
Bonjour,

Je tente de maitriser l'affichage ou l'extinction de "shapes" tres simples, dans un petit programme d'apprentissage du chinois en utilisant VB.

Mon Problème est le suivant:
Sur une feuille vierge, je dessine une ligne qui se numérote automatiquement en tant que "line 1" (je travaille avec Excel 2003 anglais (boulot))

J'ai construit cette petite macro, qui ne cherche qu'à afficher ou éteindre cette ligne 1
- elle refuse de tourner avec:
ActiveSheet.Shapes(TonVal).Visible (géneration d'une erreur sur cette ligne)
- mais elle tourne bien avec:
ActiveSheet.Shapes("1").Visible

Comme j'ai beaucoup de "line" ou "group", je tiens à conserver TonVal en variable.

Pas trouvé sur le Net un exemple similaire
=> Quelqu'un aurait-il une solution ?

============================
Sub Macro2()
'
' Macro2 Macro
' Macro recorded 11-06-2010 by mcollod
'
Dim tableauton(1 To 4, 1 To 4) As Integer
'Allocation des shapes
tableauton(1, 1) = "1"
tableauton(1, 2) = "35"
tableauton(1, 3) = "36"
tableauton(1, 4) = "39"
tableauton(2, 1) = "62"
tableauton(2, 2) = "66"
tableauton(2, 3) = "51"
tableauton(2, 4) = "50"
tableauton(3, 1) = "63"
tableauton(3, 2) = "67"
tableauton(3, 3) = "54"
tableauton(3, 4) = "60"
tableauton(4, 1) = "64"
tableauton(4, 2) = "68"
tableauton(4, 3) = "57"
tableauton(4, 4) = "61"

' extinction de tous les tons

For k = 1 To 4

TonVal = """" & tableauton(k, 1) & """"

MsgBox TonVal

ActiveSheet.Shapes("1").Visible = msoFalse 'choisir l'une des 2 lignes
' ActiveSheet.Shapes(TonVal).Visible = msoTrue

Next k

End Sub


A voir également:

2 réponses

centauria Messages postés 32 Date d'inscription samedi 5 juin 2010 Statut Membre Dernière intervention 18 juillet 2010 3
13 juin 2010 à 06:57
Salut
Sub Macro2()
'
' Macro2 Macro
' Macro recorded 11-06-2010 by mcollod
'
Dim tableauton(1 To 4, 1 To 4) As Integer
'Allocation des shapes
tableauton(1, 1) = 1
tableauton(1, 2) = 35
tableauton(1, 3) = 36
tableauton(1, 4) = 39
tableauton(2, 1) = 62
tableauton(2, 2) = 66
tableauton(2, 3) = 51
tableauton(2, 4) = 50
tableauton(3, 1) = 63
tableauton(3, 2) = 67
tableauton(3, 3) = 54
tableauton(3, 4) = 60
tableauton(4, 1) = 64
tableauton(4, 2) = 68
tableauton(4, 3) = 57
tableauton(4, 4) = 61

' extinction de tous les tons

For k = 1 To 4

TonVal = tableauton(k, 1)

MsgBox TonVal

'ActiveSheet.Shapes("1").Visible = msoFalse 'choisir l'une des 2 lignes
ActiveSheet.Shapes(TonVal).Visible = msoTrue

Next k

End Sub
0
Merci, centauria . C'est maintenant évident pour moi. J'ai l'esprit trop tordu....
Collod
0