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

Messages postés
291
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
13 mars 2015
- - Dernière réponse : 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

Afficher la suite 
jjDai
Messages postés
291
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
13 mars 2015
-
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
deuxmains
Messages postés
7
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
7 avril 2010
-
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