VBA changer de fenêtre

Bonjour au forum,

J'ai un fichier avec une barre d'outil Perso. (appelons-le "fichier de base")

J'ouvre un autre fichier.(appelons-le "fichier 2"), jamais le même .

La fenêtre active est "fichier 2".

Mon besoin :

A partir de la barre du "fichier de base", il faudrait que la macro prenne en mémoire le nom

du fichier actif (fichier 2), qu'elle éxécute une action dans "fichier de base", puis qu'elle

réactive à l'écran le "fichier 2" mémorisé.

Comment coder çà en VBA ?

Amicalement

Claude.

Bonjour,

La macro se trouve dans le fichier de base je suppose ?

Si je te comprends bien tu exécutes une action dans le fichier de base alors que c'est le fichier 2 qui est actif ?

Pour prendre en mémoire le fichier actif tu peux faire ceci :

Dim Wbk As Workbook
Set Wbk = ActiveWorkbook

A te lire

Dan

salut Dan,

oui tu as bien compris,

j'ai mis ce code, mais çà plante

Private Sub choix()  '''LISTE DEROULANTE
    Dim Wbk As Workbook
    Set Wbk = ActiveWorkbook
        Workbooks("Lexique_VBA_6.xls").Activate 'fichier de base
            Dim MonBtn As CommandBarComboBox, Valeur As String
                Set MonBtn = CommandBars("VBA").FindControl(, , "Liste")
                          Range("base!b3") = MonBtn.Text ''action
       Call cherche
                MonBtn.ListIndex = 1  ''revient au 1er de la liste
                Set MonBtn = Nothing
        Workbooks("Wbk").Activate ' ( c'est là qu'il faut revenir au "fichier 2")
End Sub

j'ai essayé : Workbooks("Wbk.xls").Activate <<<<<c'est pareil !

Je nage !!

Bon dimanche ...Claude.

Re,

Ok. Essaye plutôt ceci :

Dim Wbk As String
Wbk = ActiveWorkbook.Name
Workbooks(Wbk).Activate

A te relire

Dan

re,

çà coince toujours, je t'envoie le fichier.

https://www.excel-pratique.com/~files/doc/Lexique_VBA_6.xls

le fichier est daté d' avril 2005, ma pendule est déréglée !

à+....Claude.

re,

Tu n'as pas corrigé ton code comme je te l'ai indiqué, il te faut ceci -->

Workbooks(Wbk).Activate

Enlève les guillemets dans ton code.

A te relire

Dan

re,

OK çà marche.

maintenant, la "cerise" :

Sub cherche()
            Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
                 "criteres"), CopyToRange:=Range("vba!extrait"), Unique:=False ''' filtre élaboré
                    Range("VBA!a2") = Range("base!b3")
               Range("c2:c15").Copy Destination:=Range("b20") ''explications
    Range("b2:b10").Copy
End Sub

là je récupère b2:b10 , aurai-tu une combine pour ne copier que les cellules occupées,

(souvent b2 seule)

merci Dan

Claude.

PS: et si possible revenir directement dans le VBA éditeur ?

mais là j'en demande peu-être trop !

re,

là je récupère b2:b10 , aurai-tu une combine pour ne copier que les cellules occupées,

(souvent b2 seule)

EDITION : C'est possible en utilisant ce code -->

Range("B2", Range("B65536").End(xlUp)).Copy

et si possible revenir directement dans le VBA éditeur

Pourquoi veux-tu faire cela ?

Dan

re,

Pourquoi veux-tu faire cela ?

parce-que ce que j'ai copié, c'est pour coller dans le code en construction.(fichier 2)

mais c'est déjà bien comme çà.

Claude.

bonjour au forum,

pas de possibilité !

dommage.

à+...Claude.

Rechercher des sujets similaires à "vba changer fenetre"