USF : macro innéficace selon feuille active

Bonsoir

En fin de macro, j'ai une partie de celle-ci qui ne se réalise pas (le reste fonctionne bien) si je suis sur une autre feuille.

With Feuil17
On Error Resume Next
Rows([01:0500].Find(TextBox37.Value).Row).EntireRow.Delete
End With
    ListBox1.Clear
    MsgBox " blablabla"

Par contre tout fonctionne si je suis déjà sur la feuille 17 ....

Merci d'avance

Bonjour,

ton With ne sert à rien écrit comme cela ...

l'instruction With permet d'éviter de répéter le "chemin" d'une variable, mais tu dois signaler les endroits ou tu simplifie l'écriture en plaçant un point .

ainsi par exemple :

ThisWorkbook.sheets("Feuil1").range("A1") = "Ecriture en cellule A1"
ThisWorkbook.sheets("Feuil1").range("A2") = "Ecriture en cellule A2"

équivaut as :

With ThisWorkbook.sheets("Feuil1")
   .range("A1") = "Ecriture en cellule A1"
   .range("A2") = "Ecriture en cellule A2"
end With

Alors qu'avec l'écriture :

  range("A1") = "Ecriture en cellule A1"
   range("A2") = "Ecriture en cellule A2"

c'est la feuille active qui est modifié .... donc cela peu facilement devenir aléatoire si tu ne maîtrise pas la feuille ouverte. On conseille aux débutant de bien préciser explicitement le classeur et la feuille sur laquelle intervenir pour éviter des erreurs de cibles .....

Bonjour Pierre

Et merci pour ces explications très explicites.

Bonne journée

Rechercher des sujets similaires à "usf macro inneficace feuille active"