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

[Urgent] Problème compteur d'image bloqué dans un classeur

7 réponses
Avatar
Thierry Euzenot
Bonjour,

J'ai un problème dans un classeur dans lequel j'insère par macro des images
pour sortir des étiquettes.

Le problème apparemment, c'est que à chaque image inséré Excel incrémente un
compteur interne (Picture.name ?) et qu'au bout d'un moment (3 ans à raison
de 300 à 400 images par semaine) ce compteur se bloque, et du coup
impossible de sortir la moindre étiquette :o(

Comment réinitialiser ce compteur ???

Nota : Le code plante à cette ligne : ActiveSheet.Pictures.Insert(Chemin
& Image).Select
Code d'erreur : Erreur d'exécution 1004 / la méthode Select de la classe
picture à échoué

J'imagine que le ActiveSheet.Pictures.Name ayant dépassé la valeur max, il
ne peut pas sélectionner cette image...

Le problème est assez urgent puisque j'ai tout un atelier qui attend mes
étiquettes ^_^

Toute aide sera la bienvenue !!!

Voici le code que j'utilise pour insérer l'image :
Dim Image As String
Dim Image2 As String
Dim Chemin As String

Chemin = Feuil2.Range("D1")
Image = Feuil2.Range("E" & LigneB)
Image2 = Feuil2.Range("F" & LigneB)

'Image en haut a gauche (Marque)
ActiveSheet.Pictures.Insert(Chemin & Image).Select
Nom(1) = Selection.Name
With Selection
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 65
.ShapeRange.Left = 5.25
.ShapeRange.Top = 3
End With

7 réponses

Avatar
Thierry Euzenot
Complément d'information :
Le problème que j'ai, c'est que une fois que j'ai inséré une image, il va
falloir que je l'efface pour préparer l'étiquette suivante... il me faut
donc un identificateur de l'image afin de la retrouver ensuite...

Bon, sinon, j'ai un tout petit peu avancé... j'ai réussi à afficher le
numéro d'identificateur de l'image et le problème se confirme puisque si je
fait :
ActiveSheet.Pictures.Insert (Chemin & Image)
Nom(1) = Selection.Name
Feuil1.Range("A16") = Nom(1)

Il me répond en "A16" : Picture 65560
Qui est supérieur à 65536 qui doit être la limite admissible pour excel :o(

Help !! Quelqu'un aurait une idée ??

Thierry, perdu :o(

"Thierry Euzenot" a écrit dans le message de
news:
Bonjour,

J'ai un problème dans un classeur dans lequel j'insère par macro des
images

pour sortir des étiquettes.

Le problème apparemment, c'est que à chaque image inséré Excel incrémente
un

compteur interne (Picture.name ?) et qu'au bout d'un moment (3 ans à
raison

de 300 à 400 images par semaine) ce compteur se bloque, et du coup
impossible de sortir la moindre étiquette :o(

Comment réinitialiser ce compteur ???

Nota : Le code plante à cette ligne :
ActiveSheet.Pictures.Insert(Chemin

& Image).Select
Code d'erreur : Erreur d'exécution 1004 / la méthode Select de la classe
picture à échoué

J'imagine que le ActiveSheet.Pictures.Name ayant dépassé la valeur max, il
ne peut pas sélectionner cette image...

Le problème est assez urgent puisque j'ai tout un atelier qui attend mes
étiquettes ^_^

Toute aide sera la bienvenue !!!

Voici le code que j'utilise pour insérer l'image :
Dim Image As String
Dim Image2 As String
Dim Chemin As String

Chemin = Feuil2.Range("D1")
Image = Feuil2.Range("E" & LigneB)
Image2 = Feuil2.Range("F" & LigneB)

'Image en haut a gauche (Marque)
ActiveSheet.Pictures.Insert(Chemin & Image).Select
Nom(1) = Selection.Name
With Selection
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 65
.ShapeRange.Left = 5.25
.ShapeRange.Top = 3
End With




Avatar
michdenis
Bonjour Thierry,

As-tu réellement 65560 images dans ton fichier et plus précisément dans cette feuille particulière ? Si tu changes de
feuilles (ou insère une nouvelle feuille, le compteur repartira à zéro. Cependant, il se peut très bien qu'il y ait une
limite pour l'ensemble du classeur. Tu avoueras que 65 000 images dans un classeur, c'est quand même exceptionnelle !!!
;-)


Voici une petite procédure pour insérer une nouvelle image et la renommer

Dim Img As Object

With ActiveSheet
Set Img = .Pictures.Insert(Chemin & image)
Img.Name = "toto"
Set Img = Nothing
End With


Salutations!




"Thierry Euzenot" a écrit dans le message de news: OVP%
Complément d'information :
Le problème que j'ai, c'est que une fois que j'ai inséré une image, il va
falloir que je l'efface pour préparer l'étiquette suivante... il me faut
donc un identificateur de l'image afin de la retrouver ensuite...

Bon, sinon, j'ai un tout petit peu avancé... j'ai réussi à afficher le
numéro d'identificateur de l'image et le problème se confirme puisque si je
fait :
ActiveSheet.Pictures.Insert (Chemin & Image)
Nom(1) = Selection.Name
Feuil1.Range("A16") = Nom(1)

Il me répond en "A16" : Picture 65560
Qui est supérieur à 65536 qui doit être la limite admissible pour excel :o(

Help !! Quelqu'un aurait une idée ??

Thierry, perdu :o(

"Thierry Euzenot" a écrit dans le message de
news:
Bonjour,

J'ai un problème dans un classeur dans lequel j'insère par macro des
images

pour sortir des étiquettes.

Le problème apparemment, c'est que à chaque image inséré Excel incrémente
un

compteur interne (Picture.name ?) et qu'au bout d'un moment (3 ans à
raison

de 300 à 400 images par semaine) ce compteur se bloque, et du coup
impossible de sortir la moindre étiquette :o(

Comment réinitialiser ce compteur ???

Nota : Le code plante à cette ligne :
ActiveSheet.Pictures.Insert(Chemin

& Image).Select
Code d'erreur : Erreur d'exécution 1004 / la méthode Select de la classe
picture à échoué

J'imagine que le ActiveSheet.Pictures.Name ayant dépassé la valeur max, il
ne peut pas sélectionner cette image...

Le problème est assez urgent puisque j'ai tout un atelier qui attend mes
étiquettes ^_^

Toute aide sera la bienvenue !!!

Voici le code que j'utilise pour insérer l'image :
Dim Image As String
Dim Image2 As String
Dim Chemin As String

Chemin = Feuil2.Range("D1")
Image = Feuil2.Range("E" & LigneB)
Image2 = Feuil2.Range("F" & LigneB)

'Image en haut a gauche (Marque)
ActiveSheet.Pictures.Insert(Chemin & Image).Select
Nom(1) = Selection.Name
With Selection
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 65
.ShapeRange.Left = 5.25
.ShapeRange.Top = 3
End With




Avatar
AV
Effacer l'image que tu as précédemment insérée
Ca pourrait faire :

Sub zzzz()
Chemin = "D:IMAGESMOI"
Image = "maPomme.jpg"
On Error Resume Next
With ActiveSheet
.Shapes("xxx").Delete
.Pictures.Insert(Chemin & Image).Name = "xxx"
End With
End Sub

AV
Avatar
Thierry Euzenot
Le problème c'est que je n'ai pas 65560 images dans ma feuille Excel, mais
que depuis la création du fichier j'en ai affiché puis effacé 65560 et
qu'apparemment lorsqu'on insère une image il y a un compteur d'identifiant
qui s'incrémente à chaque fois...

Je te soumets un petit code pour exemple qui montre bien la "chose" :
Sub Test()
ActiveSheet.Pictures.Insert( "H:Gestion
productionEtiquettesNf_lcie.jpg").Select
Nom = Selection.Name
Feuil1.Range("A5") = Nom
End Sub

Et tu verras à chaque fois que la propriété "Name" s'incrémente...

Et même si de façon abrupte je tente de la renommer de cette façon

Sub Test()
ActiveSheet.Pictures.Insert( "H:Gestion
productionEtiquettesNf_lcie.jpg").Select
Selection.Name = "Toto"
Nom = Selection.Name
Feuil1.Range("A5") = Nom
End Sub

Cela va fonctionner pour cette fois, mais si tu relances la première macro,
tu t'apercevra que le compteur s'est incrémenté...

Bon, en tout cas, je vous remercie pour vos idées Av et toi, je vais y
travailler demain, je vous tiendrais au courant !

@+
:o)

"michdenis" a écrit dans le message de
news:
Bonjour Thierry,

As-tu réellement 65560 images dans ton fichier et plus précisément dans
cette feuille particulière ? Si tu changes de

feuilles (ou insère une nouvelle feuille, le compteur repartira à zéro.
Cependant, il se peut très bien qu'il y ait une

limite pour l'ensemble du classeur. Tu avoueras que 65 000 images dans un
classeur, c'est quand même exceptionnelle !!!

;-)


Voici une petite procédure pour insérer une nouvelle image et la renommer

Dim Img As Object

With ActiveSheet
Set Img = .Pictures.Insert(Chemin & image)
Img.Name = "toto"
Set Img = Nothing
End With


Salutations!




"Thierry Euzenot" a écrit dans le message de news:
OVP%

Complément d'information :
Le problème que j'ai, c'est que une fois que j'ai inséré une image, il va
falloir que je l'efface pour préparer l'étiquette suivante... il me faut
donc un identificateur de l'image afin de la retrouver ensuite...

Bon, sinon, j'ai un tout petit peu avancé... j'ai réussi à afficher le
numéro d'identificateur de l'image et le problème se confirme puisque si
je

fait :
ActiveSheet.Pictures.Insert (Chemin & Image)
Nom(1) = Selection.Name
Feuil1.Range("A16") = Nom(1)

Il me répond en "A16" : Picture 65560
Qui est supérieur à 65536 qui doit être la limite admissible pour excel
:o(


Help !! Quelqu'un aurait une idée ??

Thierry, perdu :o(

"Thierry Euzenot" a écrit dans le message de
news:
Bonjour,

J'ai un problème dans un classeur dans lequel j'insère par macro des
images

pour sortir des étiquettes.

Le problème apparemment, c'est que à chaque image inséré Excel
incrémente


un
compteur interne (Picture.name ?) et qu'au bout d'un moment (3 ans à
raison

de 300 à 400 images par semaine) ce compteur se bloque, et du coup
impossible de sortir la moindre étiquette :o(

Comment réinitialiser ce compteur ???

Nota : Le code plante à cette ligne :
ActiveSheet.Pictures.Insert(Chemin

& Image).Select
Code d'erreur : Erreur d'exécution 1004 / la méthode Select de la classe
picture à échoué

J'imagine que le ActiveSheet.Pictures.Name ayant dépassé la valeur max,
il


ne peut pas sélectionner cette image...

Le problème est assez urgent puisque j'ai tout un atelier qui attend mes
étiquettes ^_^

Toute aide sera la bienvenue !!!

Voici le code que j'utilise pour insérer l'image :
Dim Image As String
Dim Image2 As String
Dim Chemin As String

Chemin = Feuil2.Range("D1")
Image = Feuil2.Range("E" & LigneB)
Image2 = Feuil2.Range("F" & LigneB)

'Image en haut a gauche (Marque)
ActiveSheet.Pictures.Insert(Chemin & Image).Select
Nom(1) = Selection.Name
With Selection
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 65
.ShapeRange.Left = 5.25
.ShapeRange.Top = 3
End With









Avatar
AV
Même en faisant comme indiqué ?
Pas de select après le Insert mais nommer l'image en l'insérant
ActiveSheet.Pictures.Insert(Chemin & Image).Name = "xxx"

Ca fait pas ?

AV
Avatar
Thierry Euzenot
Oui, ça semble fonctionner de cette manière :o)

Merci beaucoup !!!!!!
J'y travaillerais plus demain et je vous tiens au courant ^_^

"AV" a écrit dans le message de
news:
Même en faisant comme indiqué ?
Pas de select après le Insert mais nommer l'image en l'insérant
ActiveSheet.Pictures.Insert(Chemin & Image).Name = "xxx"

Ca fait pas ?

AV




Avatar
Thierry Euzenot
Bon, je n'ai pas pu attendre demain pour voir si ça fonctionnait, donc voici
le code qui marche :

'Image en haut a gauche (Marque)
ActiveSheet.Pictures
With ActiveSheet.Pictures.Insert(Chemin & Image)
.Name = "Marque1"
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 65
.ShapeRange.Left = 5.25
.ShapeRange.Top = 3
End With

Merci pour vos éclaircissements, j'étais depuis le début de la journée sur
la bonne voie, mais sans trouver la solution...

:o)

"AV" a écrit dans le message de
news:
Même en faisant comme indiqué ?
Pas de select après le Insert mais nommer l'image en l'insérant
ActiveSheet.Pictures.Insert(Chemin & Image).Name = "xxx"

Ca fait pas ?

AV