Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Save AS

7 réponses
Avatar
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

7 réponses

Avatar
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





Avatar
MichDenis
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
Avatar
Pascal
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" a écrit dans le message de news:

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






Avatar
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" a écrit dans le message de news:

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









Avatar
Pascal
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" a écrit dans le message de news:
%
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" a écrit dans le message de news:

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











Avatar
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" a écrit dans le message de news:
%
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" a écrit dans le message de news:

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














Avatar
Pascal
Merci Frédéric,
Je vais bosser là dessus selon tes indications, mais pas simple 2007.
Pascal
"FS" a écrit dans le message de news:

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" a écrit dans le message de news:
%
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" a écrit dans le message de news:

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