|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() ![]() Étudiant Inscription : novembre 2011 Messages : 102 ![]() |
Bonjour à toutes et à tous !
Nouvelle sur le forum, vous pouvez m'appeler Kaera ! Mon problème est le suivant : J'ai un certain nombre de feuilles nommées numériquement (1, 2, 3 ,4...). Chaque feuille paire contient des infos que je veux copier et coller sur la feuille impaire qui la précède. Concrètement, en mots, ça donne par exemple : Sélectionner feuille 2 Copier "A1:D5" Sélectionne feuille 1 Coller sur "A1:D5" Sélectionner feuille 4 Copier "A1:D5" Sélectionne feuille 3 Coller sur "A1:D5" Etc. Voici mon code : Code :
Erreur "incompatibilité de type" sur l'utilisation du sh.Name Mod 2 ... Auriez-vous des solutions ? Je ne parviens pas à définir sh.Name comme variable Un grand merci d'avance. |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() |
Salut et bienvenu
Je procéderais plutôt comme ça Code :
++ Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() ![]() Étudiant Inscription : novembre 2011 Messages : 102 ![]() |
Bonjour Qwazerty !
Merci de ton accueil et merci pour ton aide. ![]() J'ai appliqué ton code dans ma macro mais il en résulte une erreur "La méthode Copy de la classe Range" sur : Code :
sh.Range("A25:D26").Copy ThisWorkbook.Worksheets(CStr(iName - 1)) Merci d'avance ! Kaera |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() |
Oupss
Code :
sh.Range("A25:D26").Copy ThisWorkbook.Worksheets(CStr(iName - 1)).Range("A25:D26") Code :
Feuil1.Range("A25:D26").Value = Feuil2.Range("A25:D26").Value Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() ![]() Étudiant Inscription : novembre 2011 Messages : 102 ![]() |
J'ai pensé à ce que tu as mis :
Code :
Feuil1.Range("A25:D26").Value = Feuil2.Range("A25:D26").Value J'ai appliqué la modification que tu m'as donnée mais j'ai une erreur "l'indice n'appartient pas à la sélection" sur la ligne : Set sh = ThisWorkbook.Worksheets(CStr(iName)) Merci d'avance |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() ![]() |
Décidément... je dis que des bêtises ce matin...
Code :
Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
||
|
|
10
|
|
|
#7 |
|
Membre du Club
![]() ![]() Étudiant Inscription : novembre 2011 Messages : 102 ![]() |
C'est dingue ! Ton code fonctionne impec puisque les copier/coller sont effectués exactement comme il faut mais il me pointe quand même la même erreur (indice qui n'appartient pas à la sélection) sur la ligne dont je t'ai parlé dans mon précédent message.
Pourquoi générer une erreur si pourtant le code est exécuté comme il faut ? Merci d'avance |
|
|
00
|
|
|
#8 |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
Parceque tu donnes en index un string ? vois : Code :
Set sh = ThisWorkbook.Worksheets("Feuil" & CStr(iName)) Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
00
|
|
|
#9 | |
|
Expert Confirmé Sénior
![]() ![]() |
Salut
@Ormonth: Possible, mais pourtant Citation:
Par contre comme je l'ai mis en commentaire dans le code n'est peut etre pas très heureux, il retourne le nombre total de feuille du classeur. Or, imaginons le cas suivant des feuilles numérotées de 1 à 10 plus 2 autre feuilles "Accueil" et "Options" renvoie 12 et donc dans la boucle Tente de faire référence à une feuille nommée "12"... qui n'existe pas. Sans connaitre les besoin exact, je ne sais pas quoi te proposer, le nombre d'onglets numériques est il fixe? L'erreur survenant à la dernière occurrence de la boucle For, ce qui explique que tous les autres onglets ont déjà été traités sans erreur ++ Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|
|
|
10
|
|
|
#10 | ||
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
@exact Qwazerty en adaptant ton code ainsi : Code :
Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
||
|
|
10
|
|
|
#11 |
|
Membre du Club
![]() ![]() Étudiant Inscription : novembre 2011 Messages : 102 ![]() |
Bonjour Ormonth, re Qwazerty,
Ca fonctionne à merveille ! ![]() Merci beaucoup à vous deux, et merci Ormonth pour les tuyaux, je découvre tout juste le forum et je n'ai pas encore acquis ces réflexes ! See ya ! |
|
|
00
|
|
|
#12 | ||
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
plus concis en mélangeant le tout.. à tester : Code :
Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
||
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() ![]() Étudiant Inscription : novembre 2011 Messages : 102 ![]() |
Re bonjour,
C'est ce que j'avais testé au tout départ, avant de venir chercher de l'aider sur le forum : mais ça me générait une erreur parce qu'il refusait le sh.Name utilisé avec un modulo. Si vous me le proposez, je suppose que la syntaxe est donc pourtant correcte ! Serais-je victime de discrimination de la part d'Excel ? Merci en tout cas
|
|
|
00
|
|
|
#14 | ||
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Non pas de discrimination Avant de faire le teste Ormonth a d'abord regardé si la nom de la feuille pouvait être interprété par VB comme étant numérique (IsNumeric). Par contre, si tu utilises For Next, cette ligne devient inutile Code :
Set sh = ThisWorkbook.Worksheets(sh.Name) Code :
Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
||
|
|
20
|
|
|
#15 |
|
Membre du Club
![]() ![]() Étudiant Inscription : novembre 2011 Messages : 102 ![]() |
J'aurais dû y penser ! (à IsNumeric)
Des membres qui prennent le temps d'expliquer clairement tout en étant agréables...j'y suis j'y reste !
|
|
|
20
|
Copyright © 2000-2012 - www.developpez.com