Copier d'un classeur fermée depuis un classeur ouvert

Bonjour,

j'ai deux classeurs excel -un classeur A (Baseinscr.xlsm) qui est fermée et un classeur B (Base_YENNE.xlsm) qui est ouvert.

Je voudrais faire entre guillemet faire un copier coller de (B7:W600000) de la Feuil2 du classeur A depuis le classeur B

Comment faire

POur le moment J'ai ce code mais qui fonctionne seulement quand le classeur est ouvert.

Sub ImportBASEYenne()
    Windows("Baseinscr.xlsm").Activate
    Sheets("Feuil2").Select
    Range("B2:W6000").Select
    Selection.Copy
    Windows("Base_YENNE.xlsm").Activate
    Range("B2:W6000").Select
End Sub

Merci par avance

Salut,

Admettons que ton fichier fermé se trouve dans un dossier nommé ‘Dossier_dans_lequel_se_trouve_ton_fichier_fermé' dans le répertoire ‘C:\’, la macro ci-après devrait alors réaliser ce que tu désires :

Sub ImportBASEYenne()
    Workbooks.Open Filename:="C:\Dossier_dans_lequel_se_trouve_ton_fichier_fermé\Baseinscr.xlsm"
    Sheets("Feuil2").Range("B2:W6000").Copy Destination:=ThisWorkbook.ActiveSheet.Range("B2")
    ActiveWorkbook.Close
End Sub

Si ce n’est pas ça, merci de joindre tes deux fichiers ainsi que le nom exact du chemin au bout duquel se trouve ton fichier fermé. A moins que ton fichier fermé se trouve dans le même dossier que le fichier ouvert, ce qui simplifierait bien les choses

Cordialement

Merci cela fonctionne

effectivement en faite c'est un dossier qui se trouve sur un disque dur externe

il est composé comme ceci

pour aller dans le classeur Baseinscr il faut faire Inscriptions EXCEL complet (dossier du disque dur) --> puis inscriptions sur place (dossier) --> puis on a le classeur Baseinscr

ensuite le classeur Base Yenne il faut faire Inscriptions EXCEL complet (dossier du disque dur) --> puis BASE (dossier) --> puis YENNE (dossier) --> puis on a le classeur Base_YENNE

Sinon Pour Baseinscr c'est F:\Inscriptions EXCEL complet\inscriptions sur place\Baseinscr.xlsm

et pour BASE_YENNE c'est F:\Inscriptions EXCEL complet\BASE\YENNE\Base_YENNE.xlsm

c'est peut etre plus claire avec les raccourcis

Je ne comprends pas si tu me donnes une explication ou si tu poses une question

j'avais oublier Je veux que dans le classeur ouvert cela me le colle a partir de la cellule B7

Merci Beaucoup deja pour ton aide

Salut,

Je remarque maintenant que dans ton premier message tu dis dans ton texte que tu veux copier-coller la plage B7:W600000 (pourquoi 600'000 ???) et dans ton code-exemple, tu parles de la plage B2:W6000 (pourquoi 6'000 ??).

Je n’avais pas remarqué cela lorsque je t’avais proposé ma macro et j’ai inscrit la ligne de code Sheets("Feuil2").Range("B2:W6000").Copy Destination:=ThisWorkbook.ActiveSheet.Range("B2") sur la base de ton code-exemple.

Dans cette ligne tu peux modifier aisément la plage copiée [ Sheets("Feuil2").Range("B2:W6000") ] et l’endroit où ça doit être collé [ ThisWorkbook.ActiveSheet.Range("B2") ]

Tu t’en sors comme ça ? Sinon soit plus précis dans la description de tes attentes.

non ça ne fonctionne pas

je vais essayer d’être plus précis

le fichier sert a faire des classement pour une course

Detail des deux classeurs utilisées

-PREMIER CLASSEUR -->un ordinateur sert au concurrent pour qu'il s'inscrive a l'aide d'un userform (voir classeur "Baseinscr", feuille "debutinscr" puis bouton Nouvelle inscription) le concurrent démarre et à accès seulement au userform (il ne peux pas le fermer il n'a pas le mot de passe)

Donc il s'inscrit ça j'ai a peu près reussi a tout faire fonctionner a part le plein ecran automatique suivant la résolution de l'écran.

la feuille "Basedonnees" de ce classeur sert au concurrent qui es licencié a ne pas tout retaper ces infos. il sert uniquement a cela

mais ensuite les champ rempli du USERFORM enregistre les données dans Feuil2.

ce classeur sert au concurrent pour s'inscrire mais pas seulement, nous on va s'en servir pour avoir la base donnée (Feuil2") et l'importer vers un classeur que j'ai appelé Base_YENNE.

- SECOND CLASSEUR --> Dans la Feuille Base YENNE du classeur Base_YENNE Je voudrais récupérer une partie de la Feuil2 du Classeur Baseinscr (c'est a dire de la ligne 7 a la derniere ligne du dernier concurrent inscrit et de la colonne B à la colonne W pour cela que j'avais mit 6000 mais apparemment il existerait une formule qui prendrait seulement les lignes inscrite)

la ligne 1,2 et 3 ne doivent pas être touchée ainsi que la colonne A.

une fois l'importation faite du premier classeur a ce classeur il faut qu'il enlève toute les lignes avec un 1 dans YENNE (colonne S) (cela signifie que le concurrent c'est inscrit pour cette courses et que l'on a pas besoin des autres) SAUF les lignes 1,2 et 3.

dans la feuille "Base Canicross" il faudra faire l'importation de la Feuille "Base YENNE" de ce classeur en enlevant toute les lignes qui ont un M ou un V et garder que les lignes avec un C (qui correspond a la course canicross) dans la colonne R mais sans jamais toucher au lignes 1,2 et 3.

dans cette feuille on ajoutera les numéros de dossard a partir du deuxième ordinateur.

pour ensuite faire une recherche de valeurs par rapport au numéro de dossard (Pour le nom le prénom etc... mais ça je maîtrise !!!)depuis un troisième classeur.

Dans la feuille "Base VTT" pareil que dans la base canicross mais en gardant les lignes avec un V (on supprime les lignes avec un C ou un M mais toujours seulement a partir de la ligne 4.

Dans la feuille "Base Marche" pareil que dans la base VTT mais en gardant les lignes avec un M (on supprime les lignes avec un C ou un V mais toujours seulement a partir de la ligne 4.

Voila j’espère que je suis plus clair dan ce que je voudrais réussir a avoir

Je vous joint les deux classeur

le troisième dont je parle ne vous servira pas a grand chose la RECHERCHE V en formule je maîtrise pas trop mal

Merci Beaucoup par avance pour votre aide

Franck

16baseinscr.xlsm (231.23 Ko)
12base-yenne.xlsm (24.12 Ko)

Pour info dans le classeur Baseinscr Feuil2

Colonne S a W cela indique si le concurrent participe a la course (1 pour oui et 0 pour non)

le mot de passe pour sortir du USERFORM est 1981

Salut,

franck3869 a écrit :

non ça ne fonctionne pas

Au lieu d’écrire cela tu ferais mieux d’écrire « Salut, merci pour ta réponse ».

Je pense que mon code fonctionne parfaitement par rapport aux indications que tu m’avais fournies, mais maintenant que tu m’explique un peu mieux ton problème, on va pouvoir avancer.

Ne brulons cependant pas les étapes, je vais m’arrêter à la toute première opération que tu demandes.

Selon ce que j’ai compris, tu désires transférer ta plage B7 à Wxxx de ta Feuil2 fichier Baseinscr à la feuille Base YENNE de ton fichier Base_YENNE. J’ai considéré que tu désires réaliser cela lorsque tu cliques sur le bouton « Importer Inscrit YENNE » placé sur ta feuille Base YENNE de ton fichier Base_YENNE. J’y ai donc affecté la macro placée dans le fichier ci-joint.

Comme je ne sais pas si tu désires effacer les données déjà en place sur la feuille Base Yenne avant d’y reporter de nouvelles données, j’ai simplement créé mon code afin qu’il ajoute les nouvelles données aux anciennes.

Par contre sur la Feuil2 du fichier Baseinscrm, je n’ai pas encore effacé les données comportant un 1 en colonne S.

Si cette première partie joue, je modifie le code pour supprimer les données comportant un 1 en colonne S (c’est un jeu d’enfant) et on pourra passer à la prochaine étape.

Donc dis-moi déjà si tout ça joue jusque-là ?

A te relire.

23base-yenne-v2.xlsm (25.63 Ko)

Merci beaucoup Yvouille,

quand j'ai écrit "non ça ne fonctionne pas" c'est pas le code en lui même qui ne fonctionne pas mais c'est pas vraiment vraiment ce que je voulais on c'est sans aucun doute mal compris j'ai sans doute mal expliqué et j'en suis fort désolé.

Sinon pour ce qui est du code pour l'importation c'est ce qu'il me manquait en gros. mais la c'est tout a fait ce que je veux.

Je vais le mettre dans un autre Sujet ou il manque plus que ce code

Je te laisse aller voir ici si tu veux

https://forum.excel-pratique.com/excel/probleme-pour-finir-les-codes-vba-t47506.html

Sinon comme j'ai rajouter dans l'autre sujet aussi et comme tu me l'as demandée

aprés l'importation il faudra supprimer toutes les lignes pour avoir que ceux avec un 1 dans YENNE dans la Feuille BASE YENNE

dans Base Canicross on aura seulement YENNE avec 1 et Discipline avec C tout les reste on supprime mais seulement je me suis rendu compte que en supprimant les lignes si je met entre temps les numéros de dossard et que je fais une nouvelle importation cela me supprime les numéro de dossard. Alors comment faire ?

Si tu veux bien on repasse tout sur l'autre Sujet comme cela je valide celui-ci.

https://forum.excel-pratique.com/excel/probleme-pour-finir-les-codes-vba-t47506.html

Je te remercie encore une fois pour m'aider

Salut,

Je ne comprends absolument pas que tu aies ouvert deux fils traitant du même sujet ou presque Pensais-tu que j’étais incapable de t’aider ?

Je ne vais en tout cas pas m’amuser à comparer ces deux fils afin de voir ce que tu as demandé de l’autre côté, quelles autres réponses tu as reçu, etc. Alors j'abandonne.

Bonne continuation.

Bonjour Yvouille,

J'ai ouvert plusieurs fils car l'autre étant d’ordre globale mais il manquait ce code particulier que toi tu as fait d'ou l'utilité de créer ce fils en particulier

La question n'étant pas est tu capable ou pas ? Je sais très bien que tu es capable vu tes autres réponse sur les autres fils et que tu répond énormément sur ce forum et je t'en suis très reconnaissant. La question était de savoir comment faire pour "copier d'un classeur fermée depuis un classeur ouvert" d'ou le passage sur l'autre fils celui étant trouver

Je te remercie pour avoir trouver ce code et avoir pris du temps a me le mettre dans mon fichiers excel ceci me permet d'avancer un peu plus chaque jour sur mon programme

J’espère que tu me comprendra, le but n’étant pas que tu soit fachée contre moi.

Franck

Salut et merci pour ta réponse.

Très franchement je n’ai plus trop l’envie de comprendre cet imbroglio avec tes différentes demandes, alors indique s’il te plait ce fil comme « Résolu » et tente d’obtenir les réponses désirées sur l’autre fil ouvert.

Pense à l’avenir qu’il vaut mieux y aller par étape, résoudre un problème après l’autre afin de ne pas embrouiller tout le monde.

Rien ne dit que je ne t’aiderai pas encore à l’avenir

Cordialement.

Rechercher des sujets similaires à "copier classeur fermee ouvert"