Bonjour à toutes et a tous
Je rencontre un problème avec with
J'ai une sub qui est appelée suite à un click sur un usf.
Je dois modifier 2 pages de facon identiques et plutot que d'ecrire 2 fois le code j'ai écrit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub insert_controles()
'dim des variables
texte_lbdis = usf2.lbdis
der_col = Cells(3, Cells.Columns.Count).End(xlToLeft).Column 'derniere colonne
der_el = Range("a1").End(xlDown).Row ' indice dernier eleve
cont_maj = Sheets("feuil1").Range("l2") ' indice des controles
Dim sh As Worksheet
nf = "Comment"
'maj indice controle
cont_maj = cont_maj + 1
For Each sh In ThisWorkbook.Worksheets
    If sh.Name = (mat) & (tr) Or sh.Name = (nf) & (tr) Then
        With sh
'detection de "c" 1ere colonne de la discipline active
 
With sh.Range(Cells(3, 2), Cells(3, der_col))
  Set Cible = .Find(texte_lbdis, lookat:=xlWhole)
  End With
   'Cible.Select
c = Cible.Column
le code à la suite fonctionne je l'ai testé maintes fois.
Par contre lors de la boucle lorsque la 1ere sh est appelée tout ce passe bien.
Mais lorsque arrive le tour de la 2ème ca plante sur la ligne 16 " la méthode range de l'objet worksheet a échoué".
Avant de lancer la sub la 1ere page est la page active.
si en debogage pas à pas j'active la 2éme le code s'effectue alors normalement. (je ne sais pas si je suis assez clair !)
si je supprime le sh. devant range (cells ....) le code se répéte 2 fois sur la feuille qui est active
Elle est où l'erreur ?!
Merci de votre aide par avance