Macro enregistrer, fermer, ouvrir

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.

Bonjour,

en gros tu veux écrire dans un classeur B fermé et à partir du classeur A.

  • Les cellules C6 et D6 sont situées dans quelle feuille du classeur A ?
  • Les cellules C6 et D6 vont vers quelles cellules et quelle(s) feuille(s) dans le classeur B ?

A te relire

En fait j'ouvre un classeur A (feuille 1) je rempli divers champs et 2 de ces champs (ex : C6 et D6) se retrouvent collées l'une à l'autre et séparées par le signe " - " afin de constituer le nom d'enregistrement du classeur B.

J'aimerais que le classeur B ne s'ouvre pas ou bien qu'il se referme immédiatement après ouverture.

J'aimerais aussi que le classeur A se ré-ouvre dans son état d'origine, c'est à dire vierge de toutes les données que j'aurais entrées au préalable.

Merci.

Re,

Le classeur B est disponible et se trouve dans le même répertoire que le classeur A ?

oui

re,

Code à essayer et à associer à un bouton par exemple :

Sub test()
'Macro Dan pour Hebus888 
Dim nom As String
With ThisWorkbook
nom = .Sheets("feuil1").Range("B6") & "-" & .Sheets("feuil1").Range("C6")
Workbooks.Open Filename:=.Path & "\" & "ClasseurB.xls"
End With
With ActiveWorkbook
    .SaveAs nom & ".xls"
    .Close
End With
End Sub

Amicalement

Merci.

Mais entre temps j'ai trouvé la solution :

Sub enregistrement()

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:= _

"C:\Users\Config\Documents\Essai macros\" & 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

Sheets("feuil1").Cells(6, 3) = ""

Sheets("feuil1").Cells(6, 4) = ""

End Sub

Si ça sert à qqun tant mieux et merci à tous !!

Rechercher des sujets similaires à "macro enregistrer fermer ouvrir"