Intégrer une variable dans Sheets

Résolu
Bonjour,

j'ai une liste de cellules avec du texte :
text1
text2
text3
text4
text5

J'ai aussi des onglets ayant exactement le même nom.

J'aimerais faire une boucle à partir de la variable k, mais je n'arrive pas à rentrer autre chose qu'une donnée en dur dans Sheets().

Voici ce que j'aimerais faire :

For j = 1 To 99
k = Sheets("X").Range("A" & j).Value ' (A1 --> A99 = "text1" --> "text99")
Set sh = Sheets(k)
...
...
...
Next j

Merci d'avance !

2 réponses

  1. Bon en fait, c'était une broutille qui n'a plus rien à voir avec le sujet ouvert...
    Il fallait que je réinitialise i à l'intérieur de la boucle j.
    1. Je vais poser mon code, ça permettra peut-être à quelqu'un de comprendre. En l'occurence, mettre une variable fonctionne, l'incrémentation fonctionne bien, mais le résultat n'est pas bon.

      Sub simul()
      
      Dim i, j As Integer
      Dim c, d, p, r As Single
      Dim k As String
      
      i = 3
      c = 0
      d = 0
      p = 0
      
      Set no = Sheets("Nono")
      
      For j = 5 To 12
          
          k = Sheets("Simulation").Range("A" & j).Value
          Set tr = Sheets(k)
          
          r = 0
          
          While no.Range("B" & i).Value <> ""
          
              If IsNumeric(no.Range("R" & i)) = True And no.Range("J" & i).Value < 15 And no.Range("R" & i).Value <> "" Then
                  
                  d = no.Range("R" & i).Value
                  p = no.Range("J" & i).Value
                  
                  Select Case p
                  Case Is < 1
                      c = tr.Range("E" & d + 1).Value
                  Case Is < 3
                      c = tr.Range("F" & d + 1).Value
                  Case Is < 5
                      c = tr.Range("G" & d + 1).Value
                  Case Is < 7
                      c = tr.Range("H" & d + 1).Value
                  Case Is < 10
                      c = tr.Range("I" & d + 1).Value
                  Case Is < 15
                      c = tr.Range("J" & d + 1).Value
                  End Select
                  
                  r = r + c
                  
              End If
              
              i = i + 1
          
          Wend
          
      Sheets("Simulation").Range("D" & j).Value = r
          
      Next j
      
      End Sub


      En l'occurence, je compare des prix sur des grilles tarifaires de 8 entreprises, mais voici le résultat que j'obtiens :

      - entreprise1 = 560000€
      - entreprise2 = 0€
      - entreprise3 = 0€
      - entreprise4 = 0€
      - entreprise5 = 0€
      - entreprise6 = 0€
      - entreprise7 = 0€
      - entreprise8 = 0€

      Et si je boucle de 6 à 12, j'aurai bien l'info concernant l'entreprise2, etc.
      Pourtant tout boucle bien, puisque si je fais un Sheets(k) à la fin de la dernière boucle, je me retrouve bien sur l'onglet entreprise8.

      Si quelqu'un comprend mon erreur, ça m'aiderait beaucoup !