Macro enregistrer, fermer, ouvrir

Résolu/Fermé
hebus888 - 18 mai 2011 à 12:01
 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.
A voir également:

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
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 mais je doit remplacer des données dans ton code et si oui lesquelles ???
0
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
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
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 !!
0

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
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
Super Mélanie, ça fonctionne nickel, merci beaucoup !!
0