Copier des données d'un classeur dont le nom est variable, dans un autre

Bonjour à toutes et à tous,

Voici mon problème,

J'ouvre un premier classeur (que j'appellerai "A").

Dans ce classeur "A" je veux coller des données qui se trouvent dans plusieurs autres classeurs.

J'ouvre donc un de ces autres classeurs , copie sur ce classeur (que j'appellerai "B",) et colle les données sur le classeur "A".

Soucis, j'ai plus de 800 classeurs à ouvrir, et qui ne portent pas tous le même nom (ce serait trop facile).

Donc ma question est comment faire en V.B.A. avec une commande partant du classeur "A" pour aller copier des données sur un classeur "B" ouvert, dont le nom est différent à chaque fois, puis revenir sur le classeur "A" pour coller ces données.

Sur le classeur "B" le nom de la feuille c'est le même nom que le classeur et je ne le connais pas à l'avance, il est donc variable également.

Si parmi vous quelqu'un à la solution pour me faciliter la tâche, je suis preneur.

Merci à vous par avance

Cordialement

Dubdub22

Bonjour

une petite recherche sur le forum avec le mot consolidation... et voici un exemple :

https://forum.excel-pratique.com/viewtopic.php?f=2&t=105155&hilit=consolidation

pour que l'on puisse t'aider davantage il faudrait d'autres informations... les cellules/colonnes/lignes a copier coller..

les fichiers sont tous dans le même dossier ???...

Fred

Bonjour fred,

Tout d'abord merci pour ta réponse et ton aide, mais malheureusement dans l'exemple que tu as mis, je ne vois rien de similaire avec ce que j'aimerai trouver.

Voici les réponses à tes questions.

Le fichier qui reçoit les données (ou je colle ) est un fichier à part.

Les +800 fichiers ou je vais copier les données sont également à part les uns des autres.

Le fichier qui reçoit les données est un fichier que je dois reconstituer, car il a été supprimé définitivement par erreur, il s'agit d'un fichier nommé journal de facturation ( "A" dans mon premier message).

Les fichiers qui possède la plage a copier, ce sont les factures, celles ci sont individuelles, elles sont nommées comme suit : n° de facture / espace / n° du véhicule, puisqu'il s'agit de factures de garage ("B" dans mon premier message).

Actuellement je procède comme suit :

J'ouvre mon nouveau fichier "Journal de facturation"

J'ouvre l'une des factures à recopier, je sélectionne la plage à copier (K13:U38) je fait Ctrl+C, je vais sur le journal de facturation, et je colle les valeurs uniquement, sur la première cellule vide de la colonne "A" .

Ce que je voudrais c'est automatiser un peu tout celà, si c'était un fichier "B" unique avec plusieurs feuilles celà ne me poserait pas de souci, mon problème c'est que le fichier "B" n'est pas unique, et que le nom est différent à chaque facture.

Ce que je cherche c'est surtout comment aller avec le même code V.B.A sur des fichiers nommés différemment ( "B").

J'ouvre manuellement le fichier "B" (facture)

Je voudrais avec un code, depuis le fichier " journal de facturation ("A"), aller sur cette facture "B" pour copier la plage (K13:U38) et revenir sur le journal de facturation et coller la plage à partir de la première cellule vide de la colonne "A"

Espérant avoir été suffisamment clair dans mes explications.

Cordialement

Dubdub22

Rebonjour

On avance un peu... on connais maintenant les cellules a copier..

Je peux faire cela...

Mais je penses qu'il est inutile d'ouvrir les fichiers à la main les uns après les autres.

Il faudrait maintenant connaître l'arborescence de tes fichiers... comment sont-ils classer dans les dossiers... y a t il que des fichiers excel de facturation ou il y a aussi d'autres fichiers ??

Et faudrait avoir un fichier exemple en ayant supprimer les données confidentielles.

Et aussi ton fichier À...

Fred

Bonjour Fred,

Alors voilà j'ai modifié les fichiers afin de pouvoir les joindre au post.

Je pense (mais là c'est toi qui verras) que je suis obligé d'ouvrir chaque facture les unes après les autres, du au du classement de celles-ci.

Je mets sur les fichiers les réponses à tes questions, j'ajoute qu'il n'y a que des fichiers excel dans chaque dossier.

Si besoin d'autres renseignements, pas de soucis.

Merci d'avance pour ton aide, qui peut m'éviter de passer beaucoup de temps.

Cordialement

Dubdub22

Bonsoir

il faudrait un fichier journal facturation sur lequel il n'y a pas de mot de passe sur le VBA project... cela serait plus simple.....

voici ce que j'ai compris... merci de confirmer :

tous les fichiers factures sont dans un dossier un par année... exact ???

il faut faire un fichier journal facturation par année ?? ou le fichier doit chercher toutes les factures de toutes les années??

dans le fichier facture, il faut récupérer une plage K15:U38 max... en fonction du nombre de lignes occupées.. exact ??

la copie doit se faire en valeur ?? ou un copier coller classique ???

j'ai pas tout compris a ton texte dans le fichier facture.... faut-il faire tourner une macro sur chaque fichier facture avant de faire la copie de données ??? (si oui il faudrait pouvoir voir cette macro.... (qui est aussi protéger par mot de passe...) et ensuite fermer le fichier facture sans enregistrement....exact ???

Fred

Bonjour fred,

Alors voilà, j'ai continué à chercher sur la toile afin d'avoir juste ce qui me manquait, à savoir le code VBA pour me rendre sur la facture dont je ne connais pas le nom par avance.

J'ai trouvé ce qui me manquait, j'ai testé et cela fonctionne exactement comme je le souhaitais.

Je te remercie tout de même d'avoir pris du temps pour te pencher sur mon problème, c'est très aimable de ta part.

alors voilà je mets le code que j'ai fait pour ceux que cela pourrait intéresser, petite amélioration possible c'est le fait que malgré avoir mis la formule pour qu'il ne soit collé que les cellules avec une valeur, il me colle les cellules blanches, parce qu'il y a des formules dedans, mais bon c'est tout de même un net gain de temps.

voici le code:

Sub Copier_Coller_Facture()
'
' Copier_Coller_Facture Macro
'

'
'Copie les formules pour mettre sur la facture au nom inconnu

    Windows("4769 8061VR22.xlsm").Activate
    Selection.Copy

'Ouverture de la facture au nom inconnu

    Workbooks(3).Activate

'Collage des formules copies sur la facture 4769

    Range("K13").Select
    ActiveSheet.Paste

' Copie des donnees necessaire au journal de facturation

    Range("K15:U38").Select
    Application.CutCopyMode = False
    Selection.Copy

 'Retour sur le journal de facturation

    Windows("Journal de facturations.xlsm").Activate

 'Positionnement sur la premiere cellule vide de la colonne "A"

    Range("A65536").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues

  'Positionnement sur la premiere cellule vide de la colonne "A" apres collage

    Range("A65536").End(xlUp)(2).Select

  'Retour sur la facture au nom inconnu

    Workbooks(3).Activate

   'Fermeture de la facture au nom inconnu sans sauvegarde

    ActiveWindow.Close

End Sub

Voila cela fonctionne

Merci encore à toi fred pour avoir cherché à m'aider.

Cordialement

Dubdub22

Bonsoir

OK si tu as trouvé tout seul... tant mieux... et n'oubli pas....

Fred

Rechercher des sujets similaires à "copier donnees classeur nom variable"