Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur 1004 avec Private Sub

1 réponse
Avatar
Vince
Bonjour

J'ai écrit une longue macro dans module standard que j'ai transférée ensuite
sur un bouton.

Comme le code me fait changer de feuille (la plupart des exécutions se font
sur une feuille différente de celle où se trouve le bouton),les fonctions du
genre
Range("A1").Select
ne fonctionnent plus et génèrent une erreur 1004. J'ai lu sur ce forum qu'il
fallait rajouter ActiveSheet. devant ces codes.

Le problème est que l'erreur 1004 se passe sur presque toutes les lignes et
j'aimerais savoir si je peux écrire une ligne de code au début de la macro
pour empêcher cela et qui agisse sur toutes les lignes chaque fois que je
change de feuille.

Par exemple ces lignes ne fonctionnent plus non plus:
For i = Range("A1001").End(xlUp).Row To 1 Step -1
If Range("A" & i) = Empty Then Rows(i).Delete Shift:=xlUp
Next

C'est vraiment très embêtant, j'ai pas envie de retaper tout le code. Je
trouve fou qu'Excel ne comprenne pas ces instructions dans le mesure où je
précise bien
Sheets("Traitement").Select
Cela me paraît logique que la suite des instructions concerne la feuille
"Traitement" et pas une autre... enfin...

Est-ce que quelqu'un pourrait m'aider svp?

Merci d'avance et bonne journée.
Vince

1 réponse

Avatar
JPMonnier
bonjour,
avant ton instruction, du dois passer par sheets("xxx").

For i = Activesheet.Range("A1001").End(xlUp).Row To 1 Step -1...
ou
For i = Sheets("xxx").Range("A1001").End(xlUp).Row To 1 Step -1...
ou
Set FE = Sheets("xx")
For i = FE.Range("A1001").End(xlUp).Row To 1 Step -1...
il faut bien qu'Excel sache sur quelle Sheets il doit faire ton opération

--
Cordialement

"Vince" a écrit dans le message de
news:
Bonjour

J'ai écrit une longue macro dans module standard que j'ai transférée
ensuite
sur un bouton.

Comme le code me fait changer de feuille (la plupart des exécutions se
font
sur une feuille différente de celle où se trouve le bouton),les fonctions
du
genre
Range("A1").Select
ne fonctionnent plus et génèrent une erreur 1004. J'ai lu sur ce forum
qu'il
fallait rajouter ActiveSheet. devant ces codes.

Le problème est que l'erreur 1004 se passe sur presque toutes les lignes
et
j'aimerais savoir si je peux écrire une ligne de code au début de la macro
pour empêcher cela et qui agisse sur toutes les lignes chaque fois que je
change de feuille.

Par exemple ces lignes ne fonctionnent plus non plus:
For i = Range("A1001").End(xlUp).Row To 1 Step -1
If Range("A" & i) = Empty Then Rows(i).Delete Shift:=xlUp
Next

C'est vraiment très embêtant, j'ai pas envie de retaper tout le code. Je
trouve fou qu'Excel ne comprenne pas ces instructions dans le mesure où je
précise bien
Sheets("Traitement").Select
Cela me paraît logique que la suite des instructions concerne la feuille
"Traitement" et pas une autre... enfin...

Est-ce que quelqu'un pourrait m'aider svp?

Merci d'avance et bonne journée.
Vince