Copier onglet de plusieurs fichiers d'un classeur Excel 2003

Résolu/Fermé
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015 - 15 févr. 2013 à 00:12
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015 - 17 févr. 2013 à 16:11
Bonjour, je dois copier une en dessous de l'autre des cellules A11:H55 (certaine lignes sont vide)d'onglets du même nom, il peut y avoir de 20 à 60 classeurs qui commencent tous par un mot identique,du même dossier.
On colle a partir de A6 dans le classeur de réception ,il est positionné normalement dans le dossier
Nul en V.B.A je fais ma macro en exécutant les fonctions d'excel 2003 je copie,trie,enlève les doublons et lignes vide.Cela est long et un risque d'erreur
J'ai essayer plusieurs macro copiée dans des forums (pour éviter de sortir et rentrer les classeurs) je n'arrive pas a les adapter
Ci quelqu'un peut me mettre une macro avec explications qui donne en plus le nombre de classeur copier.
JE LA REMERCIE A L'AVANCE

A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 15/02/2013 à 09:31
Bonjour,

Sans précisions de ta part, tu risque d'attendre longtemps une proposition

par ex. :
onglets du même nom oui, quel nom ?
qui commencent tous par un mot identique oui, quel mot ?
il est positionné normalement dans le dossier pourquoi "normalement"? dans le dossier le m^me que que les classeur source ?

que contient les plages A11: A55 ? pour cela
mettre un classeur source sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse


Michel
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
15 févr. 2013 à 10:40
Salut michel_m,

Désolé pour l'incruste, je n'ai pas rafraichi avant de me lancer... Sorry.

En tout cas : Sans précisions de ta part, tu risque d'attendre longtemps une proposition
même avis.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
15 févr. 2013 à 10:39
Bonjour,

Dans ce code, il y a tout un passage à adapter, car votre demande initiale manque cruellement de renseignements.......
Mais bon, p'têtre que ça fonctionne!..... mais pour le coup, ça fait turbiner mes méninges. J'prends une pause!
Option Explicit
'Sources :
    'http://excel.developpez.com/faq/?page=FichiersDir#BoucleFichiers
Sub MichelEliane()
Dim Chemin As String, Fichier As String, Feuille As String, MotCommun As String
Dim Cpt As Integer, DrLig As Long
Dim ClasseurRecap As Workbook, Wsh As Worksheet, FeuilRecap As Worksheet
Dim Temps

Temps = Timer
'ClasseurRecap = notre classeur de récap
Set ClasseurRecap = ThisWorkbook

'---------------------------- A ADAPTER :--------------------------------------
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
Set Wsh = ClasseurRecap.Sheets(2) 'Sheets(2) est une feuille du classeur
                              'Recap qui doit être vide!
                              'au besoin changer le num de cette feuille
Set FeuilRecap = ClasseurRecap.Sheets(1) 'Sheets(1) est la feuille du classeur de récap
                                     'dans laquelle tu souhaites regrouper tes données
Chemin = "C:\Documents and Settings\Utilisateur\Bureau\Nouveau dossier\" 'Chemin d'accès au répertoire
Feuille = "Feuil2" 'nom des feuilles des différents classeurs à  regrouper
MotCommun = "Classe" 'classeurs commencent tous par un mot identique mettre ici ce mot
'--------------------------- FIN ADAPTATIONS ---------------------------------
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

'Initialisation du compteur de fichiers traités
Cpt = 0
'Boucle sur tous les fichiers xls du répertoire.
Fichier = Dir(Chemin & "*.xls")
Do While Len(Fichier) > 0
    If Left(Fichier, Len(MotCommun)) = MotCommun Then
        'Incrémentation du compteur de fichiers
        Cpt = Cpt + 1
        ClasseurRecap.Names.Add "plage", RefersTo:="='" & Chemin & "[" & Fichier & "]" & Feuille & "'!$A$11:$H$55"
        With FeuilRecap
            DrLig = .Range("A" & Rows.Count).End(xlUp).Row + 1
        End With
        With Wsh
            .Range("A11:H55") = "=plage"
            .Range("A11:H55").Copy
            FeuilRecap.Range("A" & DrLig).PasteSpecial xlPasteValues
            .Range("A11:H55").Clear
        End With
    End If
    Fichier = Dir()
Loop
MsgBox Cpt & " fichiers ont été traités en : " & Timer - Temps & " secondes."
End Sub


En cas de difficulté d'adaptation, tu dis...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 15/02/2013 à 11:41
Bpnjour Frank

je pensais plutôt à employer ADO mais...
De toutes façons, vaut peut-^tre mieux attendre la réaction de Micheleliane, surtout si, comme il le dit, il est nul en VBA...

d'ailleurs, si on emploie ADO, il faudrait la version d'Excel
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
15 févr. 2013 à 11:16
Salut,

Oui, bien sur ADO doit fonctionner, certainement mieux que mon exemple. Cependant, je ne maîtrise pas cette technique du tout......
Je te laisse le sujet, puisque tu y es arrivé le premier.
En cas de souci avec mon code, je reste en suivi.
Merci à toi en tout cas.
A+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
15 févr. 2013 à 11:43
Je te laisse le sujet, puisque tu y es arrivé le premier.

non, non, de toutes façons guère de temps cet aprem.... :o)
0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
17 févr. 2013 à 16:04
MERCI cela fonctionne avec l'original mon exemple ne doit pas être bon
grâce a vous j'ai compris pourquoi il fallait tout préciser,car j'aurais quelques modification a faire
et devrais certainement demander de l'aide. A ce moment la je ferais mon possible pour un model et des explications adéquats.
MERCI a pijaku et michel_m ainsi que toute l'équipe cela a été très rapide de votre part
Probléme RESOLU
0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
17 févr. 2013 à 16:11
JE PENSAIS TAPER SUR LE BOUTON RESOLU

LE PROBLEME EST RESOLU

MERCI ENCORE
0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
15 févr. 2013 à 13:58
BONJOUR ET MERCI de toutes ces réponses
Je vais essayer de fournir des données correcte
Je me met au travail
excusez ma lenteur je fais de mon mieux
Pour ADO cela ne me dit vraiment rien
A tout de suite
0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
Modifié par micheleliane le 15/02/2013 à 18:56
je pense avoir réussi a envoyer en plusieurs fois les fichiers dont on prend les données et celui qui les réceptionne mille excuses je ne suis pas meilleur en informatique qu'en V.B.A.
En supplément des problèmes internet
Le chemin est ( C:\Documents and Settings\XP\Mes documents\1INSCRIPTION\seul_ma)
Prend données dans(dossier=1INSCRIPTION),(fichier=seul_"+nom"),(onglet=demande).
Reçois données (dossier=1RECEPTION),(fichier=tout),(onglet=complet)
Ci cela est possible on peut mettre le fichier "tout" dans le même dossier
Je suis en EXCEL 2003
MERCI,MERCI.
Je ne vois pas mes fichiers envoyés
0
micheleliane Messages postés 76 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 15 janvier 2015
15 févr. 2013 à 22:34
BONJOUR
J'ai essayé la macro de pijaku a Set Wsh = "ClasseurRecap" après avoir mis tout les noms de classeur avec classeur avant et sans, entre "" ,entre( ) toujours la même erreur
Erreur de compilation, Variable non définie. a plus tard MERCI
je viens de comprendre comment mettre pièce-jointe
https://www.cjoint.com/?CBpwjbvsJPs https://www.cjoint.com/?CBpwmhQNTSI https://www.cjoint.com/?CBpwn0hH7ME
https://www.cjoint.com/?CBpwshVjw9H J'ai réussi j'espère que malgré le mélange que j'ai fait vous comprendrez mes documents a plus tard merci a l'avance micheleliane
0