Chemin d'acces dans macro excel

LucARMS

Nouveau membre
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
 

zeb

Modérateur
:pfff: J'en suis tout dépité...

Et si au lieu des teletubbies, on les envoyait sur
 

KangOl

Grand Maître
plus d'une fois j'ai proposer que l'url des TT soit modifiable en fonction de la situtation ...
je relance ...
 

LucARMS

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

LucARMS

Nouveau membre
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.
Code:
    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
 

zeb

Modérateur
Le contenu de la cellule A1, c'est :
[fixed]Range("A1").Value[/fixed]

Ton code devrait devenir
Code:
Range("A2:A54").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"
ActiveWindow.Close
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] )
 

LucARMS

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

Code:
ActiveWorkbook.Save
    Range("A1").Select
    ActiveCell.FormulaR1C1 = ActiveWorkbook.Path
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "=LEN(RC[-1])"
    Range("C1").Select
    ActiveCell.FormulaR1C1 = "=RC[-1]-3"
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "=LEFT(RC[-3],RC[-1])"
    Range("E1").Select
    ActiveCell.FormulaR1C1 = "=RC[-1]&""IMPORT\Import_dde.ld"""
    Range("E1").Copy
    Range("E2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    fName = Range("E2").Value
    Range("A2:A54").Copy
    Workbooks.Add
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs Filename:=fName
    ActiveWindow.Close
End Sub

Trop cool et encor merci.
 

zeb

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

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

LucARMS

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

zeb

Modérateur
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.
 

zeb

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

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

LucARMS

Nouveau membre
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:

Code:
Range("Q64").FormulaR1C1 = ActiveWorkbook.Path
Range("R64").FormulaR1C1 = "=LEN(RC[-1])"
Range("S64").FormulaR1C1 = "=RC[-1]-3"
Range("T64").FormulaR1C1 = "=LEFT(RC[-3],RC[-1])"
Range("U64").FormulaR1C1 = "=RC[-1]&""IMPORT\Mnemoniques_%T.SCY"""
Range("U64").Copy
Range("U65").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
fName = Range("U65").Value
Range("Q65").FormulaR1C1 = ActiveWorkbook.Path
Range("R65").FormulaR1C1 = "=LEN(RC[-1])"
Range("S65").FormulaR1C1 = "=RC[-1]-3"
Range("T65").FormulaR1C1 = "=LEFT(RC[-3],RC[-1])"
Range("U65").FormulaR1C1 = "=RC[-1]&""IMPORT\Mnemoniques_G7.xls"""
Range("U65").Copy
Range("U66").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
dName = Range("U66").Value
Range("G6:G260").Copy
Workbooks.OpenText Filename:=dName _
        , Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1)), TrailingMinusNumbers:=True
    Range("A2").Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A1") = "VAR_GLOBAL"
    Range("A257") = "END_VAR"
    ActiveWorkbook.SaveAs Filename:=fName _
        , FileFormat:=xlTextPrinter, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub

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

zeb

Modérateur
Regarde l'aide sur cette fonction [fixed]Application.DisplayAlerts[/fixed] c'est ce qu'il te faut je crois.
 

LucARMS

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

Code:
aName = ActiveWorkbook.Path
bName = Len(aName)
bName = bName - 3
cName = Left(aName, bName)
fName = cName + "IMPORT\Mnemoniques_%T.SCY"
Range("G6:G260").Copy
Workbooks.Add
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1") = "VAR_GLOBAL"
    Range("A256") = "END_VAR"
    Sheets("Feuil1").Select
    Sheets("Feuil1").Name = "Nmemoniques_%T"
    Sheets("Feuil2").Select
    Application.CutCopyMode = False
    ActiveWindow.SelectedSheets.Delete
    Sheets("Feuil3").Select
    ActiveWindow.SelectedSheets.Delete
    ActiveWorkbook.SaveAs Filename:=fName _
        , FileFormat:=xlTextPrinter, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
End Sub
Supper tu a fait exactement ce que je desirrais.
Excellent ce forum.
 

zeb

Modérateur
Heum.....

Moi j'écrierais plutôt :[fixed] Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub[/fixed]

Devine pourquoi....
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 131
Messages
6 717 957
Membres
1 586 383
Dernier membre
potofeu
Partager cette page
Haut