[VB Excel] Syntaxe Error

Résolu
Bonjour,
J'aimerais savoir comment l'on peut donner un indice à une valeur; je m'explique.
Je veux faire une boucle ce coup-ci, avec une valeur d'incrémentation(logique huhu), à chaque tour de boucle, une valeure est mise dans une autre valeure. Les deux valeurs changent pour chaque "i" ^^.
Mon code "test" ressemble environ à ça :
Sub test()
for i = 1 to 3
valeur " & i & " = Range("B" & 5 + i & "")
MsgBox "" & valeur2 & " et " & valeur3 & ""
End Sub

Mais ce qui est souligné ne lui plait pas, comment faire pour avoir obtenir un nom de variable qui varie en fonction de "i" ??
Configuration: Windows XP Internet Explorer 6.0

12 réponses

  1. Contributeur
    Dim valeur(3)
    For i = 1 To 3
    valeur(i) = Range("B" & 2 + i & "")
    Next i
    MsgBox "v1=" & valeur(0) & " et v2=" & valeur(1) & " et v3=" & valeur(2)
    0
    1. Humpf -_-, pourquoi quand j'ai test avec valeur(i) en tatouillant ça me méttait une erreur et que là ça marche -__-

      Merci beaucoup Jjsteing =)
      Merci beaucoup beaucoup !
      J'peux enchainer sur une autre question ?
      ça existe un code qui modifie le texte d'un code ? par exemple? un code qui modifie le texte d'un code ?
      0
      1. Quel en est l'interet ?? Oui ca existe, mais autant faire un code qui agit plutot que de faire un code qui fait un code pour agir.

        C'est comme si la maitresse t'interrogeait a l'oral sur combien font 2+2 et que tu ecrit le resultat d'abord sur un papier pour le lire ensuite ...
        0
      2. Contributeur
        peut etre que tu ne déclarait pas Dim valeur(3) ... donc le tableau de la variable valeur;)
        0
    2. C'est super compliqué à expliquer ce que je veux réaliser >< , j't'explique l'objectif, tu va ptête comprendre.

      Imagine une colonne vierge ou tu peux mettre des valeurs bien spécifiques.
      Ensuite tu as un TdC, avec des valeurs aussi bien spécifiques du genres 1,2,3,4,5....9,10.
      Toi, ce que tu veux c'est que, lorsque tu tapes dans la colonne vierge, 5, 7 et 9 , bah le TdC cache toutes les valeurs sauf les trois rentrées.
      Donc j'avais pensé faire une boucle déterminant déja le bon nombre de valeurs écrites dans la colonne Et ensuite, celon le nombre de chiffre bah activer les pivotitems...sauf que pour activer les pivots items, bah faut savoir combien faut en laisser

      nblignes = Application.WorksheetFunction.CountA(Range("B6:B41"))
      Dim valeur(3)
      For i = 1 To nblignes
      valeur(i) = "806" & Sheets("Menu").Range("B" & 5 + i & "") & ""
      Next i
      par exemple pour nblignes = 3, (donc trois valeurs rentrées) bah je mets

      .PivotItems("" &valeur(1) & "").Visible = True
      .PivotItems("" &valeur(2) & "").Visible = True
      .PivotItems("" &valeur(3) & "").Visible = true
      et tous les autres "False", sachant que y'en a 300... tu vois l'idée ?
      Faudrais que je fasse varier le nombre de .PivotItems("" &valeur(1) & "").Visible = True qui s'écrive dans le code, en fonction de "nblignes"

      Chaud hein =D ou j'suis bête ??
      0
      1. Contributeur
        un un ptit :

        i=0
        do while i<41
        if valeur(i)="" then
        .PivotItems("" &valeur(i) & "").Visible = True
        i=i+1
        loop

        enfin, un truc de ce style.. j comprend pas tout ton code.. mais j suis sur que tu peux adapter ;)
        0
        1. " if valeur(i)="" then "
          Ah quoi ça sert ? j'suis sensé mettre quelque chose entreguillements ?
          0
          1. Contributeur
            nopn, c'est pour tester si il y a une valeur !!
            0
            1. Contributeur
              euh.. effectivement, ca serait plutot if valeur(i)<>"" then
              0
              1. J'me disais aussi =D

                <> renvoie à "différent de", j'le savais ça ! J'ai commencé sans rien savoir, et j'connais pas mal de truc now !
                (Aussi grâce à CCM ^^' ) Merci à toi ! Bouge pas j'sens que j'vais encore avoir une question là :p
                0
                1. Contributeur
                  lol, désolé.. c'est un bout de code glissé comme ca, sans test.. juste pour la forme de l'idée ;)
                  0
                  1. J'en est la larme à l'oeil :') ça marche, j'ai pas du tout pensé au Do While, et c'est une tuerie ce programme.
                    Je sais pas si c'est beaucoup mais ya 2500 lignes oO et c'est pas mal de boucles pour certains trucs !

                    J'te remercie beaucoup beaucoup JJsteing, et j'aimerais bien resté en contact avec toi, j'pense que tu peux beaucoup m'apprendre :x surveille tes MP pour les années à venir !!!
                    0