Problème de boucle pour macro excel

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

J'ai une macro de créer pour un classeur Excel. Cette macro sauvegarde des fichier Excel selon des noms qui se trouvent dans les rangées d'une liste.

Mon problème est que cette macro dois ce faire pour une soixantaine de lignes et que je ne veux pas tout faire à la main.

J'ai donc essayé avec une boucle "for", mais je n'arrive à rien. La macro en tant que telle fonctionne très bien, par contre la boucle n'avance pas. x devrait prendre la valeur 2 dans Dx, Ex et Fx, mais rien ne se passe.

Voici ma macro actuelle:

Sub Sauvegarde_Fichiers()

Dim x As Integer
For x = 2 To 61

Range("A1").Select
ActiveCell.Formula = "=Liste!Dx"

'Sauvegarder le fichier dans le répertoire sous le nom contenu en A1
Chemin = ActiveWorkbook.Path
Fichier = Cells(1, 1).Value
ActiveWorkbook.SaveAs Filename:=Chemin & "\" & Fichier & ".xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

Next x

End Sub

Merci beaucoup.
A voir également:

2 réponses

Albert
 
Bonjour
J'essaye de résumer:

Les noms de fichiers se trouvent entre A1 et A62 ?
x devrait prendre la valeur 2 dans Dx, Ex et Fx, mais rien ne se passe
: rien n'est exprimé en fonction de x (je ne vois pas de Ex ou Fx), sauf dans
ActiveCell.Formula = "=Liste!Dx"
mal écrit et qui sert à quoi ?
tu veux simplement enregistrer des fichiers (vides!) dont le nom provient des cellules A1 à A62?

Apportes quelques éclaircissements et la solution n'est pas loin!
A+
0
Utilisateur anonyme
 
Hum, merci Albert, je m'appercois que mon problème n'est pas vraiment clair.

Alors voici.

Mon classeur Excel a deux feuille, une nommée "BAREME" et une autre nommé "Liste"
Ce que j'essais de faire, c'est de prendre le premier nom qui se trouve dans la plage D2:D61 de la feuille "Liste", de le copier dans la cellule A1 de la feuille "BAREME" puis d'enregistrer le fichier sous le nom qui ce trouve dans la cellule A1 de la feuille "BAREME".

Maintenant, je dois faire ces étapes pour chacun des noms contenus dans la plage D2:D61 de la feuille "Liste"

Merci beaucoup,

RR
0
Albert
 
Je comprend mieux.

Voila qui doit répondre à ta question:

Sub Sauvegarde_Fichiers()

Dim i As Integer '(dans les indices de boucle on met de préférence les lettres i,j,k...)

For i = 2 To 61

' on copie dans les cellules A1 à A60 de la feuille "bareme" les valeurs r des cellules D2 à D61 de la feuille "liste"

Worksheets("BAREME").Cells(i - 1, 1).Value = Worksheets("Liste").Cells(i, 1).Value

'Sauvegarder le fichier dans le répertoire sous le nom contenu en A1
Chemin = ActiveWorkbook.Path
Fichier = Worksheets("BAREME").Cells(i - 1, 1).Value
ActiveWorkbook.SaveAs Filename:=Chemin & "\" & Fichier & ".xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

Next i

End Sub

les lignes en italiques sont des explications(?) ou plutot commentaires.
Je ne suis pas sur que la plage D2 à D61 de la feuille liste doit être copiée intégralement dans bareme .
Si ce n'est pas le cas, ou si tu ne comprend pas tout , fais signe .

A+
0
Utilisateur anonyme
 
Je te remercie.

J'ai modifier une ou deux choses, mais le tout fonctionne très bien.
Merci encore, je vais épargner beaucoup de temps comme ça.

RR
0