Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour,
J'aimerais réaliser en macro une boucle permettant de sauvegarder les
fichiers excel en utilisant des variables.
exemple en résumé
Code:
b1 = "Jeux1"
b2 = "Jeux2"
b3 = "Jeux3"
b4 = "Jeux4"
For x = 1 To 4
If ("b" & x) = "Jeux1" Then GoTo ici
If ("b" & x) = "Jeux2" Then GoTo ici
If ("b" & x) = "Jeux3" Then GoTo ici
If ("b" & x) = "Jeux4" Then GoTo ici
ici:
Sheets("b" & x).Select
ActiveWorkbook.SaveAs Filename:=("b" & x) & ".xls", FileFormat:=xlNormal
Run ("b" & x)
x = x + 1
Next x
Dand la première boucle ("b" & x) = b1 mais pas à Jeux1...comment faire pour que ("b" & x) corresponde à Jeux1?
Merci de votre aide
Re : Boucle permettant de sauvegarder les fichiers excel en utlisant des variables?
Salut Tarvel, Alyrio,
Comme le dis Alyrio, c'est vrai qu'un exemple serait certainement plus parlant. Cependant quelques questions tout de meme. Je ne comprends pas pourquoi tu utilises un Goto apres tes If puisque quelque soit le If, tu fais executer le meme code.
De plus tu mets x=x+1 a la fin de ton code, ce qui incremente donc x en plus de l'incrementation de la boucle, ce qui fais qu'au 1er tour de boucle, x vaut 1, au second, il vaut trois, et au 3ème, il vaut 5, donc on sort de la boucle. Je pense donc qu'il faut le supprimer.
J'ai modifier ton code afin d'eviter le Goto, mais comme je n'ai pas tout saisie, je ne suis pas sur que c'est ce que tu souhaites (la ligne de code en rouge permet de boucler sur ta variable b) :
Code:
Sub test()
[COLOR=red][B]b = "Jeux"[/B][/COLOR]
b1 = "Jeux1"
b2 = "Jeux2"
b3 = "Jeux3"
b4 = "Jeux4"
For x = 1 To 4
If (b & x) = "Jeux" & x Then
Sheets(b & x).Select
ActiveWorkbook.SaveAs Filename:=(b & x) & ".xls", FileFormat:=xlNormal
Run (b" & x)
'x = x + 1
End If
Next x
End Sub
Re : Boucle permettant de sauvegarder les fichiers excel en utlisant des variables?
tarvel à dit:
Bonjour,
J'aimerais réaliser en macro une boucle permettant de sauvegarder les
fichiers excel en utilisant des variables.
exemple en résumé
Code:
b1 = "Jeux1"
b2 = "Jeux2"
b3 = "Jeux3"
b4 = "Jeux4"
For x = 1 To 4
If ("b" & x) = "Jeux1" Then GoTo ici
If ("b" & x) = "Jeux2" Then GoTo ici
If ("b" & x) = "Jeux3" Then GoTo ici
If ("b" & x) = "Jeux4" Then GoTo ici
ici:
Sheets("b" & x).Select
ActiveWorkbook.SaveAs Filename:=("b" & x) & ".xls", FileFormat:=xlNormal
Run ("b" & x)
x = x + 1
Next x
Dand la première boucle ("b" & x) = b1 mais pas à Jeux1...comment faire pour que ("b" & x) corresponde à Jeux1?
Merci de votre aide
ce que je comprends
les noms des sauvegarde d'un jeux en B1, B2, B3, B4 d'une feuille et tu veux sauvegarder le classeur sous un de ces 4 noms suivant une variable, et continuer sur ta sauvegarde
je suppose que ton classeur à 2 feuilles, une avec les noms des sauvegardes, le chemin, etc. et que les noms servent de référence à une liste de la 2me feuille
2me feuille avec le jeu. Dans celle-ci tu as une liste de sauvegardes et quand tu en sélectionne une, tu sauvegardes, et tu continues sur la sauvegarde après avoir fermé le classeur en cours
Si c'est ça, manque des infos
Et la valeur d'une cellule, c'est : [Sheets("nom feuille").]Range("B" & x)
[] peut être omis ou remplacé par ActiveSheet
Donc si tu est sur la feuille "Jeux" et que tu veux la valeur de la cellule B3, ces codes sont équivalent:
Range("B3")
Range("B3").Value
ActiveSheets.Range("B3")
Sheets("Jeux").Range("B3")
en attendant plus de précissions
A+
PS : moi, si je sauvegardes un jeux, je continues sur le même et si j'ai recours à la sauvegarde, je sais où j'en étais.
Re : Boucle permettant de sauvegarder les fichiers excel en utlisant des variables?
Désolé de ne pas avoir été clair et merci tout de même de votre aide.
En fait j'ai une vingtaine de fichiers jeux.txt (provenant d'un première macro qui extrait les résultats d'un page web et les enregistre en fichier txt)
Grâce à la boucle je liste les différents fichiers Jeux.txt...qui lancent pour chacun d'entre eux un sub() et qui va "extraire" les infos utiles (comme la date,le jeux en question, les numéros gagnants etc...) dans un fichier résultat.xls.
Par un autre forum j'ai trouvé une solution pour lister les différents jeux et ça fonctionne.
Pour x=x+1..inutile puisqu'il incrémente en plus de la boucle effectivement (Merci porcinet82 )
Code:
Option Explicit
Option Base 1
Dim tablo(20)
For x = 1 To 20
tablo(1) = "Jeuxloto"
tablo(2) = "Jeuxplus"
tablo(3) = "Jeuxgain"
tablo(4) = "Jeux4"
etc...
tablo(20) = "JeuxFin"
If tablo(x) = "Jeuxloto" Then GoTo ici
If tablo(x) = "Jeuxplus" Then GoTo ici
If tablo(x) = "Jeuxgain" Then GoTo ici
If tablo(x) = "Jeux4" Then GoTo ici
etc..
If tablo(x) = "JeuxFin" Then GoTo ici
ici :
a = "C:\Jeux\" 'le path
C = (tablo(x)) & ".txt"
Workbooks.Open Filename:=a & C
Sheets(tablo(x)).Select
ActiveWorkbook.SaveAs Filename:=a & tablo(x) & ".xls", FileFormat:=xlNormal
Run tablo(x)
Next x
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD