Erreur1004+boucle sur onglets

  • Initiateur de la discussion Initiateur de la discussion Tim12
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

Tim12

Guest
Bonjour tout le monde,

Je débute à peine en vba et j'ai besoin de votre aide svp pour 2 petites choses :

- En executant ma macro j'ai un message d'erreur qui dit :
"Erreur d'execution 1004
erreur définie par l'application ou par l'objet"

Le souci est que le code en lui même est bon parcque je l'ai testé dans un nouveau classeur en faisant un copier/coller de mes données et la pas de problème ça marche.

-La deuxième chose et que j'aimerai par la suite appliquer cette macro sur plusieurs onglets (ici appliquée sur "AMER") excepté quelques uns mais je ne sais pas comment faire.

Voici mon code


Code:
Sub rdt()

Dim i As Integer
Dim nbcase As Integer
Dim cel As Range

Sheets("AMER").Select

Set cel = Cells(4, 1)
nbcase = cel.End(xlDown).Row
For i = 4 To nbcase
Cells(i, 5).Select
ActiveCell.FormulaR1C1 = "=(RC[-3]-R3C2)/R3C2"
Next i

End Sub

Merci
 
Re : Erreur1004+boucle sur onglets

Bonsoir Tim12,

Il n'est pas utile de définir 'cel' comme cellule, tu peux la référencer directement :

Sub rdt()

Dim i As Integer
Dim nbcase As Integer

Sheets("AMER").Select

nbcase = Cells(4, 1).End(xlDown).Row
For i = 4 To nbcase
Cells(i, 5).Select
ActiveCell.FormulaR1C1 = "=(RC[-3]-R3C2)/R3C2"
Next i

End Sub

Par ailleurs, si tu as un nombre de lignes qui dépasse 32768, il vaut mieux définir i et nbcase en type 'Long' au lieu de 'Integer', sinon tu obtiendras une erreur.

Cordialement.
 
Re : Erreur1004+boucle sur onglets

Bonsoir,

D'accord sur le fond avec papou-net, en particulier sur i en tant qu'integer.(Mais cela vient peut être du code utilisé pour définir nb)

En ce qui concerne l'utilisation du code sur plusieurs onglets tout dépend comment tu l'appelles ?
Une solution simple s'il est appelé depuis la feuille où tu veux l'appliquer : supprimer toute référence à la feuille en cours; Par exemple :
Code:
 Sub rdt()
Dim i As Integer
Dim nbcase As Integer

nbcase = Cells(4, 1).End(xlDown).Row
For i = 4 To nbcase
Cells(i, 5).Select
ActiveCell.FormulaR1C1 = "=(RC[-3]-R3C2)/R3C2"
Next i
End Sub
Cordialement
 
Re : Erreur1004+boucle sur onglets

Bonsoir et merci pr vos réponses, mais en fait l'erreur ne provient apparemment pas du code car l'ayant appliqué ailleurs sur un nouveau classeur (dans le but de le tester) et bien pas de souci, la calcul se fait(alors que dans mon classeur j'ai le message d'erreur....)
Pour ce qui d'appliquer la macro sur certains onglets je m'explique:
j'ai une centaine d'onglets qui ont la même presentation,et je souhaite effectuer le même calcul sur la plupart des onglets, en l'occurrence le calcul défini ds ma sub rdt().Il suffit en théorie d'ajouter dans ma macro une boucle qui parcours tous les onglets excepté quelques uns mais je ne sais pas commentfaire...

Mercii
 
Re : Erreur1004+boucle sur onglets

Bonjour à tous,

Una autre petite précision :

Pour améliorer la rapidité de la boucle, on peut éviter de sélectionner les cellules en les affectant directement comme ci-dessous :

Sub rdt()
Dim i As Integer
Dim nbcase As Integer

nbcase = Cells(4, 1).End(xlDown).Row
For i = 4 To nbcase
Cells(i, 5).FormulaR1C1 = "=(RC[-3]-R3C2)/R3C2"
Next i
End Sub

Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
Réponses
9
Affichages
1 K
M
Réponses
0
Affichages
948
Maad84
M
L
  • Question Question
Réponses
7
Affichages
1 K
L
P
Réponses
2
Affichages
974
G
Réponses
7
Affichages
1 K
gfgghbhg
G
Retour