Ouverture de classeur conditionnée

bonjour

j'ai ecris le code suivant assez simple qui consiste à ouvrir un classeur que si ce dernier contient une page nommée " toto" sinon il doit etre fermé.

j'ai une erreur du type " l'indice ne coresspond pas à la section " sans pour autant comprendre

voici le code :

Sub ouvrirclass()
Dim i As Integer

chemin = ThisWorkbook.Path
Workbooks.Open Filename:=chemin & "\CLASSEUR.xls"
With Workbooks("CLASSEUR.xls")
For i = 1 To Sheets.Count
If Sheets(i).Name <> "TOTO" Then
Workbooks("CLASSEUR.xls").Close True
End If
Next i
Exit Sub

'si la condition precedente est verifiée alors je sors du code  sinon j'ouvre mon classeur : 

Workbooks.Open Filename:=chemin & "\CLASSEUR .xls"
Sheets("TOTO").Select

End With
End Sub

le soucis est que cela ne fonctionne pas car la ligne :

Workbooks("CLASSEUR.xls").Close True

est surlignée en jaune avec l'indication " l'indice ne correspond pas à la selection"

Sauriez vous m'expliquez quelle est mon erreur dans le code ?

Merci à vous

Bonjour

Je trouve beaucoup d'erreur

Sub ouvrirclass()
Dim i As Integer

  chemin = ThisWorkbook.Path
  Workbooks.Open Filename:=chemin & "\CLASSEUR.xls"
  With Workbooks("CLASSEUR.xls")                      ' Inutile le Open sélectionne le classeur
    For i = 1 To Sheets.Count
      ' Regardes toutes les feuilles du classeur ouvert ("CLASSEUR.xls")
      ' Si la première page ne correspond pas
      ' On ferme le classeur "CLASSEUR.xls"
      ' Mais on continue car la boucle n'est pas finie
      ' Et si la page du classeur (Thisworkbook) ne s'appelle pas "TOTO"
      ' On va essayer de fermer le classeur "CLASSEUR.xls" qui est déjà fermé
      If Sheets(i).Name <> "TOTO" Then
        Workbooks("CLASSEUR.xls").Close True
      End If
    Next i
    Exit Sub

    'Tu ne viendra jamais ici
    'si la condition precedente est verifiée alors je sors du code  sinon j'ouvre mon classeur :

    Workbooks.Open Filename:=chemin & "\CLASSEUR .xls"
    Sheets("TOTO").Select

    End With
End Sub

Ce que j'aurais fait

Sub ouvrirclass()
Dim i As Integer

  chemin = ThisWorkbook.Path
  Workbooks.Open Filename:=chemin & "\CLASSEUR.xls"
    For i = 1 To Sheets.Count
      If Sheets(i).Name = "TOTO" Then Exit For
    Next i
    If i > Sheets.Count Then
      Workbooks("CLASSEUR.xls").Close True
      Exit Sub
    End If

    'si la condition precedente est verifiée alors je sors du code  sinon j'ouvre mon classeur :
    Sheets("TOTO").Select
End Sub

Il y a plus simple

Merci , je ne m'attendais pas à autant de modif ... il me reste encor du chemin à faire

Merci infiniment

Rechercher des sujets similaires à "ouverture classeur conditionnee"