Macro pour creer et enregistrer un repertoire

WITER

XLDnaute Occasionnel
Bonjour à tous, voila j'ai cette macro qui me permet grace à un bouton d'enregistrer une photo de ma feuille en lui donnant le non des cellules
C5 & "Photo" & A201.

Je voudrait la modifier pour qu'elle me creer un repertoir dans C:pHOTO/Mes images et quelle donne comme nom de repertoire le contenu de la cellule
C5
et comme nom pour la photo la compilation de
C5 & "Photo" & A201

merci d'avance pour votre aide


Sub ExportPhoto()

Dim Chemin As Variant
Chemin = Application.GetSaveAsFilename(InitialFileName:=Range("C5") & " Photo " & Range("A201"), FileFilter:="Fichiers Image GIF (*.gif), *.gif")
If Chemin = False Then Exit Sub
Application.ScreenUpdating = False
With Range("B4:L30")
'Code basé sur une procédure de gael charlery
.CopyPicture xlScreen, xlPicture
With ActiveSheet.ChartObjects.Add(1, 1, .Width, .Height)
With .Chart
.ChartArea.Border.LineStyle = 0
.Paste
.Export Filename:=Chemin, FilterName:="GIF"
End With
.Delete
End With
End With
Application.ScreenUpdating = True

MsgBox " La photo à été enregistrée ! " '

End Sub
 

Spitnolan08

XLDnaute Barbatruc
Re : Macro pour creer et enregistrer un repertoire

Bonjour,

En t'inspirant de ce code que j'ai fourni il y a peu sur ce forum :
Code:
Sub test()
[COLOR=Black]'***Enregistrer une image d'un fichier Excel vers le disque dur[/COLOR]
Dim Img As Object
Dim ch As ChartObject
Dim FichNom as string

FichNom = Range("C5").Value & "Photo" & Range("A201").Value

Set Img = ActiveSheet.Shapes("Picture 1")
Img.Copy
'***crée un objet graphique
Set ch = ActiveSheet.ChartObjects.Add(0, 0, Img.Width, Img.Height)
ch.Border.LineStyle = 0
'***Colle l'image dans le graphique
ch.Chart.Paste
'***Enregistre le graphique sous un format image (JPEG, GIF, ...)
ch.Chart.Export "C:PHOTO/Mes images\" & "FichNom" & ".jpeg", FilterName:="JPEG"
ch.Delete
End Sub
Cordialement
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour creer et enregistrer un repertoire

Bonjour Witer, Spitnolan:)

Si j'ai bien compris, le code ci dessous pour créer un répertoire et exporter le graph à l'intérieur :

Code:
'pour créer un sous dossier dans un dossier nommé "DOSSIERS"
MkDir "C:\DOSSIERS\" & Range("C5").Value

With .Chart
.ChartArea.Border.LineStyle = 0
.Paste
.Export "C:\DOSSIERS\" & Range("C5").Value & "\photo " & Range("A201").Value & ".gif", "GIF"
End With

bon après midi
@+

Edition : A intercaler dans ton code
 
Dernière édition:

WITER

XLDnaute Occasionnel
Re : Macro pour creer et enregistrer un repertoire

Dans ma macro j'exporte l'image contenu des cellules B4:L30 avec comme nom le contenu de la cellule C5 le texte "Photo" et la cellule A201

Comment rajouter tous ca à la macro que tu ma donné ?
 

Spitnolan08

XLDnaute Barbatruc
Re : Macro pour creer et enregistrer un repertoire

Re,

et comme ca :
Code:
Sub test()
'***Enregistrer une image d'un fichier Excel vers le disque dur
Dim Img As Object
Dim ch As ChartObject
Dim FichNom as string

FichNom = Range("C5").Value & "Photo" & Range("A201").Value

Set Img = Range("B4:L30")
Img.CopyPicture xlScreen, xlPicture
'***crée un objet graphique
Set ch = ActiveSheet.ChartObjects.Add(0, 0, Img.Width, Img.Height)
ch.Border.LineStyle = 0
'***Colle l'image dans le graphique
ch.Chart.Paste
'***Enregistre le graphique sous un format image (JPEG, GIF, ...)
ch.Chart.Export "C:PHOTO\Mes images\" & "FichNom" & ".jpeg", FilterName:="JPEG"
ch.Delete
End Sub
Cordialement
 

WITER

XLDnaute Occasionnel
Re : Macro pour creer et enregistrer un repertoire

C'est presque bon, la macro me créer bien la photo dans
C:pHOTO\Mes images\

photo
C:pHOTO\Mes images\FichNom.jpeg


mais en faite (si dans C5 j'ai le texte "PARIS" et dans A201 le texte "1") , elle devrait me créer dans
C:pHOTO\Mes images\
le repertoire
C:pHOTO\Mes images\PARIS\
puis m'enregistrer dedan la photo
C:pHOTO\Mes images\PARIS\PARISFichNom1.jpeg

merci une fois de plus pour ton aide
 

Spitnolan08

XLDnaute Barbatruc
Re : Macro pour creer et enregistrer un repertoire

Re,

il fallait préciser que tu étais débutant...
Code:
 Sub test()
'***Enregistrer une image d'un fichier Excel vers le disque dur
Dim Img As Object
Dim ch As ChartObject
Dim FichNom as string, Chemin as string

FichNom = Range("C5").Value & "Photo" & Range("A201").Value
Chemin = "C:PHOTO\Mes images\" & Range("C5").Value & "\"

Set Img = Range("B4:L30")
Img.CopyPicture xlScreen, xlPicture
'***crée un objet graphique
Set ch = ActiveSheet.ChartObjects.Add(0, 0, Img.Width, Img.Height)
ch.Border.LineStyle = 0
'***Colle l'image dans le graphique
ch.Chart.Paste
'***pour créer un sous dossier dans un dossier nommé C5.value
MkDir Chemin
'***Enregistre le graphique sous un format image (JPEG, GIF, ...)
ch.Chart.Export Chemin & FichNom & ".jpeg", FilterName:="JPEG"
ch.Delete
End Sub
Mais rectifié sans filet et sans tester...

Cordialement
 

WITER

XLDnaute Occasionnel
Re : Macro pour creer et enregistrer un repertoire

Effectivement j'aurais du preciser, lollll
par contre sans trop abuser de tes connaissances VBA,

serait t'il possible d'ajouter une variante au code

si le repertoire créer (texte cellule "C5" ) existe deja dans C:pHOTO\Mes images\,
il faudrait que la macro ne le créer pas
une 2 eme fois mais enregistre simplement la nouvelle photo dedans


merci une fois de plus
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour creer et enregistrer un repertoire

Re

en l'absence de Spitnolan :

Code:
Sub ExportPhoto()
Sub test()
'***Enregistrer une image d'un fichier Excel vers le disque dur
Dim Img As Object, ch As ChartObject
Dim FichNom As String, Chemin As String
FichNom = Range("C5").Value & "Photo" & Range("A201").Value
Chemin = "C:\PHOTO\Mes images\" & Range("C5").Value
Set Img = Range("B4:L30")
Img.CopyPicture xlScreen, xlPicture
'***crée un objet graphique
Set ch = ActiveSheet.ChartObjects.Add(0, 0, Img.Width, Img.Height)
ch.Border.LineStyle = 0
'***Colle l'image dans le graphique
ch.Chart.Paste
'***pour créer un sous dossier dans un dossier nommé C5.value
[B][COLOR="Red"]If Dir(Chemin) = "" Then MkDir Chemin[/COLOR][/B]
'***Enregistre le graphique sous un format image (JPEG, GIF, ...)
ch.Chart.Export Chemin & FichNom & ".jpeg", FilterName:="JPEG"
ch.Delete
End Sub

@+

Edition : manquait un "\" dans le chamin
 
Dernière édition:

Spitnolan08

XLDnaute Barbatruc
Re : Macro pour creer et enregistrer un repertoire

Re,

Remplace
Code:
'***pour créer un sous dossier dans un dossier nommé C5.value
MkDir Chemin
par
Code:
'***Vérifie si le sous répertoire existe et le crée sinon
If Dir(Chemin, vbDirectory) = "" Then MkDir Chemin
Cordialement

Edit : Désolé Pierrot, pas rafraichi...
Presque la même chose
Mais je ne suis pas sûr que ta version fonctionne sans le vbdirectory
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg