Numéroté un fichier excel en vb6 de 0 à 10

kobejul08 Messages postés 113 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 3 octobre 2005 - 29 juil. 2005 à 14:59
kobejul08 Messages postés 113 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 3 octobre 2005 - 1 août 2005 à 12:29
Bonjour ,

Si quelqu'un pouvait m'aider ça serait chouette car je suis dessus depuis un bout de temps et je ne vois ou ça pose le problème . voici mon code..

nomASauver = Year(Now) & "-" & Month(Now) & "-" & Day(Now)
nomASauver = nomASauver & CurCompany & "-" & num


nomASauver = "C:\ACE\offre" & nomASauver & ".xls"


num = 0 ' Initialise le premier numéro à utiliser
Do While Dir(nomASauver & CStr(num) & ".xls") <> ""
' On en a trouvé un : Incrémente le n°
num = num + 1
DoEvents
Loop
' Ok, le dernier n° pas trouvé --> Ce sera notre n°
nomASauver = "C:\ACE\offre" & nomASauver & CStr(num) & ".xls"
monxl.ActiveWorkbook.SaveAs nomASauver

monxl.ActiveWorkbook.Save

Voilà j'ai toujours un message d'erreur et pourtant l'emplacement etc est juste qq un peut m'aider Merci.

8 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
29 juil. 2005 à 19:01
je ne comprend pas trop comment tu fais :
à l'initialisation, tu as
nomASauver = "2005-07-29BidonCie-0"
(en espérant que CurCompany ne soit pas vide)

ensuite, nomASauver = "C:\ACE\offre\2005-07-29BidonCie-0.xls"
num = 0
tu fais Dir....
donc tu cherches le premier fichier qui se nomme "C:\ACE\offre\2005-07-29BidonCie-0.xls0.xls"

déjà là, tu pars mal.... ;)

et pour "nomASauver", je te conseillerais plutôt une syntaxe telle que
nomASauver = Format(Date, "YYYY-MM-DD") & CurCompany etc.....

en l'attente...
PCPT
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 9
30 juil. 2005 à 05:54
Salut,

Tu peux essayer ceci ...



Dim monxl As Excel.Application ' déclaration

Set monxl = New Excel.Application ' instanciation



nomASauver = Year(Now) & "-" & Month(Now) & "-" & Day(Now)

nomASauver = nomASauver & CurCompany & "-" & num

nomASauver = App.path & "" & nomASauver '& ".xls"

monxl.Visible = True ' ou False si tu veux cacher



num = 0 ' Initialise le premier numéro à utiliser

Do While Dir(nomASauver & CStr(num) & ".xls") <> ""

num = num + 1 ' On en a trouvé un : Incrémente le n°

DoEvents

Loop

nomASauver = nomASauver & CStr(num) & ".xls" ' Ok, le dernier n° pas trouvé --> Ce sera notre n°

Call monxl.Workbooks.Add ' si pas de feuille alors erreur de sauvegarde !!



monxl.ActiveWorkbook.SaveAs nomASauver ' sauver le classeur

monxl.ActiveWorkbook.save

monxl.Quit ' Quitter Excel



Set monxl = Nothing ' libérer se qu'on a crée


++

Zlub
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
30 juil. 2005 à 09:27
Zlub, tu laisses les mêmes erreurs au même endroit.....
PCPT
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 9
30 juil. 2005 à 09:28
Salut,

non c'est en commentaires .... mais j'ai pas mis la colorisation...

++

Zlub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
30 juil. 2005 à 10:24
en effet, le '& ".xls" m'avait échappé....
je préfère tout de même ma démarche ;)
et tu as ajouté celle pour excel

PCPT
0
kobejul08 Messages postés 113 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 3 octobre 2005
1 août 2005 à 12:19
bon merci pour les réponses mais le mélange des deux m'a plutot embrouiller..
alors je mets toute la "private sub " ça sera plus simple je pense et mieux pour me corriger Merci!!

Private Sub BntEnd_Click()


Set monxl = New Excel.Application

monxl.Visible = True
AppPath = App.Path
If Right(AppPath, 1) <> "" Then
AppPath = App.Path & ""
monxl.Workbooks.Open AppPath & "offre.xls"
'If Mid(TxtPrix.Text, 0, 1) = "," Then
'Replace TxtPrix.Text
'End If

Dim Row



' Recherche la dernière ligne utilisée
Row = ActiveSheet.UsedRange.Row
'Row = Row + 1
With ActiveSheet
If TxtQuantité.Text <> "" Then
Row = Row + 1

monxl.Cells(Row, 1).Value = TxtMachine.Text
monxl.Cells(Row, 2).Value = TxtQuantité.Text
monxl.Cells(Row, 3).Value = TxtPrix.Text
End If
End With


Dim i As Integer
For i = 0 To 33
With ActiveSheet
If TxtQuantité1(i).Text <> "" Then
Row = Row + 1
Select Case i
Case 0
monxl.Cells(Row, 1).Value = Txtdétails1(i).Text
monxl.Cells(Row, 2).Value = TxtQuantité1(i).Text
monxl.Cells(Row, 3).Value = Txtprix1(i).Text
Case Else
monxl.Cells(Row, 1).Value = Txtdétails1(i).Text
monxl.Cells(Row, 2).Value = TxtQuantité1(i).Text
monxl.Cells(Row, 3).Value = Txtprix1(i).Text
End Select
End If
End With
Next i


nomASauver = Year(Now) & "-" & Month(Now) & "-" & Day(Now)
nomASauver = nomASauver & CurCompany & "-" & num


nomASauver = "C:\ACE\offre" & nomASauver & ".xls"


num = 0 ' Initialise le premier numéro à utiliser
Do While Dir(nomASauver & CStr(num) & ".xls") <> ""
' On en a trouvé un : Incrémente le n°
num = num + 1
' DoEvents
Loop
' Ok, le dernier n° pas trouvé --> Ce sera notre n°
nomASauver = "C:\ACE\offre" & nomASauver & CStr(num) & " .xls"
nomASauver = "C:\ACE\offre" & nomASauver & ".xls"

monxl.ActiveWorkbook.SaveAs nomASauver

monxl.ActiveWorkbook.Save


End If
End Sub
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 9
1 août 2005 à 12:24
Salut,

Private Sub BntEnd_Click()

Dim monxl As Excel.Application ' déclaration
Set monxl = New Excel.Application ' instanciation

monxl.Visible = True
AppPath = App.Path
If Right(AppPath, 1) <> "" Then
AppPath = App.Path & ""
monxl.Workbooks.Open AppPath & "offre.xls"
'If Mid(TxtPrix.Text, 0, 1) = "," Then
'Replace TxtPrix.Text
'End If

Dim Row



' Recherche la dernière ligne utilisée
Row = ActiveSheet.UsedRange.Row
'Row = Row + 1
With ActiveSheet
If TxtQuantité.Text <> "" Then
Row = Row + 1

monxl.Cells(Row, 1).Value = TxtMachine.Text
monxl.Cells(Row, 2).Value = TxtQuantité.Text
monxl.Cells(Row, 3).Value = TxtPrix.Text
End If
End With


Dim i As Integer
For i = 0 To 33
With ActiveSheet
If TxtQuantité1(i).Text <> "" Then
Row = Row + 1
Select Case i
Case 0
monxl.Cells(Row, 1).Value = Txtdétails1(i).Text
monxl.Cells(Row, 2).Value = TxtQuantité1(i).Text
monxl.Cells(Row, 3).Value = Txtprix1(i).Text
Case Else
monxl.Cells(Row, 1).Value = Txtdétails1(i).Text
monxl.Cells(Row, 2).Value = TxtQuantité1(i).Text
monxl.Cells(Row, 3).Value = Txtprix1(i).Text
End Select
End If
End With
Next i




nomASauver = Year(Now) & "-" & Month(Now) & "-" & Day(Now)
nomASauver = nomASauver & CurCompany & "-" & num
nomASauver = "C:\ACE\offre" & nomASauver
monxl.Visible = True ' ou False si tu veux cacher

num = 0 ' Initialise le premier numéro à utiliser
Do While Dir(nomASauver & CStr(num) & ".xls") <> ""
num = num + 1 ' On en a trouvé un : Incrémente le n°
DoEvents
Loop
nomASauver = nomASauver & CStr(num) & ".xls" ' Ok, le dernier n° pas trouvé --> Ce sera notre n°
Call monxl.Workbooks.Add ' si pas de feuille alors erreur de sauvegarde !!

monxl.ActiveWorkbook.SaveAs nomASauver ' sauver le classeur
monxl.ActiveWorkbook.save
monxl.Quit ' Quitter Excel



End If
End Sub

++

Zlub
0
kobejul08 Messages postés 113 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 3 octobre 2005
1 août 2005 à 12:29
j'ai déjà essayé ça ... il me sauve un classeur blanc ... et il numérote les fichiers ainsi..

bidon-00
bidon-01
bidon-10
bidon-02
bidon-20

il y a encore un problème qq part je pense
0