Ouverture de classeur conditionnée
r
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 Suble soucis est que cela ne fonctionne pas car la ligne :
Workbooks("CLASSEUR.xls").Close Trueest 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 SubCe 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 SubIl y a plus simple
r
Merci ,
Merci infiniment