Intégrer une variable dans Sheets
Résolu
elsmador
-
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 !
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 !
A voir également:
- Intégrer une variable dans Sheets
- Intégrer une vidéo dans un powerpoint - Guide
- Intégrer une liste déroulante dans excel - Guide
- Intégrer une signature sur word - Guide
- Comment intégrer un groupe whatsapp - Guide
- Intégrer un sommaire dans word - Guide
2 réponses
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.
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 !
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 !