Save AS

Le
Pascal
Bonjour
Excel 2007
Avec ce code:

strFolder = ThisWorkbook.Path & ""
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
fso.createfolder (strFolder & Range("d8")
End If

Je crée le répertoire du client si inexistant et ensuite avec ce code

wbkName = "FA" & Range("D8") & Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs strFolder & wbkName

Je souhaite enregistrer la Facture dans le dossier précédement crée.
Mais elle s'enregistre dans le dossier par défaut d'Excel
Ou merde-je??
Merci
Pascal
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FS
Le #19941331
Bonjour,

Essaye en utilisant l'objet répertoire créé avec le FileSystemObject :

'================================ Sub essai()
Dim strFolder As String
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object, fldr As Object

strFolder = ThisWorkbook.Path & ""
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.createfolder(strFolder & Range("d8"))
End If

Set wbk = ThisWorkbook
wbkName = "FA" & Range("D8") & _
Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName
End Sub
'==================================
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Bonjour
Excel 2007
Avec ce code:

strFolder = ThisWorkbook.Path & ""
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
fso.createfolder (strFolder & Range("d8")
End If

Je crée le répertoire du client si inexistant et ensuite avec ce code

wbkName = "FA" & Range("D8") & Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs strFolder & wbkName

Je souhaite enregistrer la Facture dans le dossier précédement crée.
Mais elle s'enregistre dans le dossier par défaut d'Excel
Ou merde-je??
Merci
Pascal





MichDenis
Le #19941511
Bonjour Pascal,

Une autre approche,

Elle crée tout le chemin impliquant autant de "RÉPERTOIRES"
que nécessite le chemin demandé seulement si les répertoires
n'existent pas.

Sub test()
Dim Chemin As String, Commande As String
dim LeDrive as String
'à titre d'exemple dans la cellule A1, il y a
'Chemin = "c:AAADenisDanieltoto"

with worksheets("NomDeLaFeuille")
Chemin = "c:" & .Range("A1")
LeDrive = left(trim(chemin),2)
End with

Pour s'assurer d'être sur le bon lecteur
'où les répertoires doivent être créé
ChDrive LeDrive

'Création du chemin
Commande = Environ("comspec") & " /c mkdir " & Chemin
Shell Commande, 0
'Enregistrement du fichier
workbooks("SonNom").SaveAs Chemin & "" & SonNom & ".SonExtension"
End Sub
Pascal
Le #19941571
Merci Fréderic
Cela me renvoie un message d'erreur sur la ligne

wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName

variable Objet Ou variable de bloc With non définie

alors que je n'ai pas de With

Pascal

"FS"
Bonjour,

Essaye en utilisant l'objet répertoire créé avec le FileSystemObject :

'================================ > Sub essai()
Dim strFolder As String
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object, fldr As Object

strFolder = ThisWorkbook.Path & ""
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.createfolder(strFolder & Range("d8"))
End If

Set wbk = ThisWorkbook
wbkName = "FA" & Range("D8") & _
Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName
End Sub
'================================== >
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Bonjour
Excel 2007
Avec ce code:

strFolder = ThisWorkbook.Path & ""
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
fso.createfolder (strFolder & Range("d8")
End If

Je crée le répertoire du client si inexistant et ensuite avec ce code

wbkName = "FA" & Range("D8") & Format(Now, "dd-mm-yyyy h-mm-ss") &
".xlsx"
wbk.SaveAs strFolder & wbkName

Je souhaite enregistrer la Facture dans le dossier précédement crée.
Mais elle s'enregistre dans le dossier par défaut d'Excel
Ou merde-je??
Merci
Pascal






FS
Le #19941961
Re,

Testé avec Excel 2003 (en remplaçant seulement l'extension .xlsx par
.xls). Je n'ai pas rencontré ce problème.
Essaye de vérifier avant la ligne qui provoque l'erreur si la variable
fldr est bien initialisée en ajoutant juste avant

MsgBox fldr.Path

Par ailleurs, il y a bien une valeur dans le cellule D8 ?

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Merci Fréderic
Cela me renvoie un message d'erreur sur la ligne

wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName

variable Objet Ou variable de bloc With non définie

alors que je n'ai pas de With

Pascal

"FS"
Bonjour,

Essaye en utilisant l'objet répertoire créé avec le FileSystemObject :

'================================ >> Sub essai()
Dim strFolder As String
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object, fldr As Object

strFolder = ThisWorkbook.Path & ""
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.createfolder(strFolder & Range("d8"))
End If

Set wbk = ThisWorkbook
wbkName = "FA" & Range("D8") & _
Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName
End Sub
'================================== >>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Bonjour
Excel 2007
Avec ce code:

strFolder = ThisWorkbook.Path & ""
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
fso.createfolder (strFolder & Range("d8")
End If

Je crée le répertoire du client si inexistant et ensuite avec ce code

wbkName = "FA" & Range("D8") & Format(Now, "dd-mm-yyyy h-mm-ss") &
".xlsx"
wbk.SaveAs strFolder & wbkName

Je souhaite enregistrer la Facture dans le dossier précédement crée.
Mais elle s'enregistre dans le dossier par défaut d'Excel
Ou merde-je??
Merci
Pascal









Pascal
Le #19942561
Je regarde cela et si tu veux bien je reviendrai vers toi au cas où.
D8 n'est pas vide.
Mais je me demande si je ne suis pas en train de m'emmeler les pinceaux dans
les différentes initialisation du code.
Je me permets de t'en faire copie ici peut-être verras tu de suite ce qui
cloche
Private Sub CommandButton18_Click()

' ****** Charge le modèle de facture _
qui doit-être basé dans le même dossier ******


Set wbk = Workbooks.Add(Template:=strFolder & "ModFact.xltx")

' ****** On met à jour la raison sociale _
du client à facturer ******

Range("d8:e11").ClearContents
Range("d8").Value = Clients.Cbo1
Range("d9").Value = Clients.AdresseBox
Range("d10").Value = CDbl(Clients.CPBox)
Range("d11").Value = Clients.VilleBox
Range("c8").Value = CDbl(Clients.TextBox4)
[b47].End(xlUp).Offset(1, 0).Select

'****** Mise à jour des cellules de la facture _
basées sur le modéle ModFact.xltx ******

ActiveCell.Offset(0, 0).Value = CDbl(TextBox2)
ActiveCell.Offset(0, 1).Value = ProdBox
ActiveCell.Offset(0, 5).Value = CDbl(TextBox1)
ActiveCell.Offset(0, 6).Value = CDbl(PrixBox)
ActiveCell.Offset(0, 7).Value = CDbl(TextBox3)


' ****** Création du dossier du Client ******


Dim wbkName As String
Dim fso As Object, fldr As Object

strFolder = ThisWorkbook.Path & ""

'****** Crée le sous répertoire du client si inexistant ******

If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.createfolder(strFolder & Range("d8"))
End If

Set wbk = ThisWorkbook
wbkName = "FA" & Range("D8") & _
Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs fldr.Path & "" & wbkName<--- La ligne qui cloche

' ****** Insertion de la formule de Calcul du Montant HT ******

Range("J18").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=IF(RC[-8]<>"""",RC[-3]*RC[-2],"""")"
Selection.AutoFill Destination:=Range("J18:J47"), Type:=xlFillDefault
Range("J18:J47").Select


' ****** Saisie d'une nouvelle ligne de facture _
et réponse Oui/Non ******


AjoutLigne = MsgBox("Voulez vous saisir un nouveau Produit ?", vbYesNo,
"Confirmation...")

If AjoutLigne = vbYes Then

'****** Vide les contrôles ******

ProdBox.Value = ""
PrixBox.Value = ""
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
Range("J18").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=IF(RC[-8]<>"""",RC[-3]*RC[-2],"""")"
Selection.AutoFill Destination:=Range("J18:J47"),
Type:=xlFillDefault

' ****** On redonne le Focus à la Combo ProdBox _
Pour saisir un nouveau produit

ProdBox.SetFocus

Else


' ****** on décharge le Userform ******

Unload Me

End If

End Sub


"FS" %
Re,

Testé avec Excel 2003 (en remplaçant seulement l'extension .xlsx par
.xls). Je n'ai pas rencontré ce problème.
Essaye de vérifier avant la ligne qui provoque l'erreur si la variable
fldr est bien initialisée en ajoutant juste avant

MsgBox fldr.Path

Par ailleurs, il y a bien une valeur dans le cellule D8 ?

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Merci Fréderic
Cela me renvoie un message d'erreur sur la ligne

wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName

variable Objet Ou variable de bloc With non définie

alors que je n'ai pas de With

Pascal

"FS"
Bonjour,

Essaye en utilisant l'objet répertoire créé avec le FileSystemObject :

'================================ >>> Sub essai()
Dim strFolder As String
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object, fldr As Object

strFolder = ThisWorkbook.Path & ""
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.createfolder(strFolder & Range("d8"))
End If

Set wbk = ThisWorkbook
wbkName = "FA" & Range("D8") & _
Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName
End Sub
'================================== >>>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Bonjour
Excel 2007
Avec ce code:

strFolder = ThisWorkbook.Path & ""
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
fso.createfolder (strFolder & Range("d8")
End If

Je crée le répertoire du client si inexistant et ensuite avec ce code

wbkName = "FA" & Range("D8") & Format(Now, "dd-mm-yyyy h-mm-ss") &
".xlsx"
wbk.SaveAs strFolder & wbkName

Je souhaite enregistrer la Facture dans le dossier précédement crée.
Mais elle s'enregistre dans le dossier par défaut d'Excel
Ou merde-je??
Merci
Pascal











FS
Le #19942861
Re,

Je vois au moins 2 problèmes possibles :

- Set wbk = Workbooks.Add(Template:=strFolder & "ModFact.xltx")
Sauf si strFolder est initialisée qqpart ailleurs, cette variable est
vide et le modèle ne peut être trouvé

- Par ailleurs, un nouveau classeur, quel que soit le modèle sur lequel
il est basé n'a ni nom ni chemin. Donc dans cette ligne de code
strFolder = ThisWorkbook.Path & ""
--> ThisWorkbook.Path=""

La première chose à faire, juste après avoir créé ton nouveau classeur,
serait donc de lui donner un nom, au moins temporaire, ce qui permettra
qu'il ait du même coup un chemin valide.

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Je regarde cela et si tu veux bien je reviendrai vers toi au cas où.
D8 n'est pas vide.
Mais je me demande si je ne suis pas en train de m'emmeler les pinceaux dans
les différentes initialisation du code.
Je me permets de t'en faire copie ici peut-être verras tu de suite ce qui
cloche
Private Sub CommandButton18_Click()

' ****** Charge le modèle de facture _
qui doit-être basé dans le même dossier ******


Set wbk = Workbooks.Add(Template:=strFolder & "ModFact.xltx")

' ****** On met à jour la raison sociale _
du client à facturer ******

Range("d8:e11").ClearContents
Range("d8").Value = Clients.Cbo1
Range("d9").Value = Clients.AdresseBox
Range("d10").Value = CDbl(Clients.CPBox)
Range("d11").Value = Clients.VilleBox
Range("c8").Value = CDbl(Clients.TextBox4)
[b47].End(xlUp).Offset(1, 0).Select

'****** Mise à jour des cellules de la facture _
basées sur le modéle ModFact.xltx ******

ActiveCell.Offset(0, 0).Value = CDbl(TextBox2)
ActiveCell.Offset(0, 1).Value = ProdBox
ActiveCell.Offset(0, 5).Value = CDbl(TextBox1)
ActiveCell.Offset(0, 6).Value = CDbl(PrixBox)
ActiveCell.Offset(0, 7).Value = CDbl(TextBox3)


' ****** Création du dossier du Client ******


Dim wbkName As String
Dim fso As Object, fldr As Object

strFolder = ThisWorkbook.Path & ""

'****** Crée le sous répertoire du client si inexistant ******

If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.createfolder(strFolder & Range("d8"))
End If

Set wbk = ThisWorkbook
wbkName = "FA" & Range("D8") & _
Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs fldr.Path & "" & wbkName<--- La ligne qui cloche

' ****** Insertion de la formule de Calcul du Montant HT ******

Range("J18").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=IF(RC[-8]<>"""",RC[-3]*RC[-2],"""")"
Selection.AutoFill Destination:=Range("J18:J47"), Type:=xlFillDefault
Range("J18:J47").Select


' ****** Saisie d'une nouvelle ligne de facture _
et réponse Oui/Non ******


AjoutLigne = MsgBox("Voulez vous saisir un nouveau Produit ?", vbYesNo,
"Confirmation...")

If AjoutLigne = vbYes Then

'****** Vide les contrôles ******

ProdBox.Value = ""
PrixBox.Value = ""
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
Range("J18").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=IF(RC[-8]<>"""",RC[-3]*RC[-2],"""")"
Selection.AutoFill Destination:=Range("J18:J47"),
Type:=xlFillDefault

' ****** On redonne le Focus à la Combo ProdBox _
Pour saisir un nouveau produit

ProdBox.SetFocus

Else


' ****** on décharge le Userform ******

Unload Me

End If

End Sub


"FS" %
Re,

Testé avec Excel 2003 (en remplaçant seulement l'extension .xlsx par
.xls). Je n'ai pas rencontré ce problème.
Essaye de vérifier avant la ligne qui provoque l'erreur si la variable
fldr est bien initialisée en ajoutant juste avant

MsgBox fldr.Path

Par ailleurs, il y a bien une valeur dans le cellule D8 ?

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Merci Fréderic
Cela me renvoie un message d'erreur sur la ligne

wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName

variable Objet Ou variable de bloc With non définie

alors que je n'ai pas de With

Pascal

"FS"
Bonjour,

Essaye en utilisant l'objet répertoire créé avec le FileSystemObject :

'================================ >>>> Sub essai()
Dim strFolder As String
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object, fldr As Object

strFolder = ThisWorkbook.Path & ""
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.createfolder(strFolder & Range("d8"))
End If

Set wbk = ThisWorkbook
wbkName = "FA" & Range("D8") & _
Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName
End Sub
'================================== >>>>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Bonjour
Excel 2007
Avec ce code:

strFolder = ThisWorkbook.Path & ""
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
fso.createfolder (strFolder & Range("d8")
End If

Je crée le répertoire du client si inexistant et ensuite avec ce code

wbkName = "FA" & Range("D8") & Format(Now, "dd-mm-yyyy h-mm-ss") &
".xlsx"
wbk.SaveAs strFolder & wbkName

Je souhaite enregistrer la Facture dans le dossier précédement crée.
Mais elle s'enregistre dans le dossier par défaut d'Excel
Ou merde-je??
Merci
Pascal














Pascal
Le #19947941
Merci Frédéric,
Je vais bosser là dessus selon tes indications, mais pas simple 2007.
Pascal
"FS"
Re,

Je vois au moins 2 problèmes possibles :

- Set wbk = Workbooks.Add(Template:=strFolder & "ModFact.xltx")
Sauf si strFolder est initialisée qqpart ailleurs, cette variable est vide
et le modèle ne peut être trouvé

- Par ailleurs, un nouveau classeur, quel que soit le modèle sur lequel il
est basé n'a ni nom ni chemin. Donc dans cette ligne de code
strFolder = ThisWorkbook.Path & ""
--> ThisWorkbook.Path=""

La première chose à faire, juste après avoir créé ton nouveau classeur,
serait donc de lui donner un nom, au moins temporaire, ce qui permettra
qu'il ait du même coup un chemin valide.

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Je regarde cela et si tu veux bien je reviendrai vers toi au cas où.
D8 n'est pas vide.
Mais je me demande si je ne suis pas en train de m'emmeler les pinceaux
dans les différentes initialisation du code.
Je me permets de t'en faire copie ici peut-être verras tu de suite ce qui
cloche
Private Sub CommandButton18_Click()

' ****** Charge le modèle de facture _
qui doit-être basé dans le même dossier ******


Set wbk = Workbooks.Add(Template:=strFolder & "ModFact.xltx")

' ****** On met à jour la raison sociale _
du client à facturer ******

Range("d8:e11").ClearContents
Range("d8").Value = Clients.Cbo1
Range("d9").Value = Clients.AdresseBox
Range("d10").Value = CDbl(Clients.CPBox)
Range("d11").Value = Clients.VilleBox
Range("c8").Value = CDbl(Clients.TextBox4)
[b47].End(xlUp).Offset(1, 0).Select

'****** Mise à jour des cellules de la facture _
basées sur le modéle ModFact.xltx ******

ActiveCell.Offset(0, 0).Value = CDbl(TextBox2)
ActiveCell.Offset(0, 1).Value = ProdBox
ActiveCell.Offset(0, 5).Value = CDbl(TextBox1)
ActiveCell.Offset(0, 6).Value = CDbl(PrixBox)
ActiveCell.Offset(0, 7).Value = CDbl(TextBox3)


' ****** Création du dossier du Client ******


Dim wbkName As String
Dim fso As Object, fldr As Object

strFolder = ThisWorkbook.Path & ""

'****** Crée le sous répertoire du client si inexistant ******

If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.createfolder(strFolder & Range("d8"))
End If

Set wbk = ThisWorkbook
wbkName = "FA" & Range("D8") & _
Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs fldr.Path & "" & wbkName<--- La ligne qui cloche

' ****** Insertion de la formule de Calcul du Montant HT ******

Range("J18").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=IF(RC[-8]<>"""",RC[-3]*RC[-2],"""")"
Selection.AutoFill Destination:=Range("J18:J47"), Type:=xlFillDefault
Range("J18:J47").Select


' ****** Saisie d'une nouvelle ligne de facture _
et réponse Oui/Non ******


AjoutLigne = MsgBox("Voulez vous saisir un nouveau Produit ?",
vbYesNo, "Confirmation...")

If AjoutLigne = vbYes Then

'****** Vide les contrôles ******

ProdBox.Value = ""
PrixBox.Value = ""
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
Range("J18").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=IF(RC[-8]<>"""",RC[-3]*RC[-2],"""")"
Selection.AutoFill Destination:=Range("J18:J47"),
Type:=xlFillDefault

' ****** On redonne le Focus à la Combo ProdBox _
Pour saisir un nouveau produit

ProdBox.SetFocus

Else


' ****** on décharge le Userform ******

Unload Me

End If

End Sub


"FS" %
Re,

Testé avec Excel 2003 (en remplaçant seulement l'extension .xlsx par
.xls). Je n'ai pas rencontré ce problème.
Essaye de vérifier avant la ligne qui provoque l'erreur si la variable
fldr est bien initialisée en ajoutant juste avant

MsgBox fldr.Path

Par ailleurs, il y a bien une valeur dans le cellule D8 ?

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Merci Fréderic
Cela me renvoie un message d'erreur sur la ligne

wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName

variable Objet Ou variable de bloc With non définie

alors que je n'ai pas de With

Pascal

"FS"
Bonjour,

Essaye en utilisant l'objet répertoire créé avec le FileSystemObject :

'================================ >>>>> Sub essai()
Dim strFolder As String
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object, fldr As Object

strFolder = ThisWorkbook.Path & ""
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.createfolder(strFolder & Range("d8"))
End If

Set wbk = ThisWorkbook
wbkName = "FA" & Range("D8") & _
Format(Now, "dd-mm-yyyy h-mm-ss") & ".xlsx"
wbk.SaveAs fldr.Path & "" & wbkName 'strFolder & wbkName
End Sub
'================================== >>>>>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Pascal a écrit :
Bonjour
Excel 2007
Avec ce code:

strFolder = ThisWorkbook.Path & ""
Dim wbk As Workbook
Dim wbkName As String
Dim fso As Object
' Crée le sous répertoire du client si inexistant
If Dir(strFolder & Range("d8"), vbDirectory) = "" Then
Set fso = CreateObject("Scripting.FileSystemObject")
fso.createfolder (strFolder & Range("d8")
End If

Je crée le répertoire du client si inexistant et ensuite avec ce code

wbkName = "FA" & Range("D8") & Format(Now, "dd-mm-yyyy h-mm-ss") &
".xlsx"
wbk.SaveAs strFolder & wbkName

Je souhaite enregistrer la Facture dans le dossier précédement crée.
Mais elle s'enregistre dans le dossier par défaut d'Excel
Ou merde-je??
Merci
Pascal















Publicité
Poster une réponse
Anonyme