Syntaxe savecopyas excel vb

Fermé
MisterT - 14 nov. 2008 à 11:11
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 14 nov. 2008 à 17:47
Bonjour,

voila j'ai un petit probleme avec la syntaxe de savecopyas dans excel et ma macro
je n'arrive pas à l'ecrire, le compilateur me dit erreur syntaxe ou séparateur de liste ou )

je vous mets mon code:

Sub premiereetalonnage()

Dim cheminelement, cheminfichedevie, chemintypeinstrum, chemindesignation As String
Dim wbk1, wbk2, wbk2, wbk4, wbk6, wbk7 As Workbook

cheminelement = "D:\Etude fabien\Parc métrologique\Fiches élément"
cheminfichedevie = "D:\Etude fabien\Parc métrologique\Fiches de vie"
chemintypinstrum = UserForm2.ComboBox1.Value
chemindesignation = UserForm2.TextBox1.Value

Set wbk1 = ThisWorkbook

If Dir("cheminelement\" & chemintypeinstrum & "\" & chemindesignation, vbNormal) <> "" Then
Msgbox ("Vous ne pouvez pas créer cette fiche élément car elle existe déjà")

Else
Set wbk2 = Workbooks.Open(Filename:="D:\Etude fabien\Parc métrologique\Fichiers de base\Fiche element.xls")
Sheets("Fiche element").Activate

Range("C15").Value = UserForm2.ComboBox1.Value
Range("C18").Value = UserForm2.ComboBox2.Value
Range("C21").Value = UserForm2.ComboBox4.Value
Range("G15").Value = UserForm2.TextBox1.Value
Range("G18").Value = UserForm2.ComboBox3.Value
Range("G21").Value = UserForm2.TextBox2.Value

Range("C29").Value = UserForm2.TextBox3.Value
Range("C32").Value = UserForm2.ComboBox6.Value
Range("C35").Value = UserForm2.ComboBox7.Value
Range("G29").Value = UserForm2.TextBox4.Value
Range("G32").Value = UserForm2.ComboBox5.Value
Range("G35").Value = UserForm2.ComboBox8.Value

Application.DisplayAlerts = False

wbk2.SaveCopyAs Filename:=("D:\Etude fabien\Parc métrologique\Fiches élément\" & chemintypinstrum&"\"&"FE"&chemindesignation&".xls")
wbk2.Close

Application.DisplayAlerts = True
end if
end sub

il faut savoir que
chemintypeinstrum fait reference a une combobox
chemindesignation fait reference a une textbox
FE correspond au nom du classeur exemple: FEA001.xls

une petite aide serait la bienvenue Merci !!
A voir également:

1 réponse

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
14 nov. 2008 à 11:54
Si c'est pour savecopy
wbk2.SaveCopyAs "D:\Etude fabien\Parc métrologique\Fiches élément\" & chemintypinstrum & "\" & "FE" & chemindesignation & ".xls"
Si se met en erreur...
sélectionner tout le chemin de "D... à .xls"
Copier
et dans lla fenêtre exécution taper Print et tu colle, ensuite enter. Comme ça tu vois s'il n'y a pas d'erreur dans le chemin
mais d'après ce que je vois tu à 2 fois .xls
tu peu faire Dim TB
TB=split(FE,".")
et ensuite
wbk2.SaveCopyAs "D:\Etude fabien\Parc métrologique\Fiches élément\" & chemintypinstrum & "\" & TB(0) & chemindesignation & ".xls"

A+
0
Salut lermite222

Tous d'abord merci de me repondre

bon j'ai appliqué la methode que tu m'as dit avec Print et coller puis entrer et il n'y a pas eu de message d'erreur. Le chemin s'est meme ecrit avec des ; donc je suppose que le chemin est correct.
Je me suis dis que j'ai mal ecris savecopyas alors j'ai mis des espaces avant et apres chaque & et le compilateur ne me detecte pas de problemes de syntaxe alors je suppose que le chemin doit etre valide.
J'essaierai plus tard l'execution de la macro pour voir mais je pense que c'est OK

sinon pour info qu'elle est la demarche de mettre TB=split(FE,".") puis TB(0) dans savecopyas
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191 > MisterT
14 nov. 2008 à 17:47
La fonction Split sépare la variable en autant de partie qu'il y a de "séparateur" ici le point donc tu
TB(0) = le nom du fichier
TB(1)= xls
Tu sélectionne split (le mettre ensurbrillance) et tu tape F1
revenons à la détection d'erreur,
tu met le curseur sur SaveAsCopy et tu tape F9, la ligne va se mettre en surbrillance brun.
Tu lance la macro...
Elle va s'arrèter sur cette ligne et mettre en surbrillance Jaune, (c'est la ligne active) c'est maintenant que tu doit terster le chemeni comme expliquer plus haut.
A+

0