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
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.
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
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.