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

Mon fichier excel à une indigestion...

6 réponses
Avatar
Christophe CAMPAIN
Bonjour à tous,

Je suis en train de développer une application Excel me permettant de
traiter des images par lot --> réduction dimensions et poids.
Pour cela j'explore des pistes qui m'ont été données sur le forum:
1 - importation d'une image
2 - réduction dimenssions,
3 - CopyPicture du résultat
4 - Collage dans un "ChartObject"
5 - export au format JPEG
Le problème, c'est qu'au fur et à mesure de mes tests, mon fichier grossi
sans qu'il n'y ai rien de vissible sur les feuille (20 Mo en une dizaine de
tests...).
Je pensais avoir pris mes précautions avec mes "Delete", à priori ce n'est
pas suffisant...

Une idée de l'origine du problème ?

Par avance merci

@+
Kristof

Voici un extrait de mon code :
'------------------------------
........
With Application.FileSearch
.NewSearch
.LookIn = DossierDeDépart
.SearchSubFolders = True 'à adapter éventuellement
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count

Set Image = ActiveSheet.Pictures.Insert(.FoundFiles(I))

With Image
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = Hauteur
.ShapeRange.Width = Largeur
.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End With

Set gr = ActiveSheet.ChartObjects.Add(0, 0, Largeur, Hauteur)

gr.Chart.Paste
' Enregistre l'image dans le répertoire de destination
gr.Chart.Export DossierArrivée & "\" & PréfixeImages & I & ".jpg"
'"C:\Documents and Settings\ccampain\Mes documents\Mes
images\TestImage1.jpg"
' Supprime le cadre objet
gr.Delete
Image.Delete
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If
'------------------------------

6 réponses

Avatar
Michel Pierron
Bonsoir Christophe;
Essaie plutôt avec ces petites modifs:
' ------
' Supprime le cadre objet
Set gr = Nothing
Set Image = Nothing
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If

MP

"Christophe CAMPAIN" a écrit dans le
message de news:
Bonjour à tous,

Je suis en train de développer une application Excel me permettant de
traiter des images par lot --> réduction dimensions et poids.
Pour cela j'explore des pistes qui m'ont été données sur le forum:
1 - importation d'une image
2 - réduction dimenssions,
3 - CopyPicture du résultat
4 - Collage dans un "ChartObject"
5 - export au format JPEG
Le problème, c'est qu'au fur et à mesure de mes tests, mon fichier grossi
sans qu'il n'y ai rien de vissible sur les feuille (20 Mo en une dizaine de
tests...).
Je pensais avoir pris mes précautions avec mes "Delete", à priori ce n'est
pas suffisant...

Une idée de l'origine du problème ?

Par avance merci

@+
Kristof

Voici un extrait de mon code :
'------------------------------
........
With Application.FileSearch
.NewSearch
.LookIn = DossierDeDépart
.SearchSubFolders = True 'à adapter éventuellement
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count

Set Image = ActiveSheet.Pictures.Insert(.FoundFiles(I))

With Image
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = Hauteur
.ShapeRange.Width = Largeur
.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End With

Set gr = ActiveSheet.ChartObjects.Add(0, 0, Largeur, Hauteur)

gr.Chart.Paste
' Enregistre l'image dans le répertoire de destination
gr.Chart.Export DossierArrivée & "" & PréfixeImages & I & ".jpg"
'"C:Documents and SettingsccampainMes documentsMes
imagesTestImage1.jpg"
' Supprime le cadre objet
gr.Delete
Image.Delete
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If
'------------------------------




Avatar
Michel Pierron
Re Christophe;
Je ne sais pas si cela a une importance pour toi, mais toutes tes images après
exportation sont affublées d'un cadre et d'une bordure supplémentaires (c'est le
prix à payer avec Export).
MP

"Christophe CAMPAIN" a écrit dans le
message de news:
Bonjour à tous,

Je suis en train de développer une application Excel me permettant de
traiter des images par lot --> réduction dimensions et poids.
Pour cela j'explore des pistes qui m'ont été données sur le forum:
1 - importation d'une image
2 - réduction dimenssions,
3 - CopyPicture du résultat
4 - Collage dans un "ChartObject"
5 - export au format JPEG
Le problème, c'est qu'au fur et à mesure de mes tests, mon fichier grossi
sans qu'il n'y ai rien de vissible sur les feuille (20 Mo en une dizaine de
tests...).
Je pensais avoir pris mes précautions avec mes "Delete", à priori ce n'est
pas suffisant...

Une idée de l'origine du problème ?

Par avance merci

@+
Kristof

Voici un extrait de mon code :
'------------------------------
........
With Application.FileSearch
.NewSearch
.LookIn = DossierDeDépart
.SearchSubFolders = True 'à adapter éventuellement
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count

Set Image = ActiveSheet.Pictures.Insert(.FoundFiles(I))

With Image
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = Hauteur
.ShapeRange.Width = Largeur
.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End With

Set gr = ActiveSheet.ChartObjects.Add(0, 0, Largeur, Hauteur)

gr.Chart.Paste
' Enregistre l'image dans le répertoire de destination
gr.Chart.Export DossierArrivée & "" & PréfixeImages & I & ".jpg"
'"C:Documents and SettingsccampainMes documentsMes
imagesTestImage1.jpg"
' Supprime le cadre objet
gr.Delete
Image.Delete
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If
'------------------------------




Avatar
kristof
Oui, j'ai remarqué, mais en dimensionnant l'image 1 point de moins que le
cadre, la bordure est uniforme et plutôt jolie finalement...


"Michel Pierron" a écrit dans le message news:

Re Christophe;
Je ne sais pas si cela a une importance pour toi, mais toutes tes images
après

exportation sont affublées d'un cadre et d'une bordure supplémentaires
(c'est le

prix à payer avec Export).
MP

"Christophe CAMPAIN" a écrit
dans le

message de news:
Bonjour à tous,

Je suis en train de développer une application Excel me permettant de
traiter des images par lot --> réduction dimensions et poids.
Pour cela j'explore des pistes qui m'ont été données sur le forum:
1 - importation d'une image
2 - réduction dimenssions,
3 - CopyPicture du résultat
4 - Collage dans un "ChartObject"
5 - export au format JPEG
Le problème, c'est qu'au fur et à mesure de mes tests, mon fichier
grossi


sans qu'il n'y ai rien de vissible sur les feuille (20 Mo en une dizaine
de


tests...).
Je pensais avoir pris mes précautions avec mes "Delete", à priori ce
n'est


pas suffisant...

Une idée de l'origine du problème ?

Par avance merci

@+
Kristof

Voici un extrait de mon code :
'------------------------------
........
With Application.FileSearch
.NewSearch
.LookIn = DossierDeDépart
.SearchSubFolders = True 'à adapter éventuellement
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count

Set Image = ActiveSheet.Pictures.Insert(.FoundFiles(I))

With Image
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = Hauteur
.ShapeRange.Width = Largeur
.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End With

Set gr = ActiveSheet.ChartObjects.Add(0, 0, Largeur, Hauteur)

gr.Chart.Paste
' Enregistre l'image dans le répertoire de destination
gr.Chart.Export DossierArrivée & "" & PréfixeImages & I &
".jpg"


'"C:Documents and SettingsccampainMes documentsMes
imagesTestImage1.jpg"
' Supprime le cadre objet
gr.Delete
Image.Delete
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If
'------------------------------








Avatar
kristof
Salut !

Là, je viens de changer de poste et Ô miracle, mon fichier de 20 Mo transmis
par Mail a fondu à 54 Ko ... va comprendre Charles...

Je vais quand même tester tes sugestions pour voir la différence.

Merci,

@+
Kristof

"Michel Pierron" a écrit dans le message news:

Bonsoir Christophe;
Essaie plutôt avec ces petites modifs:
' ------
' Supprime le cadre objet
Set gr = Nothing
Set Image = Nothing
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If

MP

"Christophe CAMPAIN" a écrit
dans le

message de news:
Bonjour à tous,

Je suis en train de développer une application Excel me permettant de
traiter des images par lot --> réduction dimensions et poids.
Pour cela j'explore des pistes qui m'ont été données sur le forum:
1 - importation d'une image
2 - réduction dimenssions,
3 - CopyPicture du résultat
4 - Collage dans un "ChartObject"
5 - export au format JPEG
Le problème, c'est qu'au fur et à mesure de mes tests, mon fichier
grossi


sans qu'il n'y ai rien de vissible sur les feuille (20 Mo en une dizaine
de


tests...).
Je pensais avoir pris mes précautions avec mes "Delete", à priori ce
n'est


pas suffisant...

Une idée de l'origine du problème ?

Par avance merci

@+
Kristof

Voici un extrait de mon code :
'------------------------------
........
With Application.FileSearch
.NewSearch
.LookIn = DossierDeDépart
.SearchSubFolders = True 'à adapter éventuellement
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count

Set Image = ActiveSheet.Pictures.Insert(.FoundFiles(I))

With Image
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = Hauteur
.ShapeRange.Width = Largeur
.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End With

Set gr = ActiveSheet.ChartObjects.Add(0, 0, Largeur, Hauteur)

gr.Chart.Paste
' Enregistre l'image dans le répertoire de destination
gr.Chart.Export DossierArrivée & "" & PréfixeImages & I &
".jpg"


'"C:Documents and SettingsccampainMes documentsMes
imagesTestImage1.jpg"
' Supprime le cadre objet
gr.Delete
Image.Delete
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If
'------------------------------








Avatar
kristof
Je n'ai pas réussi à récréer le problème. Dans le doute j'ai mis les 2
(.delete & =Nothing)

@+
Kristof

"Michel Pierron" a écrit dans le message news:

Bonsoir Christophe;
Essaie plutôt avec ces petites modifs:
' ------
' Supprime le cadre objet
Set gr = Nothing
Set Image = Nothing
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If

MP

"Christophe CAMPAIN" a écrit
dans le

message de news:
Bonjour à tous,

Je suis en train de développer une application Excel me permettant de
traiter des images par lot --> réduction dimensions et poids.
Pour cela j'explore des pistes qui m'ont été données sur le forum:
1 - importation d'une image
2 - réduction dimenssions,
3 - CopyPicture du résultat
4 - Collage dans un "ChartObject"
5 - export au format JPEG
Le problème, c'est qu'au fur et à mesure de mes tests, mon fichier
grossi


sans qu'il n'y ai rien de vissible sur les feuille (20 Mo en une dizaine
de


tests...).
Je pensais avoir pris mes précautions avec mes "Delete", à priori ce
n'est


pas suffisant...

Une idée de l'origine du problème ?

Par avance merci

@+
Kristof

Voici un extrait de mon code :
'------------------------------
........
With Application.FileSearch
.NewSearch
.LookIn = DossierDeDépart
.SearchSubFolders = True 'à adapter éventuellement
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count

Set Image = ActiveSheet.Pictures.Insert(.FoundFiles(I))

With Image
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = Hauteur
.ShapeRange.Width = Largeur
.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End With

Set gr = ActiveSheet.ChartObjects.Add(0, 0, Largeur, Hauteur)

gr.Chart.Paste
' Enregistre l'image dans le répertoire de destination
gr.Chart.Export DossierArrivée & "" & PréfixeImages & I &
".jpg"


'"C:Documents and SettingsccampainMes documentsMes
imagesTestImage1.jpg"
' Supprime le cadre objet
gr.Delete
Image.Delete
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If
'------------------------------








Avatar
Christophe CAMPAIN
Bonjour à tous,

En fait si ! Le problème surviens à chaque traitement d'image. L'application
semble se comporter comme une éponge en ce qui concerne les images chargées.
Elle ne se libère les neurones qu'aprés fermeture et réouverture complète de
l'appli.
Problème de vidange de mémoire ?

Y a t il un moyen de forcer l'appli à se vider les neurones de TOUT
autrement que par la fermeture et la réouverture du fichier ?

Par avance merci,

@+

Kristof


"kristof" a écrit dans le message de
news:c4s23f$isc$
Je n'ai pas réussi à récréer le problème. Dans le doute j'ai mis les 2
(.delete & =Nothing)

@+
Kristof

"Michel Pierron" a écrit dans le message news:

Bonsoir Christophe;
Essaie plutôt avec ces petites modifs:
' ------
' Supprime le cadre objet
Set gr = Nothing
Set Image = Nothing
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If

MP

"Christophe CAMPAIN" a
écrit


dans le
message de news:
Bonjour à tous,

Je suis en train de développer une application Excel me permettant de
traiter des images par lot --> réduction dimensions et poids.
Pour cela j'explore des pistes qui m'ont été données sur le forum:
1 - importation d'une image
2 - réduction dimenssions,
3 - CopyPicture du résultat
4 - Collage dans un "ChartObject"
5 - export au format JPEG
Le problème, c'est qu'au fur et à mesure de mes tests, mon fichier
grossi


sans qu'il n'y ai rien de vissible sur les feuille (20 Mo en une
dizaine



de
tests...).
Je pensais avoir pris mes précautions avec mes "Delete", à priori ce
n'est


pas suffisant...

Une idée de l'origine du problème ?

Par avance merci

@+
Kristof

Voici un extrait de mon code :
'------------------------------
........
With Application.FileSearch
.NewSearch
.LookIn = DossierDeDépart
.SearchSubFolders = True 'à adapter éventuellement
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
For I = 1 To .FoundFiles.Count

Set Image = ActiveSheet.Pictures.Insert(.FoundFiles(I))

With Image
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = Hauteur
.ShapeRange.Width = Largeur
.CopyPicture Appearance:=xlScreen, Format:=xlPicture
End With

Set gr = ActiveSheet.ChartObjects.Add(0, 0, Largeur, Hauteur)

gr.Chart.Paste
' Enregistre l'image dans le répertoire de destination
gr.Chart.Export DossierArrivée & "" & PréfixeImages & I &
".jpg"


'"C:Documents and SettingsccampainMes documentsMes
imagesTestImage1.jpg"
' Supprime le cadre objet
gr.Delete
Image.Delete
Next I
Else
MsgBox "Pas de fichier trouvé !"
End If
'------------------------------