Se connecter avec
S'enregistrer | Connectez-vous

Chemin d'acces dans macro excel

Dernière réponse : dans Programmation

Bonjour,

Je desir modifier ma macro, mais je ne sais pas comment fair:
la macro fonctionne mais je voudrais que le chemin d'acces depande de l'emplacement de ce document.
Pouver vous m'aide.

voila la macro

Range("A2:A54").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\LUC\Mes documents\Chalon\Luc\Documents types\Projet\Schneider\Doc\Import_dde.ld" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
End Sub

Autres pages sur : chemin acces macro excel

Lassé par la pub ? Créez un compte

J'est arrete les teletubbies, je suis aller sur ton lien mais j'est toujour pas d'indice sur mon probleme. Je suis desoler si tu trouve que ma macro et une insulte. Mais je debut dans la programmation VB, et je n'est pas la pretention de fair des macro exeptionnelles. Mais merci quand meme d'avoir jete un coup d'oeil.

Voila la question avec la balise. Mille excuse.

Je desir modifier ma macro, mais je ne sais pas comment fair:
la macro fonctionne mais je voudrais que le chemin d'acces (FileName) soit celui qui se trouve dan la celule A1.
Pouver vous m'aide.
Voici la macro.
  1. Range("A2:A54" ).Select
  2. Selection.Copy
  3. Workbooks.Add
  4. ActiveSheet.Paste
  5. Application.CutCopyMode = False
  6. ActiveWorkbook.SaveAs Filename:= _
  7. "C:\Documents and Settings\LUC\Mes documents\Chalon\Luc\Documents types\Projet\Schneider\Doc\Import_dde.ld" _
  8. , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
  9. ReadOnlyRecommended:=False, CreateBackup:=False
  10. ActiveWindow.Close
  11. End Sub
Expert Programmation

Le contenu de la cellule A1, c'est :
Range("A1").Value


Ton code devrait devenir
  1. Range("A2:A54").Copy
  2. Workbooks.Add
  3. ActiveSheet.Paste
  4. Application.CutCopyMode = False
  5. ActiveWorkbook.SaveAs Filename:= "C:\Documents and Settings\LUC\Mes documents\Chalon\Luc\Documents types\Projet\Schneider\Doc\Import_dde.ld"
  6. ActiveWindow.Close
  7. End Sub


Tu remarqueras que j'ai viré le Select/Selection inutile et les paramètres par défaut tout aussi inutiles.
Comme ça, c'est plus clair.

Ca te convient ?

( Pour ceux qui ne veulent vraiment pas comprendre les règles, on les redirige vers le site des télétubbies au lieu du forum :D  Tu sembles avoir eu du mal :D  mais tu as fini par comprendre avant la sanction, c'est déjà pas mal :o  Quant à ton code, je n'y ai rien vu d'insultant [:spamafote] )

:bounce:  Merci.Merci.
Grace a ton aide j'est reusi a cree ma macro.

  1. ActiveWorkbook.Save
  2. Range("A1").Select
  3. ActiveCell.FormulaR1C1 = ActiveWorkbook.Path
  4. Range("B1").Select
  5. ActiveCell.FormulaR1C1 = "=LEN(RC[-1])"
  6. Range("C1").Select
  7. ActiveCell.FormulaR1C1 = "=RC[-1]-3"
  8. Range("D1").Select
  9. ActiveCell.FormulaR1C1 = "=LEFT(RC[-3],RC[-1])"
  10. Range("E1").Select
  11. ActiveCell.FormulaR1C1 = "=RC[-1]&""IMPORT\Import_dde.ld"""
  12. Range("E1").Copy
  13. Range("E2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  14. :=False, Transpose:=False
  15. fName = Range("E2").Value
  16. Range("A2:A54").Copy
  17. Workbooks.Add
  18. ActiveSheet.Paste
  19. Application.CutCopyMode = False
  20. ActiveWorkbook.SaveAs Filename:=fName
  21. ActiveWindow.Close
  22. End Sub


Trop cool et encor merci.
Expert Programmation

Bon, alors pour faire encore mieux, écris donc ça comme ça :
  1. ActiveWorkbook.Save
  2. Range("A1" ).FormulaR1C1 = ActiveWorkbook.Path
  3. Range("B1" ).FormulaR1C1 = "=LEN(RC[-1])"
  4. Range("C1" ).FormulaR1C1 = "=RC[-1]-3"
  5. Range("D1" ).FormulaR1C1 = "=LEFT(RC[-3],RC[-1])"
  6. Range("E1" ).FormulaR1C1 = "=RC[-1]&""IMPORT\Import_dde.ld"""
  7. Range("E1" ).Copy
  8. Range("E2" ).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False
  9. fName = Range("E2" ).Value
  10. Range("A2:A54" ).Copy
  11. Workbooks.Add
  12. ActiveSheet.Paste
  13. Application.CutCopyMode = False
  14. ActiveWorkbook.SaveAs Filename:=fName
  15. ActiveWindow.Close


( C'est juste que les Select, ça me donne des boutons... )

Pas de problemme si les selecte te donne des boutons je vais essayer de ne plus en metre. Une derniere question quand le code "ActiveWindows.Close" s'execute une question me demandant si je veut enregister les modification apparait: peut-on forcer la reponce a oui ?
Si tu ne veut pas y repondre s'est pas dramatique, je peut m'en accomoder.
je te remerci d'avoir passer du temps avec mois, je ne suis pas le seul.
mois j'est grace a ton aide deja fait becoup de progrets. Encord merci.
Expert Programmation

Citation :
Si tu ne veut pas y repondre s'est pas dramatique, je peut m'en accomoder.

:ouch:  Et pis quoi encore !!!!

J'ai deux rôles ici :
  • Le premier, c'est celui de forumeur, et c'est pourquoi je t'ai aidé et que je continuerai
  • Le second, c'est celui de modérateur, et c'est pourquoi tu t'es pris des remarques ascerbes de ma part.

    Alors schizophrénie ou don d'ubiquité ? [:spamafote] Je ne sais toujours pas...

    Donc oui, je vais regarder ton problème. Tu dis faire des progrès, tu te corriges quand on te demande de rspecter les règles, c'est la moindre des choses que de continuer à t'aider.
    Expert Programmation

    Bon je ne vois pas bien pourquoi il pose cette question alors que juste avant tu as un SaveAs. Essaye quand même ça :
    [..]
    ActiveWorkbook.SaveAs Filename:=fName
    ActiveWorkbook.Close


    Ou encore si ça ne marcue toujours pas :
    [..]
    ActiveWorkbook.SaveAs Filename:=fName
    [..]
    ActiveWorkbook.Save
    ActiveWorkbook.Close

    Merci pour ces sugestions, mais ca ne resous pas mon probleme. Je pense quand meme progesser car les questions que j' est poser je ne les poserrais plus puise que j'est la solution.
    Mais depuis ma macro c'est developer et ca donne:

    1. Range("Q64").FormulaR1C1 = ActiveWorkbook.Path
    2. Range("R64").FormulaR1C1 = "=LEN(RC[-1])"
    3. Range("S64").FormulaR1C1 = "=RC[-1]-3"
    4. Range("T64").FormulaR1C1 = "=LEFT(RC[-3],RC[-1])"
    5. Range("U64").FormulaR1C1 = "=RC[-1]&""IMPORT\Mnemoniques_%T.SCY"""
    6. Range("U64").Copy
    7. Range("U65").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    8. fName = Range("U65").Value
    9. Range("Q65").FormulaR1C1 = ActiveWorkbook.Path
    10. Range("R65").FormulaR1C1 = "=LEN(RC[-1])"
    11. Range("S65").FormulaR1C1 = "=RC[-1]-3"
    12. Range("T65").FormulaR1C1 = "=LEFT(RC[-3],RC[-1])"
    13. Range("U65").FormulaR1C1 = "=RC[-1]&""IMPORT\Mnemoniques_G7.xls"""
    14. Range("U65").Copy
    15. Range("U66").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    16. dName = Range("U66").Value
    17. Range("G6:G260").Copy
    18. Workbooks.OpenText Filename:=dName _
    19. , Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
    20. xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
    21. Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
    22. Array(2, 1)), TrailingMinusNumbers:=True
    23. Range("A2").Select
    24. ActiveSheet.Paste
    25. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    26. :=False, Transpose:=False
    27. Application.CutCopyMode = False
    28. Range("A1") = "VAR_GLOBAL"
    29. Range("A257") = "END_VAR"
    30. ActiveWorkbook.SaveAs Filename:=fName _
    31. , FileFormat:=xlTextPrinter, Password:="", WriteResPassword:="", _
    32. ReadOnlyRecommended:=False, CreateBackup:=False
    33. ActiveWorkbook.Save
    34. ActiveWorkbook.Close
    35. End Sub


    Je pense que le probleme vien du fait que je change le format du fichier (de .xls en .SCY)?

    Voila ca y est ca marche!!!
    Encord un grand merci
    Voici la macro final

    1. aName = ActiveWorkbook.Path
    2. bName = Len(aName)
    3. bName = bName - 3
    4. cName = Left(aName, bName)
    5. fName = cName + "IMPORT\Mnemoniques_%T.SCY"
    6. Range("G6:G260").Copy
    7. Workbooks.Add
    8. Range("A2").Select
    9. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    10. :=False, Transpose:=False
    11. Range("A1") = "VAR_GLOBAL"
    12. Range("A256") = "END_VAR"
    13. Sheets("Feuil1").Select
    14. Sheets("Feuil1").Name = "Nmemoniques_%T"
    15. Sheets("Feuil2").Select
    16. Application.CutCopyMode = False
    17. ActiveWindow.SelectedSheets.Delete
    18. Sheets("Feuil3").Select
    19. ActiveWindow.SelectedSheets.Delete
    20. ActiveWorkbook.SaveAs Filename:=fName _
    21. , FileFormat:=xlTextPrinter, Password:="", WriteResPassword:="", _
    22. ReadOnlyRecommended:=False, CreateBackup:=False
    23. Application.DisplayAlerts = False
    24. ActiveWorkbook.Close
    25. End Sub

    Supper tu a fait exactement ce que je desirrais.
    Excellent ce forum.
    Lassé par la pub ? Créez un compte