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
le code à la suite fonctionne je l'ai testé maintes fois.
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
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
Partager