Macro pour rechercher un classeur Excel

Bonjour..Je suis nouveau et je viens à vous car j'ai un problème et je n'ai trouvé aucune réponse sur le net ni dans les forums...

Je vais essayer d'être clair..Alors voilà.......

Je veux créer un fichier pour gérer un championnat régional..

Bien qu'ayant des connaissances très limitées sur Excel, je n'ai pas de soucis particulier si ce n'est celui-ci..

Je veux créer une macro qui créée elle même le tableau pour le tournoi suivant en allant copier un tableau Excel "exemple" dans un dossier sur mon bureau pour l'enregistrer dans un autre dossier.

J'ai donc créé une macro qui le fait mais le problème c'est que cela ne fonctionne plus dès que je déplace mon dossier contenant mes tableau "exemple" puisque le chemin d'accés change.....

Que dois-je faire??Créer une macro qui recherche le chemin d'accés de mes tableaux sur mon disque dur???Mais comment faire???Ou alors une autre solution???

Merci d'avance pour votre aide...

Bonjour,

Je pense avoir une solution mais pourrais tu me montrer la macro de récupération du tableau et me dire si ta macro se trouve dans module.

A te relire

Dan

Ben en fait j'ai tout effacé parce que ca marchait pas quand je changeait mes fichiers de place!! Je n'y connais pas grand chose donc pour la créer je clicais sur nouvellle macro, puis je faisais la manip recherche de fichier, bureau, championnat, modèles puis je selectionnais mon fichier à copier que j'ouvrais pour y placer les noms des joueurs, je l'enregistre dans le dossier "tournois suivants" puis je referme le nouveau fichier....

Comme je l'ai déjà dis, dès que je change mon dossier avec les fichier type "tableau" (plusieur fichier, une vintaine en fait), le chemin d'accés change et donc la macro marche plus!!!!

Merci à toi...

re,

Ta méthode de création est la bonne.

Saine gestion, plutôt que de te balancer un fichier qui ne correspondra peut être pas à ta demande, refais le puis place le ici que l'on comprenne bien ce que tu fais.

Ce sera plus facile de t'aider

Dan

Ok donc je l'ai refait ett en effet elle apparait dans un module...Voilà donc ma macro ;

Sub Macro1()

'

' Macro1 Macro

' Macro enregistrée le 11/04/2008 par Olive

'

'

Range("B7:AD31").Select

Selection.Sort Key1:=Range("D7"), Order1:=xlAscending, Key2:=Range("E7") _

, Order2:=xlDescending, Key3:=Range("F7"), Order3:=xlDescending, Header _

:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _

, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _

xlSortNormal

ChDir _

"C:\Documents and Settings\Olive.OLIVIER-POOL\Bureau\Championnat Lorraine 2007-2008\Modèles"

Workbooks.Open Filename:= _

"C:\Documents and Settings\Olive.OLIVIER-POOL\Bureau\Championnat Lorraine 2007-2008\Modèles\Majeur Régional Lorrain.xls"

Windows("Championnat Lorraine.xls").Activate

Range("B7:B31").Select

Selection.Copy

Windows("Majeur Régional Lorrain.xls").Activate

Range("B2").Select

ActiveSheet.Paste

Application.CutCopyMode = False

ChDir _

"C:\Documents and Settings\Olive.OLIVIER-POOL\Bureau\Championnat Lorraine 2007-2008\Tournoi suivants"

ActiveWorkbook.SaveAs Filename:= _

"C:\Documents and Settings\Olive.OLIVIER-POOL\Bureau\Championnat Lorraine 2007-2008\Tournoi suivants\Majeur Régional Lorrain.xls" _

, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:=False, CreateBackup:=False

ActiveWindow.Close

End Sub

Comme on peut le voir le chemin d'accés y figure pour trouver le fichier à copier/ouvrir/enregistrer sous nouveau dosser....

re,

J'ai besoin des noms de feuilles des fichiers Majeur Régional Lorrain.xls et Championnat Lorraine.xls

En fait, tu copies de quelle feuille dans Championnat Lorraine.xls vers quelle autre feuille du fichier Majeur Régional Lorrain.xls

A te relire

Dan

Ok...

Le fichier principal s'appele "Championnat Lorraine" d'où est copier une liste de nom après tri sur sur un fichier nommé "majeur Régional Lorrain" sur la feuille "inscrit"...

re,

essaye ce code :

Sub transfert()
'Macro par Dan pour Olive - Excel pratique le 11/04/08
Dim chemin As String

chemin = "C:\Documents and Settings\Olive.OLIVIER-POOL\Bureau\Championnat Lorraine 2007-2008\"

With ThisWorkbook.ActiveSheet
    .Range("B7:AD31").Sort Key1:=Range("D7"), Order1:=xlAscending, Key2:=Range("E7") _
, Order2:=xlDescending, Key3:=Range("F7"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Workbooks.Open Filename:=chemin & "Modèles\" & "Majeur Régional Lorrain.xls"

    .Range("B7:B31").Copy Destination:=Workbooks("Majeur Régional Lorrain.xls").Sheets("inscrit").Range("B2")
End With
ActiveWorkbook.SaveAs Filename:=chemin & " Tournoi suivants\" & "Majeur Régional Lorrain.xls"
End Sub

Code à placer dans le module.

  • Ouvre ton fichier "championnat Lorraine..."
  • exécute la macro

A te relire

Dan

Ok...

Ca me marque erreur d'execution 9

L'indice n'appartient pas à la selection..

Je clic sur Débogage et cela m'affiche la macro en surlignant cette ligne en jaune..;

.Range("B7:B31").Copy Destination:=Workbooks("Majeur Régional Lorrain.xls").Sheets("inscrit").Range("B2")

re,

A ce moment là, tes deux fichiers doivent être ouverts. Vérifie

Vérifie aussi les noms des fichiers et de la feuille "Inscrit"

Dan

Ah oui en fait il manquait un s à inscrit j'ai donc réctifié mais à présent il met "erreur d'execution 1004...

re,

Vérifie les répertoires dans lesquels sont placés tes fichiers :

Le fichier dans lequel se trouve la macro -> C:\Documents and Settings\Olive.OLIVIER-POOL\Bureau\Championnat Lorraine 2007-2008\

L'autre fichier -> C:\Documents and Settings\Olive.OLIVIER-POOL\Bureau\Championnat Lorraine 2007-2008\modèles

Dan

Ils y ont bien mais j'ai encore essayé et cela me remmet encore le même message d'erreur qui dit que microsoft excel ne peut acceder au fichier ....\tournoi suivants"

Je ne comprends pas...

Est-ce parce que tournoi suivants est un dossier dans lequel il faut enregistrer le nouveau fichier et non pas un fichier??

La macro fonctionnerait-elle encore si je déplace mon dossier??

(Le but dde la manoeuvre étant de pouvoir "transporter ce dossier sur une clé puis de pourvoir travailler avec sur un port sur le lieu de la competition puis ensuite encore clé usb et retour sur mon ordi...

re,

Pour moi tu ouvres Majeur Régional Lorrain.xls qui se trouve dans le dossier Modèle et tu le sauve dans le dossier "Tournoi suivants".

Les dossiers Modèles et tournoi suivants sont dans ce répertoire -> C:\Documents and Settings\Olive.OLIVIER-POOL\Bureau\Championnat Lorraine 2007-2008\

Vérifie l'ortographe de chacun des répertoires, dossiers et fichiers car si tu te trompes cela ne fonctionnera pas évidemment

"transporter ce dossier sur une clé puis de pourvoir travailler

Tu veux dire que tu vas partir avec un dossier complet ? Si oui, donne moi la structure exacte.

Dan

C'est ça!!

En fait je travail sur le fichier principal qui s'appele "Championnat Lorraine.xls" dans lequel j'ai placé la macro "transfert" (que tu m'as donné) qui copie une liste de nom, la colle sur la page "inscrits" du fichier Majeur Régional Lorrain.xls et qui l'enregistre dans le dossier "tournoi suivants"....

Oups avait pas vu la fin de ton mess.....

Donc c'est un dossier placé sur mon bureau qui se nomme championnat lorraine 2007-2008...Dans ce dossier mon fichier principal "championnat Lorraine" et 2 dossiers ; Modèles et Tournoi suivants....

re,

Pas facile sans voir tes fichiers car cela fonctionne pour moi. Mais comme tu me dis que tu dois te déplacer avec ton dossier nous devons modifier la macro. Remplace là par celle-ci après :

Sub transfert()
'Macro par Dan pour Olive - Excel pratique le 11/04/08
Dim chemin As String
chemin = ThisWorkbook.Path
With ThisWorkbook.ActiveSheet
    .Range("B7:AD31").Sort Key1:=Range("D7"), Order1:=xlAscending, Key2:=Range("E7") _
, Order2:=xlDescending, Key3:=Range("F7"), Order3:=xlDescending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Workbooks.Open chemin & "\Modèles\" & "Majeur Régional Lorrain.xls"
    .Range("B7:B31").Copy Destination:=Workbooks("Majeur Régional Lorrain.xls").Sheets("inscrits").Range("B2")
End With
ActiveWorkbook.SaveAs Filename:=chemin & " Tournoi suivants\" & "Majeur Régional Lorrain.xls"
End Sub

A te relire

Dan

Déjà merci pour ton aide...

Mais comme pour tout à l'heure cela fonctionne mais me met "erreur d'execution 1004" et quand je clic sur débogége cela met cette ligne en surlignage jaune ;

ActiveWorkbook.SaveAs Filename:=chemin & " Tournoi suivants\" & "Majeur Régional Lorrain.xls"

J'ai trouvé!!

Il manquait un \ avant "tournoi suivants" dans la ligne surligné en jaune

Merci pour ton aide...

Encore une dernrière chose, je voudrais que cela ferme le dossier tout seul avant le "End sub".......

C'est bon j'ai également trouvé!!!

Suis trop fort Nan je rigole...

Merci beaucoup pour ton aide, j'espere pouvoir un jour te rendre service à mon tour..

A très bientôt..

Rechercher des sujets similaires à "macro rechercher classeur"