Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 VBA Connaitre l'index d'un classeur

Marcham

XLDnaute Junior
Bonjour,
Autant j'ai trouvé comment connaitre le nom des classeurs ouverts dans un ordinateur Windows avec
VB:
For I = 1 To Workbooks.Count
Workbooks(I).Activate
MsgBox "Le classeur " & Workbooks(I).Name & " est ouvert."
Next I
Autant je n'arrive pas à faire le contraire.
En fait, j'aimerai bien savoir comment connaitre l'index de certain classeurs ouverts.
J’ai bien compris que ces index sont incrémentés en fonction de leurs ordres d’ouverture et c’est justement ça qui m’intéresse. Je pourrais trouver ça en utilisant "I" dans la boucle ci-dessus. Mais ma préoccupation c'est de trouver une instruction plus directe.

Voici ce que j'ai déjà essayé :
Workbooks("LeNomDuClasseur").Index
Workbooks("LeNomDuClasseur").item

Merci d'avance, Marc
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous ,
Une piste :
VB:
Sub test()
Dim i As Long, monClasseur As String
   monClasseur = "toto.xlsm"
   For i = 1 To Workbooks.Count
      If LCase(Workbooks(i).Name) = LCase(monClasseur) Then Exit For
   Next i
   If i = Workbooks.Count + 1 Then MsgBox monClasseur & " n'est pas ouvert." Else MsgBox monClasseur & "  => Index = " & i
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Salut laPomme, je pense que tu as dû mettre la réponse pour quelqu'un dans ce post à tord.
Regarde ça de prêt afin que ta réponse soit utile à la personne concernée.
Bonne journée, Marc
Re,
Tu n'as donc pas examiné le code ou tout du moins pas entièrement compris.
Lis donc le post de @job75 et à sa lumière éclairante, parcours à nouveau le code de mapomme (et non laPomme) .

nota : Il est vrai que j'aurais pu expliquer le pourquoi du code comme l'a fait @job75.
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…