fusion de feuilles Xls

alexsand6371

XLDnaute Nouveau
Bonjour à tous,
aprés avoir trouvé de l'aide pour un cumul de cellules, j'ai encore besoin de vos lumières pour regrouper des fichiers Xls. Voilà, j'ai plusieurs fichiers Excel (venant d'un matériel de pesée que je ne maîtrise pas), chaque classeur (cf. pj.) est constitué de la même façon : 1 feuille et 1 ligne, les colonnes sont absolument identiques, seuls les données et les "noms" changent; les fichiers sont tous dans un même répertoire;
Ma demande est assez simple, je voudrais récupérer chaque ligne de tous ces classeurs sur une nouvelle feuille dans un fichier de récupération ???
Par avance merci et n'hésitez pas à me demander des compléments d'info.
Cdlt.
 

Pièces jointes

  • bez1.xls
    154 bytes · Affichages: 44

Softmama

XLDnaute Accro
Re : fusion de feuilles Xls

Bonjour,

quelques questions :
* Les fichiers que tu dois regrouper se trouvent-ils tous dans le même répertoire ?
* Y a-t-il d'autres fichiers excel que ceux-ci dans le répertoire ?
* Portent-ils un nom particulier, (style bez1.xls, bez2.xls, bez3.xls... ?
 

Dranreb

XLDnaute Barbatruc
Re : fusion de feuilles Xls

Bonjour.
Comme ceci:
VB:
Sub Collecte()
Dim NomFic As String, L As Long
ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path & "\Doss"
NomFic = Dir("*.xls")
L = 1 ' (Titres)
While NomFic <> ""
   Workbooks.Open NomFic
   L = L + 1
   Feuil1.Rows(L).Value = ActiveSheet.Rows(1).Value
   ActiveWorkbook.Close
   NomFic = Dir: Wend
End Sub
Cordialement
 

alexsand6371

XLDnaute Nouveau
Re : fusion de feuilles Xls

Bonjour Softmama,
A tes questions :
* oui, les fichiers sont dans un même répertoire
* non, seuls les fichiers à regrouper sont dans ce répertoire
* oui pour les noms, puisque certains se nomment "bez1.xls" "bez2.xls" (voire 3 ou plus) et d'autres "pez1.xls" ou plus et "med.xls"
J'espère que tout est clair
Cdlt
 

Softmama

XLDnaute Accro
Re : fusion de feuilles Xls

re,

Ben la solution de Dranreb me paraît bonne. Il faut juste penser pour l'adapter à modifier dans sa macro :
* remplacer Doss par le vrai nom du répertoire où sont situés les fichiers à extraire.
* Sauvegarder ton fichier de récap dans le répertoire parent des fichiers à extraire.

Par exemple si tes fichiers à extraire sont à l'adresse :
C:\Excel\Perso\TrucsDeOuf\Houlala\MesFichiers,
il faudra placer ton fichier récap en C:\Excel\Perso\TrucsDeOuf\Houlala
 

Dranreb

XLDnaute Barbatruc
Re : fusion de feuilles Xls

Quel est le chemin de "NomFic = Dir ("*.xls") est ce le nom du premier fichier
Non. En l'absence de chemin spécifié au Dir il prend bien évidemment le répertoire courant.
C'est donc au ChDir qu'il faut le préciser.
À remarquer que même si on précise le chemin, Dir ne renvoit que des noms de fichiers sans le chemin. Alors pour ne pas avoir à préciser ce chemin à chaque Open, autant se servir du répertoire courant puisque ça existe, non ?
et comment fonctionne ton code ?
Bien. Il devrait bien fonctionner.

J'ai quand même fait F1, à votre place sur ChDir, et j'ai obtenu:
ChDir, instruction


Change le répertoire ou le dossier courant.

Syntaxe


ChDir path

L'argument path est une expression de chaîne identifiant le répertoire ou le dossier devenant le nouveau répertoire ou dossier par défaut. L'argument path peut préciser le lecteur. Si aucun lecteur n'est indiqué, ChDir change le répertoire ou le dossier par défaut du lecteur courant.

Remarques

L'instruction ChDir change le dossier par défaut mais pas le lecteur par défaut. Par exemple, si C est le lecteur par défaut, l'instruction ci-dessous change le dossier par défaut sur le lecteur D, mais C reste le lecteur par défaut :

ChDir "D:\TMP"

Sur le Power Macintosh, le lecteur par défaut devient le lecteur spécifié dans le chemin path. Les spécifications complètes de chemin d'accès commencent par le nom de volume et les chemins d'accès relatifs commencent par deux points :)). ChDir trouve une solution pour les alias spécifiés dans le chemin d'accès :

ChDir "MacDrive:Tmp" ' Sur le Macintosh.

Notez que lors des modifications apportées aux dossiers, les symboles utilisés sont différents sur Macintosh et Microsoft Windows :

ChDir ".." ' Remonte d'un dossier dans Microsoft Windows.
ChDir "::" ' Remonte d'un dossier sur le Macintosh.
Faites F1 pour chaque mot des instructions jusqu'à ce que vous comprenez comment ça marche. Pour Feuil1, il faudrait regardez à CodeName qui donne:
CodeName, propriété
Voir aussi S'applique à Exemple Spécificités
Cette propriété renvoie le nom de code de l'objet. Type de données String en lecture seule.

Remarque La valeur qui apparaît dans la cellule affichée à droite de (Nom) dans la fenêtre Propriétés correspond au nom de code de l'objet sélectionné. Au moment de la création, vous pouvez changer le nom de code d'un objet en modifiant cette valeur. Il est toutefois impossible de modifier cette propriété par programmation au moment de l'exécution.

Notes
Le nom de code d'un objet peut être utilisé à la place d'une expression qui renvoie l'objet. Par exemple, si le nom de code de la feuille de calcul 1 est « Sheet1 », les expressions suivantes sont identiques :

Worksheets(1).Range("a1")
Sheet1.Range("a1")

Une feuille peut avoir un nom différent du nom de code. Lorsque vous créez une feuille, le nom de feuille et le nom de code sont identiques, mais la modification du nom de feuille n'est pas répercutée sur le nom de code, de même que la modification du nom de code (à l'aide de la fenêtre Propriétés de Visual Basic Editor) n'est pas répercutée sur le nom de feuille.

Exemple
Cet exemple montre comment afficher le nom de code de la feuille de calcul 1.

MsgBox Worksheets(1).CodeName
À+
 
Dernière édition:

Discussions similaires

Réponses
13
Affichages
682

Statistiques des forums

Discussions
312 370
Messages
2 087 688
Membres
103 639
dernier inscrit
NIEMASAFI