Macro enregistrer, fermer, ouvrir [Résolu/Fermé]

- - Dernière réponse :  hebus888 - 18 mai 2011 à 16:47
Bonjour,

Je suis sous excel 2010 et j'ai un classeur A dans lequel je rempli des champs et j'aimerais qu'en cliquant sur un bouton (macro) le classeur (classeur B donc) s'enregistre avec les valeurs des cellules C6 et D6 séparées par - et que le nouveau classeur ne s'ouvre pas (ou se referme) tout en laissant le classeur A ouvert.

Travail à effectuer avec une macro.

J'espère avoir été assez clair et complet au niveau des infos et j'attends votre aide avec impatience !!

Merci.
Afficher la suite 

6 réponses

Messages postés
1513
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
117
0
Merci
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
0
Merci
Merci mais je doit remplacer des données dans ton code et si oui lesquelles ???
Messages postés
1513
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
117
0
Merci
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
0
Merci
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 !!
Messages postés
1513
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
117
0
Merci
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) =""
0
Merci
Super Mélanie, ça fonctionne nickel, merci beaucoup !!