FUSIONNER LES DONNÉES DES FEUILLES DE PLUSIEURS CLASSEURS EXCEL EN UN SEUL CLASS

jjDai Messages postés 291 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 13 mars 2015 - 23 mars 2010 à 21:40
deuxmains Messages postés 7 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 7 avril 2010 - 29 mars 2010 à 10:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51487-fusionner-les-donnees-des-feuilles-de-plusieurs-classeurs-excel-en-un-seul-classeur

deuxmains Messages postés 7 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 7 avril 2010
29 mars 2010 à 10:37
Bonjour,

dans le même ordre d'idée tu devrais forcer la déclaration des variables (option explicit)ta variable lastrow1 est devenue mastrow1

Je ne comprends pas non plus l'utilité des faire 3 variables lastrow alors qu'elle calcul la même chose

bonne prog
deuxmains
jjDai Messages postés 291 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 13 mars 2015
23 mars 2010 à 21:40
Bonjour
-------------------------------------
Il est délicat de travailler sur les objets courants.
Il suffit que l'utilisateur est la gâchette facile sur la souris, et le classeur que l'on croyait actif n'est plus le même et tout part en vrille.
Ceci est particulièrement vrai sur les traitement un peu long.

Plutôt que d'utiliser ActiveSheet ou cells directement,
Iil vaudrait mieux travailler sur des instances d'objet:
exemple:

dim wb as workbook
set wb = Workbooks.Open fichier 'ouverture d'un fichier
'et ensuite utiliser wb pour travailler sur ce classeur
'par exemple pour mettre une valeur dans une feuille:
wb.worksheets("nomDeLaFeuille").cells(1,1)= laValeur
ou
dim ws as worksheet
set ws=wb.worksheets("nomDeLaFeuille")
ws.cells(1,1)= laValeur

Attention si depuis Excel 2000 il y a bien 65536 lignes dans un classeurs, dans les versions antérieure il n'y en a que la moitié (Beaucoup d'applis Excel tournent encore sur des versions 97).

Toute les feuilles du classeur source sont traitées, quid des feuilles masquées par exemple ?
de plus c'est la collection Sheets qui est parcourue, mais dans sheets il peut y avoir d'autre type de feuilles: graphique, ancienne macro excel 4 (he oui y en a encore!!!) ...
Il est préférable de parcourir la collection worksheets, ou alors il faut tester le type de la feuille.

J'espère que ces remarques t'aideront à fiabiliser ce code.
JJDAI