Bonjour Charles, Minick, le Forum
Hey, si vous étiez tous les deux en face de moi je vous taperai sur les doigts avec une règle carrée en alu !! (Mon prof de math agissait ainsi pour de bon....)
Le problème de base de ce fil vient de cette ligne de déclaration de variable qui est fausse... Dans 99% des cas on ne s'en appercoit pas, car çà passe, mais ici c'est un bon exemple car çà ne peut pas passer....
Exemple parfait de ce qu'il ne faut JAMAIS FAIRE :
Dim feuil1, feuil2 as Worksheet
Dans cette ligne de déclaration de variable ci-dessus, seule feuil2 est un objet WorkSheet, et feuil1 est variant.
J'ai déjà souvent expliqué ceci dans ce forum, mais c'est une mauvaise habitude que l'on prend vite, puisque on tape moins....
Donc en écrivant tes procédures avec passage d'argument d'objets de la sorte tout marche correctement :
Sub MainProc()
Dim WS1 As Worksheet, WS2 As Worksheet
With ThisWorkbook
Set WS1 = .Worksheets("Sheet1")
Set WS2 = .Worksheets("Sheet2")
End With
SubProc WS2
End Sub
Sub SubProc(Feuille As Worksheet)
With Feuille
.Cells.Interior.ColorIndex = 3
.Cells(1, 1) = Feuille.Name
End With
End Sub
Tu noteras, Charles que j'ai aussi essayé de répondre à ta dernière question, (pour autant que je l'ai comprise !) dans cette SubProc...
Bon Appétit
@+Thierry
PS : donc attention à vos doigts la prochaine fois !! lol