OVH Cloud OVH Cloud

incrémentation de l'enregistrement de .Chart.Export [XL2000]

4 réponses
Avatar
J
Bonjour à tous (XL2000)

La proc suivante (dont j'ai oublié l'auteur, hélas) me permet de copier
sous forme gif une partie de feuille Excel.

Mais quand je fais plusieurs images successives, elles s'enregistrent
toutes en Test.gif, je perds ainsi l'image précédente, sauf si je l'ai
renommée d'abord via l'explorateur.

J'ai ajouté la boucle If qui me permet de sauver en Test2, mais je ne
sais pas comment avoir automatiquement test1, 2, 3 etc
ou bien la possibilité de SaveAs... en cas de besoin?
merci, pour l'aide
@+
J@@

'*********
Sub ExportFormatGif()
Dim plage As range
Set plage = Application.InputBox(Prompt:="Sélectionner votre zone:
(Ex.A1:B10) ", _
Title:="Sélection de zone ", Default:="$A$1", Type:=8)
Application.ScreenUpdating = False
Workbooks.Add
plage.CopyPicture
ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, _
Selection.Width, Selection.Height).Chart
.Paste
If Dir("C:\windows\Temp\Test.gif") = "" Then '*ajout perso*
.Export "C:\windows\Temp\Test.gif", "GIF"
Else: .Export "C:\windows\Temp\Test2.gif", "GIF" '*ajout perso*
'je voudrais que le nom s'incrémente Test3, Test4 ...
End If
End With
ActiveWorkbook.Close False
End Sub
'*********

4 réponses

Avatar
ABED HADDOU
Bonsoir "J@@"
au moment où tu ferme ton classeur le nom de celui ci sera
Test_ + la date + l'heure de ferméture du classeur
Exemple : Test_07-05-06 0-32-23.xls comme ça tu perde jamais ton travail.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim myDate As String
myDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")
fichier = "Test_" & myDate
ThisWorkbook.SaveAs Filename:=Name & fichier & ".xls"
End Sub

Cordialement
Abed_H


"J@@" wrote:

Bonjour à tous (XL2000)

La proc suivante (dont j'ai oublié l'auteur, hélas) me permet de copier
sous forme gif une partie de feuille Excel.

Mais quand je fais plusieurs images successives, elles s'enregistrent
toutes en Test.gif, je perds ainsi l'image précédente, sauf si je l'ai
renommée d'abord via l'explorateur.

J'ai ajouté la boucle If qui me permet de sauver en Test2, mais je ne
sais pas comment avoir automatiquement test1, 2, 3 etc
ou bien la possibilité de SaveAs... en cas de besoin?
merci, pour l'aide
@+
J@@

'*********
Sub ExportFormatGif()
Dim plage As range
Set plage = Application.InputBox(Prompt:="Sélectionner votre zone:
(Ex.A1:B10) ", _
Title:="Sélection de zone ", Default:="$A$1", Type:=8)
Application.ScreenUpdating = False
Workbooks.Add
plage.CopyPicture
ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, _
Selection.Width, Selection.Height).Chart
.Paste
If Dir("C:windowsTempTest.gif") = "" Then '*ajout perso*
.Export "C:windowsTempTest.gif", "GIF"
Else: .Export "C:windowsTempTest2.gif", "GIF" '*ajout perso*
'je voudrais que le nom s'incrémente Test3, Test4 ...
End If
End With
ActiveWorkbook.Close False
End Sub
'*********



Avatar
J
Bonsoir Abed
merci pour ta réponse,
Ta proposition marche très bien pour sauver le fichier XL à la fermeture,
mais mon problème est que j'exporte une image qui s'enregistre
automatiquement en format GIF, qui est autonome, il ne dépend pas de la
fermeture de mon fichier excel.
C'est l'absence d'option de .Chart.Export qui me gêne.
je cherche encore
@+
J@@

Bonsoir "J@@"
au moment où tu ferme ton classeur le nom de celui ci sera
Test_ + la date + l'heure de ferméture du classeur
Exemple : Test_07-05-06 0-32-23.xls comme ça tu perde jamais ton travail.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim myDate As String
myDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")
fichier = "Test_" & myDate
ThisWorkbook.SaveAs Filename:=Name & fichier & ".xls"
End Sub

Cordialement
Abed_H

"J@@" wrote: (XL2000)

La proc suivante (dont j'ai oublié l'auteur, hélas) me permet de copier
sous forme gif une partie de feuille Excel.

Mais quand je fais plusieurs images successives, elles s'enregistrent
toutes en Test.gif, je perds ainsi l'image précédente, sauf si je l'ai
renommée d'abord via l'explorateur.

J'ai ajouté la boucle If qui me permet de sauver en Test2, mais je ne
sais pas comment avoir automatiquement test1, 2, 3 etc
ou bien la possibilité de SaveAs... en cas de besoin?

'*********
Sub ExportFormatGif()
Dim plage As range
Set plage = Application.InputBox(Prompt:="Sélectionner votre zone:
(Ex.A1:B10) ", _
Title:="Sélection de zone ", Default:="$A$1", Type:=8)
Application.ScreenUpdating = False
Workbooks.Add
plage.CopyPicture
ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, _
Selection.Width, Selection.Height).Chart
.Paste
If Dir("C:windowsTempTest.gif") = "" Then '*ajout perso*
.Export "C:windowsTempTest.gif", "GIF"
Else: .Export "C:windowsTempTest2.gif", "GIF" '*ajout perso*
'je voudrais que le nom s'incrémente Test3, Test4 ...
End If
End With
ActiveWorkbook.Close False
End Sub
'*********




Avatar
docm
Bonjour J@@.

Voici une technique pour incrémenter le numéro si le fichier existe déjà:

Sub ExportFormatGif()
Dim plage As Range
Set plage = Application.InputBox(Prompt:="Sélectionner votre
zone:(Ex.A1:B10) ", _
Title:="Sélection de zone ", Default:="$A$1", Type:=8)
Application.ScreenUpdating = False
Workbooks.Add
plage.CopyPicture
ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, _
Selection.Width, Selection.Height).Chart
.Paste
numero = 0
nom = "C:windowsTempTest" & numero & ".gif"
While Dir(nom) <> ""
numero = numero + 1
nom = "C:windowsTempTest" & numero & ".gif"
Wend
.Export nom, "GIF"

End With
ActiveWorkbook.Close False
End Sub

Amicalement
docm

"J@@" wrote in message
news:
Bonjour à tous (XL2000)

La proc suivante (dont j'ai oublié l'auteur, hélas) me permet de copier
sous forme gif une partie de feuille Excel.

Mais quand je fais plusieurs images successives, elles s'enregistrent
toutes en Test.gif, je perds ainsi l'image précédente, sauf si je l'ai
renommée d'abord via l'explorateur.

J'ai ajouté la boucle If qui me permet de sauver en Test2, mais je ne
sais pas comment avoir automatiquement test1, 2, 3 etc
ou bien la possibilité de SaveAs... en cas de besoin?
merci, pour l'aide
@+
J@@

'*********
Sub ExportFormatGif()
Dim plage As range
Set plage = Application.InputBox(Prompt:="Sélectionner votre zone:
(Ex.A1:B10) ", _
Title:="Sélection de zone ", Default:="$A$1", Type:=8)
Application.ScreenUpdating = False
Workbooks.Add
plage.CopyPicture
ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, _
Selection.Width, Selection.Height).Chart
.Paste
If Dir("C:windowsTempTest.gif") = "" Then '*ajout perso*
.Export "C:windowsTempTest.gif", "GIF"
Else: .Export "C:windowsTempTest2.gif", "GIF" '*ajout perso*
'je voudrais que le nom s'incrémente Test3, Test4 ...
End If
End With
ActiveWorkbook.Close False
End Sub
'*********


Avatar
J
Bonjour docm
impeccable, c'est exactement ce que je cherche :-)
@+
amicalement
J@@

Bonjour J@@.

Voici une technique pour incrémenter le numéro si le fichier existe déjà:

Sub ExportFormatGif()
Dim plage As Range
Set plage = Application.InputBox(Prompt:="Sélectionner votre
zone:(Ex.A1:B10) ", _
Title:="Sélection de zone ", Default:="$A$1", Type:=8)
Application.ScreenUpdating = False
Workbooks.Add
plage.CopyPicture
ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, _
Selection.Width, Selection.Height).Chart
.Paste
numero = 0
nom = "C:windowsTempTest" & numero & ".gif"
While Dir(nom) <> ""
numero = numero + 1
nom = "C:windowsTempTest" & numero & ".gif"
Wend
.Export nom, "GIF"

End With
ActiveWorkbook.Close False
End Sub

Amicalement
docm

"J@@" wrote in message
news: