Affichage / Extinction de "shapes" en VB

Résolu
collod -  
 collod -
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

2 réponses

  1. centauria Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   3
     
    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
  2. collod
     
    Merci, centauria . C'est maintenant évident pour moi. J'ai l'esprit trop tordu....
    Collod
    0