Re Bonjour Famu
Et dans le cas où tu voudrais faire quelque chose de plus abouti....
Sub Testing()
Dim WB As Workbook
Dim WS As Worksheet
Dim TheBookName As String, TheSheetName As String
TheBookName = ActiveCell.Value
TheSheetName = ActiveCell.Offset(0, 1)
If Right(TheBookName, 4) <> ".xls" Then TheBookName = TheBookName & ".xls"
On Error GoTo ErrorHandler1
Set WB = Workbooks(TheBookName)
On Error GoTo ErrorHandler2
Set WS = WB.Worksheets(TheSheetName)
WS.Activate
Exit Sub
ErrorHandler1:
If Err = 9 Then
MsgBox ("le Fichier " & TheBookName & " n'est pas ouvert")
End If
Exit Sub
ErrorHandler2:
If Err = 9 Then
MsgBox "La feuille " & TheSheetName & " n'existe pas dans le classeur " & TheBookName
End If
End Sub
Explication :
Ce code va tenter d'activer le Classeur dont le nom se trouve dans la cellule active, si ce nom ne contient pas l'extention ".xls", il sera automatiquement ajouté.
Ce code par ailleurs va également tenter d'activer la feuille dont le nom se trouve dans la cellule à droite de la cellule active.
Si ces deux cellules ne retournent pas de valeur la procédure est stoppée.
En plus j'ai ajouté deux gestions d'erreurs :
1) si le nom en cellule active ne retourne pas un nom de classeur ouvert.
2) si le nom à droite de la cellule active ne retourne pas un nom de feuille valide dans le dit classeur.
En espérant t'éclairer, car le "Windows(val).Activate" n'est pas vraiment interressant pour travailler en multi-classeurs ouverts.
Bon Aprèm
@+Thierry