Erreur code VBA - Erreur 400

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

  • Creation plannings 20141.xlsm
    132 KB · Affichages: 61

tashiqi

XLDnaute Occasionnel
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 ...
 

mariaunaud35

XLDnaute Nouveau
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!
 

tashiqi

XLDnaute Occasionnel
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
 

mariaunaud35

XLDnaute Nouveau
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!
 

tashiqi

XLDnaute Occasionnel
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.
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16