Macro enregistrer, fermer, ouvrir
Résolu/Fermé
A voir également:
- Macro enregistrer, fermer, ouvrir
- Audacity enregistrer son pc - Guide
- Ouvrir fichier .bin - Guide
- Enregistrer son ecran - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier rar - Guide
6 réponses
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
18 mai 2011 à 14:03
18 mai 2011 à 14:03
Bonjour,
Effectivement, il faut passer par une macro :
tu vas dans outils macro, visual basic editor, insertion module et tu colles ce code :
Sub enregistrer()
nomorigine = ActiveWorkbook.Name 'récupère le nom de ton classeur
x = 1
Do While x <= ActiveWorkbook.Sheets.Count ' va travailler jsuqu'à ce que tu as de feuilles
If x = 1 Then
Sheets(x).Copy 'si c'est la première, on copie dans un novueau classeur
nom = ActiveWorkbook.Name
Else
Sheets(x).Copy After:=Workbooks(nom).Sheets(x - 1) 'si la feuille n'est pas la première, on copie ces feuilles dans le novueau classeur
End If
Workbooks(nomorigine).Activate
x = x + 1
Loop
Workbooks(nomorigine).Activate
a = Sheets("feuil1").Cells(6, 3) ' on récupère la valeur de c6
b = Sheets("feuil1").Cells(6, 4) ' on récupère la valeur de d6
Workbooks(nom).Activate
ActiveWorkbook.SaveAs Filename:= _
"D:\Documents and Settings\" & a & "-" & b & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False 'on sauvegarde change le répertoire
ActiveWorkbook.Close 'on ferme le classeur que l'on vient de créer
End Sub
Effectivement, il faut passer par une macro :
tu vas dans outils macro, visual basic editor, insertion module et tu colles ce code :
Sub enregistrer()
nomorigine = ActiveWorkbook.Name 'récupère le nom de ton classeur
x = 1
Do While x <= ActiveWorkbook.Sheets.Count ' va travailler jsuqu'à ce que tu as de feuilles
If x = 1 Then
Sheets(x).Copy 'si c'est la première, on copie dans un novueau classeur
nom = ActiveWorkbook.Name
Else
Sheets(x).Copy After:=Workbooks(nom).Sheets(x - 1) 'si la feuille n'est pas la première, on copie ces feuilles dans le novueau classeur
End If
Workbooks(nomorigine).Activate
x = x + 1
Loop
Workbooks(nomorigine).Activate
a = Sheets("feuil1").Cells(6, 3) ' on récupère la valeur de c6
b = Sheets("feuil1").Cells(6, 4) ' on récupère la valeur de d6
Workbooks(nom).Activate
ActiveWorkbook.SaveAs Filename:= _
"D:\Documents and Settings\" & a & "-" & b & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False 'on sauvegarde change le répertoire
ActiveWorkbook.Close 'on ferme le classeur que l'on vient de créer
End Sub
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
18 mai 2011 à 15:43
18 mai 2011 à 15:43
Re,
Tu dois changer "feuil1" par le nom de la feuille ou se positionne tes cellules c6 et d6
tu dois changer :
D:\Documents and Settings\ par le répertoire ou tu veux qu'il soit enregistré.
Sinon c'est tout
Tu dois changer "feuil1" par le nom de la feuille ou se positionne tes cellules c6 et d6
tu dois changer :
D:\Documents and Settings\ par le répertoire ou tu veux qu'il soit enregistré.
Sinon c'est tout
Super !! ça fonctionne !!!
Le seul (minuscule) problème c'est qu'après l'exécution de cette macro, j'aimerais que le classeur A se retrouve à son état d'origine, c'est à dire tel qu'il était avant que j'y inscrive des valeurs dans ces fameuses cellules.
Si tu as la soluce c'est cool mais dans tous les cas un grand merci à toi !!
Le seul (minuscule) problème c'est qu'après l'exécution de cette macro, j'aimerais que le classeur A se retrouve à son état d'origine, c'est à dire tel qu'il était avant que j'y inscrive des valeurs dans ces fameuses cellules.
Si tu as la soluce c'est cool mais dans tous les cas un grand merci à toi !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
18 mai 2011 à 16:19
18 mai 2011 à 16:19
Pour affacer les données dans tes cellules, il suffit de rajouter ca avant le end sub :
Sheets("feuil1").Cells(6, 3) =""
Sheets("feuil1").Cells(6, 4) =""
Sheets("feuil1").Cells(6, 3) =""
Sheets("feuil1").Cells(6, 4) =""