Intégrer une variable dans Sheets

Résolu
elsmador -  
 elsmador -
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. elsmador
     
    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 !
    0
  2. elsmador
     
    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.
    0