VBA:Enregistrement de facture dans un dossier

Fermé
gokhan - 8 mai 2010 à 13:05
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 - 8 mai 2010 à 13:51
Sur Excel, je souhaite enregistrer un fichier facture et un fichier gestion stock; voici la partie de mon code où le code est HYPER long !
Je ne comprends pas pourquoi ?

Quelqu'un pourrait-il m'aider ?

'enregistre les ventes sans demander ecraser oui ou non
chemin = Workbooks("facture").Path
Application.DisplayAlerts = False
Workbooks("gestion_stock").SaveAs chemin & ("\gestion_stock.xls")
Application.DisplayAlerts = True

'Enregistre la facture créé avec son numéro et le nom du client

a = Workbooks("facture").Worksheets("facture").Range("K6").Value
b = Workbooks("facture").Worksheets("facture").Range("C9").Value

Set NewBook = Workbooks("facture")
chemin = Workbooks("facture").Path
Do
fName = chemin & "\FACTURE\" & "facture N°" & a & " " & b
Loop Until fName <> False

NewBook.SaveAs Filename:=fName
Workbooks("facture N°" & a & " " & b).Activate

'reouvre le fichier facture pour enregistrer le n° de facture incrémenté
chemin = Workbooks("gestion_stock").Path
Workbooks.Open chemin & "\facture.xls"
Workbooks("facture").Worksheets("facture").Range("K6").Value = a
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs chemin & "\facture.xls"
Application.DisplayAlerts = True
ActiveWorkbook.Close

MsgBox "Votre facture a bien été enregistrée sous le Numéro de facture N°" & a & " " & b

Case vbCancel

GoTo lastlinee
End Select

Exit Sub

LASTLINE:
MsgBox ("Le N° Saisie semble ne pas exister"), vbCritical

lastlinee:
MsgBox "Enregistrement annulé, veuillez corriger votre facture", vbExclamation

End Sub

2 réponses

Petite remarque : "hyper long"= au moment de l'execution, le programme tourne pendant un bon moment avant de mettre le résultat.
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
8 mai 2010 à 13:51
bonjours,
cela provient surement de la boucle
Do
fName = chemin & "\FACTURE\" & "facture N°" & a & " " & b
Loop Until fName <> False 
et si le classeur est "lourd" cela peut prendre du temps a enregistrer
0