Erreur code VBA - Erreur 400

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 !

mariaunaud35

XLDnaute Nouveau
Bonjour,

J'ai réussi à bidouiller un code VBA trouvé sur Internet. Tout fonctionne bien sauf que quand je lance ma macro le message "Erreur 400" apparait.

J'ai cherché tout ce que j'ai pu mais imposible de le résoudre.

Petite précision je n'y connait pas grand chose en VBA, je sais juste piquer le travail des autres et l'arranger pour mon utilisation...

Merci d'avance pour vos conseils!

Marion
 

Pièces jointes

Re : Erreur code VBA - Erreur 400

Ce qui pose problème c'est, je pense, cette ligne
Code:
For Each c In Sheets("Liste").Range("A2:A27" & Sheets("Liste").Range("A7").End(xlUp).Row)
En effet, tu fais un mix entre la détection de la dernière ligne, et l'entrée manuelle de cette ligne, et tu te retrouves avec une range trop grande (A2:A271). soit il faut la changer en
Code:
For Each c In Sheets("Liste").Range("A2:A27")
soit en
Code:
For Each c In Sheets("Liste").Range("A2:A" & Sheets("Liste").Range("A7").End(xlDown).Row)
soit en
Code:
For Each c In Sheets("Liste").Range("A2:A27" & Sheets("Liste").Range("A65000").End(xlUp).Row)
Mais dans ce dernier cas il faut vider la colonne A en dessous de ton tableau ...
 
Re : Erreur code VBA - Erreur 400

Super!

Tes deux premières propositions fonctionnent très bien! Toutes mes feuilles sont créées sans problème.

Merci pour ton aide et ta rapidité!

Je n'ai plus qu'à travailler sur un calendrier perpétuel et tout sera bouclé!

Encore merci!
 
Re : Erreur code VBA - Erreur 400

Pour précision,
Code:
For Each c In Sheets("Liste").Range("A2:A27")
aura un nombre d'entrées fixe, c'est-à-dire que si tu rajoutes des lignes à ton tableau, elle ne seront pas considérées, tandis qu'avec
Code:
For Each c In Sheets("Liste").Range("A2:A" & Sheets("Liste").Range("A7").End(xlDown).Row)
si tu rajoutes des lignes, elles seront prises en compte.

Bonne chance
 
Re : Erreur code VBA - Erreur 400

C'est plus ou moins ce que j'avais compris, c'est pourquoi j'étais partie sur la deuxième proposition.

C'est l'hisoire du Range("A7") que je n'arrive pas à comprendre, je ne vois pas ce qu'il fait là!

Encore merci pour tout!
 
Re : Erreur code VBA - Erreur 400

Tu as raison, prends celle-ci
Code:
For Each c In Sheets("Liste").Range("A2:A" & Sheets("Liste").Range("A1").End(xlDown).Row)
c'est plus propre
en fait, End(XXX) te permet d'aller à la fin de la section (ou quelque chose du genre), dans la direction précisée, aussi
Code:
For Each c In Sheets("Liste").Range("A2:A" & Sheets("Liste").Range("A7").End(xlDown).Row)
ne marche pas avec moins de 7 lignes, ce qui est facheux.
 
- 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

Discussions similaires

Réponses
11
Affichages
782
J
  • Question Question
Réponses
5
Affichages
963
J
E
Réponses
6
Affichages
863
ExcelNewbie96
E
Réponses
20
Affichages
2 K
L
Réponses
5
Affichages
2 K
Réponses
4
Affichages
892
M
Réponses
19
Affichages
2 K
A
Réponses
37
Affichages
4 K
asso78Lim
A
Retour