Activer un fichier créé par la commanden Workbooks.add

  • Initiateur de la discussion Initiateur de la discussion Leskwal
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Leskwal

XLDnaute Occasionnel
Bonjour le forum

je plante sur une commande....

Je suis dans un dossier qu'on appellera toto.xls

Dans la première feuille, un bouton lance un module qui crer un nouveau fichier...

Ce que je souhaite :

Après la création, du workbooks, toto.xls reste en arrière plan, et le workbooks nouvellement créé devient actif (sachant qu'il peut prendre le nom automatique de classeur1, classeur2....).
Les nouvelles commandes du module s'appliqueront à ce workbooks...

J'espère avoir été clair. 😀

Voici en gros ce que je souhaiterais 😉

Code:
 ' ......Création du classeur et activation de celui-ci...   
   
 Workbooks.Add.Activate

' Cette commande ne fonctionne bien sûr pas mais voilà l'esprit de ce que je souhaite

D'avance un GRAND MERCI

Cordialement

Pascal
 
Re : Activer un fichier créé par la commanden Workbooks.add

Finalement, ma demande n'était pas aussi stupide. 😀

En effet, j'ai créé une macro et voilà ce que cela donne :

Code:
Sub aa()
'
' aa Macro
'

    Workbooks.Add
    Windows("Classeur4").Activate

End Sub

Cela ne marche pas, car comme je l'ai décrit dans ma demande précédente, le classeur peut s'appeler : Classeur4, Classeur5, Classeur6... et ça : comment le savoir... 😕

Merci

Pascal
 
Re : Activer un fichier créé par la commanden Workbooks.add

Bonsoir tous.
Bonsoir Staple1600 😉

Si j'ai bien compris la question de Leskwal, il s'agit de créer un nouveau classeur et de l'affecter comme "cible" à différentes procédures.

Il faut d'abord noter que la commande "Workbooks.Add" ne fait pas que créer un nouveau classeur : elle l'active aussi automatiquement

Pour affecter un nouveau classeur comme cible à des procédures différentes de celle qui l'a créé, on peut :
- créer une variable publique (bien que mon fils m'enguirlande chaque fois que je le fais : pour lui, un bon informaticien ne crée pas de variable publique ...), comme : "Public Actif As Workbook"
- déclarer que "Actif" est le nouveau classeur créé
- mettre "Actif" en "argument" aux procédures qui le concernent.

Exemple :
Code:
Option Explicit

Public Actif As Workbook

Sub Exemple()
    Dim Msg As String
    
    Workbooks.Add
    Set Actif = ActiveWorkbook
    
    Msg = "Le classeur contenant ce code est : " & ThisWorkbook.Name
    Msg = Msg & vbCr & vbCr
    Msg = Msg & "Le classeur cible qui vient d'être crée est : " & Actif.Name
    Msg = Msg & vbCr & vbCr
    Msg = Msg & "Voulez-vous rougir la cellue A1 de la feuille 1 du classeur nouvellement créé ?"
    If MsgBox(Msg, 52, "EXEMPLE") = vbNo Then
        MsgBox "Abandon !", 64, "EXEMPLE"
        Exit Sub
    Else
        Rougir_A1
    End If

End Sub

Sub Rougir_A1()
    Dim Msg As String

    Actif.Sheets(1).Range("A1").Interior.Color = RGB(255, 0, 0)

    Msg = "Le cellule A1 de la feuille 1 du classeur "" " & Actif.Name
    Msg = Msg & " "" a bien été rougie"
    MsgBox Msg, 64, "EXEMPLE"

End Sub

Penser, lorsqu'on n'a plus besoin de la variable publique "Actif" ou avant de fermer le classeur qui contient le code, à libérer cette variable :
Code:
Sub Liberer_Variable()
    Set Actif = Nothing
End Sub
 
Re : Activer un fichier créé par la commanden Workbooks.add

Après plusieurs tentatives, cela ne marche toujours pas. 😱

En fichier joint, un fichier exemple pour illustrer ma demande plus clairement.😀

UN très GRAND Merci d'avance

Pascal
 

Pièces jointes

Re : Activer un fichier créé par la commanden Workbooks.add

Désolé je n'avais pas rafraichi et donc n'avais pas vu la proposition de Lermiton.

Vu l'heure et mon état d'agacement je me pencherai sur ce @+*+*@ de problème demain...😀

Bonne nuit à tous et merci de vous êtes penchés sur mon problème.

Cordialement

Pascal
 
Re : Activer un fichier créé par la commanden Workbooks.add

Je n'ai pas pu résister....😀

Le code de Lermiton, fonctionne (Un bug sur la fin...mais pas grave) mais cela ne correspond pas tout à fait à ma demande...

Voir le Fichier TOTO.xls

Bon là, faut vraiment que j'aille reposer mes yeux 😎.

A demain

Et merci encore

Pascal
 
Re : Activer un fichier créé par la commanden Workbooks.add

Bonjour à tous,

peut être une autre solution ainsi, si j'ai bien compris, l'enregistrement se fera dans le répertoire courant :
Code:
Option Explicit
Sub test()
Dim wb As Workbook
Set wb = Workbooks.Add
wb.SaveAs ThisWorkbook.Sheets("NomFeuille").Range("F2").Value & ".xls"
End Sub

pour effectuer des actions sur le nouveau classeur, pas besoin de le nommer mais utiliser la variable "wb".

bonne journée
@+
 
Re : Activer un fichier créé par la commanden Workbooks.add

Bonjour à tous, Pierrot93

La solution de Pierrot93

Code:
Dim wb As Workbook
Set wb = Workbooks.Add

Semble très bien fonctionner dans le fichier exemple envoyé. 🙂

Je vais tester cela au boulot avec le vrai fichier.

Je vous tiens au courant.

Un grand MERCI pour le temps consacré à ma demande.

Cordialement

Pascal
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

R
  • Question Question
Réponses
2
Affichages
987
Rousseau Benoit
R
Retour