|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 8 ![]() |
Bonjour,
J'essaie de copier toutes les feuilles d'un ensemble de fichiers Excel se trouvant dans un même répertoire, dans un fichier Excel de compilation contenant le code suivant. Malheureument il ne fonctionne pas comme prévu. Quelqu'un pourrait-il m'aider ? Merci ! Dimitri Code :
|
||
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour.
Ton code suppose que tous les fichiers sont ouverts. Est-ce le cas ?
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 8 ![]() |
Bonjour,
Non, au départ tous les fichiers à consolider sont fermés. Seul le fichier de consolidation (celui qui contient le code VBA) est ouvert. Je ne savais pas qu'il faut une manip pour les ouvrir car j'avais essayé mon code avec un seul fichier et ça marchait... Merci. Dimitri |
|
|
00
|
|
|
#4 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Non, il faut les ouvrir :
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
10
|
|
|
#5 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 8 ![]() |
Génial ! Ca marche nickel ! Dire que j'ai passé toute la journée là dessus !
Je ne sais comment te remercier ! ![]() Dimitri |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 8 ![]() |
Au risque d'abuser de ta gentillesse...
Maintenant, je cherche à compiler sur une feuille les informations en provenance d'autres feuilles (qui dont au départ étaient dans d'autres fichiers). Chaque feuille a la même structure : - la cellule B2 contient un nom de client - la plage A12-N23 contient des noms d'articles et le chiffre d'affaires par mois J'ai un code trouvé sur un forum qui boucle sur chaque feuille, récupère tout le contenu et colle ces infos à la suite des infos de la feuille précédente : Code :
Voici ce que je voudrais obtenir : +---+---+---+ |Jan|Fév|Mar|...etc +--------+--------+---+---+---+ |Client 1|Article1| 0| 20|500|...etc +--------+--------+---+---+---+ |Client 1|Article2| 1|100| 2|...etc +--------+--------+---+---+---+ |Client 2|Article1| 25| 0|120|...etc +--------+--------+---+---+---+ Merci de ton aide. Dimitri |
||
|
|
00
|
|
|
#7 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Tout dépend de la disposition de ton tableau initial. Où setrouvent les articles, où se trouvent les mois ?
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 8 ![]() |
Daniel,
Les articles sont colonne A; j'ai une catégorie d'articles colonne B puis les mois de janvier à décembre dans les colonnes C à N. Le 1er article commence ligne 12 et le dernier ligne 23 (sauf que j'ai des cellules A entre 12 et 23 qui sont vides) si il y a moins de 12 articles pour un client donné. Donc en gros je voudrais coller les plages non vides A12 à N23 entre mes colonnes B et M sur les premières lignes non vides du fichier de compilation et le nom du client sur les mêmes lignes, dans la colonne A. J'ai beaucoup de mal à comprendre comment manipuler tout ça ... |
|
|
00
|
|
|
#9 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Essaie (non testée) :
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 8 ![]() |
Bonjour Daniel et merci de ton aide.
J'ai copié ton code et en fait il s'arrête à la ligne Code :
A ce moment, "Ligne" est égal à zéro. Peut-être parce que j'ai quelques cellules vides avant mon tableau avec les clients/mois (?). Donc comment prendre en compte les lignes articles seulement à partir de la ligne 12 ? Merci |
||
|
|
00
|
|
|
#11 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
Au temps pour moi (je n'ai pas testé le code). Mets : Code :
Ligne = Range("B65536").End(xlUp).Offset(1).Row
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#12 | ||
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 8 ![]() |
Excellent, ça fonctionne !
Au final j'ai donc ce code : Code :
Merci. Dimitri |
||
|
|
00
|
|
|
#13 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Pourquoi as-tu modifié mon code :
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 8 ![]() |
Ah désolé, je pensis que comme il y avait une erreur sur une ligne similaire, c'était un doublon... désolé je ne connais pas grand chose à la programmation
Merci encore pour ton aide si efficace.
|
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Citation:
__________________
Cordialement. Daniel Citation:
|
||
|
00
|
Copyright © 2000-2012 - www.developpez.com