VB nouveau classeur

Bonjour @ tous

une pitite question VB:

  • j'ai plusieurs classeurs ouverts
  • j'ai ecrit des tas de macro que je vais executer les unes apres les autres
  • la premier commence par
Workbooks.Add
    Sheets("Feuil1").Select
    Sheets("Feuil1").Name = "DATA"

et ainsi de suite, j'ajoute quarante-douze feuilles...

- puis je fais un tas de manip (mise en forme, copier coller, trier...) sur chacune des feuilles du classeur creer (qui s'appelle donc "classeur1" si et seulement si c'est le premier classeur que tu cree depuis l'ouverture d'excel

> > > et la mon soucis:

toutes mes macros se referent a "classeur1" puisqu'elles sont destinees a etre exe au meme moment par l'utilisateur

exemple de macro:

Sub copy_paste_from_database()
Dim Retour As Integer

    Retour = MsgBox("Are you sure Final_Base_Gymnasiade_2009.xls is open ?", vbYesNo + vbCritical + vbDefaultButton2)
    If Retour = vbYes Then
'
        Windows("Final_Base_Gymnasiade_2009.xls").Activate
        Range("B1:AS2500").Select
        Selection.Copy

        Windows("Classeur1").Activate
        Range("a1").Select
        ActiveSheet.Paste

        Range("a1").Select
        MsgBox ("Copy from database COMPLETED"), vbOKOnly, "Theodore"
       MsgBox ("Please make sure you close Final_Base_Gymnasiade_2009.xls"), vbOKOnly + vbInformation, "Theodore"
    End If   
End Sub

mais si cette personne avait deja creer un classeur, alors tous les codes ne marchent plus

d'ou ma question:

qu'elle est la facon de qualifier un classeur autrement que par son nom ou encore "activeworkbook"

j'ai essayer "lastactiveworkbook" ca marche pas.

sa qualification, en fait est: "dernier classeur creer"

Merci a tous ! ! !

j'ai fais un gros EDIT et j'ai mis unexemple de macro pour que ce soit plus parlant.

Set mon_classeur = Workbooks.Add

nom_mon_classeur = mon_classeur.Name

comme ça tu as le nom du classeur ou directement l'objet classeur

si tu veux un nom particulier tu doit enregistrer ce fichier

j'espère t'avoir aidé

si je comprend bien:

Set mon_classeur = Workbooks.Add
nom_mon_classeur = mon_classeur.Name

Workbooks.Add
    Sheets("Feuil1").Select
    Sheets("Feuil1").Name = "DATA"

puis:

 (...)
Windows("mon_classeur").Activate
        Range("a1").Select
        ActiveSheet.Paste (...) 

et ainsi de suite, meme si il n'est pas enregistre

en fait je prefere qu'il ne soit enregistrer qu'apres avoir exe toutes les macro (pour pouvoir le nommer genre rapport_date")

j'ai bien compris ou pas ?

ca marche paaaaaas ! ! !

au secours !

s'il vous plais expliquez moi l'explication ! ! !

Bonsoir,

Pas trop bien compris ta demande mais pourquoi tu ne nommes pas directement le classeur nouvellement créé ?

A te relire

Dan

je suis OK pour le nommer direct (sans donner le choix à l'utilisateur)

mais comment je fais ?

parce que j'ai essayer de machiner les

Set mon_classeur = Workbooks.Add
nom_mon_classeur = mon_classeur.Name 

mais ça marche pas

Merci @ tous pour vos suggestions.

voilà comment j'ai fais mon truc:

Public dernierClasseur As String

Sub add_workbook_rename_sheets()

    Workbooks.Add
    dernierClasseur = ActiveWorkbook.Name 

Rechercher des sujets similaires à "nouveau classeur"