Se connecter avec
S'enregistrer | Connectez-vous

Pb macro ouverture de fichier

Dernière réponse : dans Programmation
Partagez

Bonjour,
je cherche a faire une macro ouvrant un fichier excel en le selectionnant dans l'explorateur. (un nouveau fichier arrive de jours tout les jours).

La véritable idée serait d'ouvrir le fichier selectionné la colonne A à Q et de copié ses elements dans une feuille de mon tableau excel.


Pour l'instant j'essaie deja d'ouvrir le talbeau excel par la macro.
voici le code que j'ai pris :

  1. Sub macrojp()
  2. Dim Rep As String, Fichier
  3. Rep = CurDir$
  4. ChDir "H:\Data\Rejets prlvts 16 GEP"
  5. Fichier = Application.GetOpenFilename
  6. If VarType(Fichier) = vbBoolean Then Exit Sub ' (annulation)
  7. ChDir Rep
  8. MsgBox "Fichier sélectionné : " & Fichier
  9. End Sub


Donc ça m'ouvre l'explorateur je selectionne mon fichier et j'ai bien mon message box m'indiquant que le fichijer est ouvert mais rien, en faite il n'est pas ouvert.

Pouvez vous m'aidez svp..
merco bcp.

Autres pages sur : macro ouverture fichier

Joli code.

Aide-toi de l'aide en ligne : Au chapitre GetOpenFilename, apprends que cette fonction ne fait que te renvoyer un nom de ficher.

C'est une fonction standard de Windows et a priori tu peux vouloir l'ouvrir normalement, l'ouvrir en lecture seule, l'aouvrir en deux, l'ouvrir autrement, juste le sélectionner, l'effacer, que sais-je encore...

Toujours dans l'aide en ligne, Clique sur Voir aussi, et là, oh miracle :
Citation :
Open, méthode

Méthode Open telle qu'elle s'applique à l'objet Workbooks.
Cette méthode ouvre un classeur.
[..]

Exemple
Cet exemple montre comment ouvrir le classeur Analysis.xls puis comment exécuter sa macro Auto_Open.
  1. Workbooks.Open "ANALYSIS.XLS"
  2. ActiveWorkbook.RunAutoMacros xlAutoOpen
N'y aurait-il pas, ligne 1, la solution à ton problème, sachant que ce n'est pas "ANALYSIS.XLS" mais Fichier que tu veux ouvrir ;)  ?
Contenus similaires

merci pour ta réponse mais a priori ça ne me convient pas , car je n'ai pas le nom du fichier.
un fichier arrive tout les jours dans le répertoire sous un autre nom et mon tableau a besoin d'etre alimenté par celui ci.

Tu vois ce que je veux dire ? je ne suis pas sur d'etre bien clair ?.
en tout cas merci de ton aide et de t'interresser a mon cas.

M'enfin, tu poses trente-six question en même temps.

Citation :
Pour l'instant j'essaie deja d'ouvrir le talbeau excel par la macro.
voici le code que j'ai pris :
[..]
Donc ça m'ouvre l'explorateur je selectionne mon fichier et j'ai bien mon message box m'indiquant que le fichijer est ouvert mais rien, en faite il n'est pas ouvert.


  1. Workbooks.Open
résoud ce problème. Le nom du fichier, tu l'as bien ? La ligne 8 de ton code affcihe quoi ?

Tu veux autre chose ? Alors sois plus explicite et essaie de faire simple, et par étape.

Merci pour ta réponse, effectivement je ne savais pas que GetOpenFilename donnais simplement le nom du fichier. (grans novice du VBA)

oui, il faudrai que j'utilise la fonction :
  1. Workbooks.Open


Le problème est que je ne sais pas l'utiliser sans donner le nom du fichier.
Bon j'essaie d'etre plus clair :

Je recherche un fonction me permettant d'ouvrir un classeur excel en le choissisant par l'explorateur (tel lorsque je fais fichier ouvrir) parrallelement à cela, sur le fichier que je viens de selectionner il faudra que je fasse un macro copiant les cellule A:Q et qu'il soit copié vers un fichier excel bien spécifique.

Une chose à la fois !
Citation :
ouvrir un classeur excel en le choissisant par l'explorateur
Solution toute faite :
  1. Dim Fichier As Variant
  2.  
  3. Fichier = Application.GetOpenFilename
  4. If Fichier = False Then Exit Sub
  5. Workbooks.Open Fichier
[:spamafote]
Citation :
un macro copiant les cellule A:Q et qu'il soit copié vers un fichier excel bien spécifique
Je te laisse réfléchir encore un peu... Proposes quand même ta solution (ou une ébauche) qu'on voit ça.

La fonction marche très très bien, simplement est-il possible de spécifier un répertoire ?
merci encore.

J'ai créer ça comme macro, ça marche très bien, mis a part le choix du répertoire :
  1. Sub recuperation()
  2. Fichier = Application.GetOpenFilename
  3. Dim Chemin$, Wbk As Workbook
  4. Chemin = "H:\Data\Rejets prlvts 16 GEP"
  5. Workbooks.Open Fichier
  6. Columns("A:Q").Select
  7. Selection.Copy
  8. ActiveWindow.WindowState = xlMinimized
  9. ActiveWindow.WindowState = xlMaximized
  10. Range("B29").Select
  11. Sheets("tableau_GC").Select
  12. Range("a1").Select
  13. ActiveSheet.Paste
  14. Sheets("Menu").Select
  15. Range("a1").Select
  16. End Sub

Choisir un répertoire : Pas de solution en VBA Excel.

Tu peux utiliser l'API générique. Regarde du côté de SHGetPathFromIDList.
Posez votre question