Macro enregistrer, fermer, ouvrir

Résolu
hebus888 -  
 hebus888 -
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.

6 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  2. hebus888
     
    Merci mais je doit remplacer des données dans ton code et si oui lesquelles ???
    0
  3. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  4. hebus888
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  7. hebus888
     
    Super Mélanie, ça fonctionne nickel, merci beaucoup !!
    0