Chercher une feuille ouverte

piwa

XLDnaute Occasionnel
Bonjour,

J'ouvre un fichier Excel de Suivi.
J'ouvre ensuite un fichier de données excel qui change de nom à chaque fois ou presque mais qui commence par LEAxxxxxxxxx.xls

J'ai, grace au forum, bricolé un bout de code qui fonctionne de façon aléatoire (bizarre d'ailleur), mais qui ne repond pas à mon attente.

Je voudrai que le classeur esclave soit celui qui commence pas LEA et que celui du suivi soit le maitre. Ensuite une fois les variiables recupérées je peux faire tourner la suite.

Sub LEA()

'Liste tous les fichiers ouverts en ce moment.

Dim Classeur_Maitre As String ' Suivi LEA V2.xls
Dim Classeur_Slave As String ' le fichier LEA issu du mail - Nom aléatoire
Dim Wb As Workbook

' Sécurité partir sur le bon fichier maitre
Windows("Suivi LEA V2.xls").Activate

Classeur_Maitre = ActiveWorkbook.Name

For Each Wb In Workbooks

Wb.Activate
Classeur_Slave = ActiveWorkbook.Name


Next Wb

Merci de votre aide
 

kjin

XLDnaute Barbatruc
Re : Chercher une feuille ouverte

Bonjour,
Aide vba
ThisWorkbook, propriété
Renvoie un objet Workbook qui représente le classeur dans lequel s'exécute le code de la macro en cours. En lecture seule.
Remarques
Utilisez cette propriété pour faire référence au classeur qui contient le code de votre macro
Donc, si la macro est comme je le suppose dans ton classeur "Maître", ne le cherche plus !
A+
kjin
 

piwa

XLDnaute Occasionnel
Re : Chercher une feuille ouverte

Bonjour,

Donc, si la macro est comme je le suppose dans ton classeur "Maître", ne le cherche plus !
A+
kjin

Merci déjà de ton message -

Par contre cela fonctionne parfois correctement donc je ne comprends pas. Sinon aurais tu une piste de solution ? par exemple affecter à la variable Classeur_Slave celui qui commence par LEAxxxxxx.

Merci
 

kjin

XLDnaute Barbatruc
Re : Chercher une feuille ouverte

Bonjour,
Il est quand même très rare de sélectionner ou d'activer qq chose en vba, mais bon
Code:
Trouve = False
Set wb1 = ThisWorkbook 'classeur maitre
classeur_maître = wb1.Name
For Each wb In Workbooks
    If wb.Name Like "LEA*" Then
        Set wb2 = wb 'classeur_esclave
        classeur_esclave = wb.Name
        Trouve = True
        Exit For
    End If
Next
If Not Trouve Then Exit Sub 'si pas de classeur_esclave
'Au choix s'il faut vraiment activer qq chose
Windows(classeur_maître).Activate
Windows(classeur_esclave).Activate
wb1.Activate
wb2.Activate
A+
kjin
 

Discussions similaires

Réponses
1
Affichages
658

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2