Bonjour Olivier,
Comme on ne connaît pas ce que contient chaque procédure, c'est plutôt
difficile de savoir ... !
Cependant, tu dois faire attention à la façon dont tu nommes tes images
lors de leur création.
Excel utilise un compteur interne qu'il utilise pour incrémenter les
objets ajoutés à la feuille. À titre d'exemple, à
chaque fois que tu ajoutes une feuille, il incrémente l'indexe ... Feuil4,
Feuil5 ...., le fait de supprimer une feuille
ne change rien à cet effet de chose... sauf si tu fermes le classeur et
que tu le ré-ouvres....Excel à remis son
compteur à 1... et si certain numéro de feuille ont été supprimé, il va
les recréer ....et là, cela modifie la
numérotation des objets.
Si tu fais une boucle sur tes contrôles en utilisant l'index de tes
images...la numérotation n'étant plus la bonne ...
ta procédure va planter !
Comment arriver à faire une gestion de l'appellation de tes images... cela
dépend de ce que tu as besoin de réaliser et
comment tu le réalises.
Salutations!
"Olivier" a écrit dans le message de news:
4221dc25$0$312$
Bonjour, ce post est un peu long mais il contient les macros que j'ai
créés
afin que quelqu'un puisse les tester et me dire surtout pourquoi ça ne
marche pas : cela fait bientot 20 h que je suis dessus et que je ne
comprends plus rien.
Voilà ce qui se passe : (je suis sous excel 97)
En feuille 1 j'ai une image nomme Image1 dans laquelle j'ai inseré une
photo.
En feuille 3, j'ai 4 boutons dont voici les codes :
Private Sub CommandButton1_Click()
mise_en_place_carte_dans_feuil3 'crée 20 images nommé image1 à image20
disposés en 4 lignes et 5 colonnes
End Sub
Private Sub CommandButton2_Click()
mise_en_face_cache_carte 'met sur les 20 images image1 à image20 la photo
contenu dans la feuille 1
End Sub
Private Sub CommandButton3_Click()
suppression_carte_dans_feuil3 'supprime les 20 images
End Sub
Private Sub CommandButton4_Click() 'fait tout
suppression_carte_dans_feuil3 'avec une gestion d'erreur pour éviter le
cas
où il n'y a pas d'images en feuillle 3
mise_en_place_carte_dans_feuil3
mise_en_face_cache_carte
End Sub
Si on clique dans l'ordre Bouton1, Bouton2, Bouton3 plusieurs fois de
suite.
Cela marche comme je le veux.
Si on clique une fois sur le bouton 4, Ca marche aussi. MAIS un nouveau
clic
sur le bouton 4 provoque une erreur (avec des creations d'image21,
image22,
et les images ne sont plus dans l'ordre). Et je ne vois pas d'où cela peut
venir. Je joins ci-dessous le code du module1 et je peux même envoyer en
privé le fichier excel si quelqu'un le désire. Mon but est bien sur
d'avoir
un seul bouton, j'ai créé les boutons individuels (et les msgbox dans les
procedures) pour essayer de comprendre
d'où venait le problème, mais cela ne m'a pas avancé.
Merci pour votre aide.
Olivier
Sub mise_en_place_carte_dans_feuil3()
'rq : mettre sur le bouton la propriété TakeOnFocus à False pour ne pas
prendre le focus sinon on ne peut afficher les images
'CREATION des emplacements des cartes
Sheets("Feuil3").Select
dimx_image = 54
dimy_image = 78
espx_image = 5 'espace entre deux images
espy_image = 5
debutx_image1 = 10 ' left position de la 1ere image
debuty_image1 = 15 ' top position de la 1ere image
For i = 0 To 3
For j = 0 To 4
posx = debutx_image1 + j * (dimx_image + espx_image)
posy = debuty_image1 + i * (dimy_image + espy_image)
n = 5 * i + j + 1 'numero de l'image
MsgBox Format(n) 'juste pour voir le deroulement
Feuil3.OLEObjects.Add(ClassType:="Forms.Image.1", Link:úlse,
DisplayAsIcon:úlse, Left:=posx, Top:=posy, Width:=dimx_image,
Height:=dimy_image).Select
Next j
Next i
MsgBox "fin"
End Sub
Sub mise_en_face_cache_carte()
For i = 1 To 20
MsgBox "cache " & Format(i) 'juste pour voir le deroulement
Feuil3.OLEObjects("Image" & i).Object.Picture = Feuil1.Image1.Picture
Sheets("Feuil3").Select 'pour afficher les cartes au fur et à mesure ???
Next i
End Sub
Sub suppression_carte_dans_feuil3()
On Error Resume Next 'pour eviter une erreur si il n'y a pas d'image
For i = 1 To 20
Feuil3.Shapes("Image" & i).Delete
Next i
End Sub
Bonjour Olivier,
Comme on ne connaît pas ce que contient chaque procédure, c'est plutôt
difficile de savoir ... !
Cependant, tu dois faire attention à la façon dont tu nommes tes images
lors de leur création.
Excel utilise un compteur interne qu'il utilise pour incrémenter les
objets ajoutés à la feuille. À titre d'exemple, à
chaque fois que tu ajoutes une feuille, il incrémente l'indexe ... Feuil4,
Feuil5 ...., le fait de supprimer une feuille
ne change rien à cet effet de chose... sauf si tu fermes le classeur et
que tu le ré-ouvres....Excel à remis son
compteur à 1... et si certain numéro de feuille ont été supprimé, il va
les recréer ....et là, cela modifie la
numérotation des objets.
Si tu fais une boucle sur tes contrôles en utilisant l'index de tes
images...la numérotation n'étant plus la bonne ...
ta procédure va planter !
Comment arriver à faire une gestion de l'appellation de tes images... cela
dépend de ce que tu as besoin de réaliser et
comment tu le réalises.
Salutations!
"Olivier" <oolivierr@free.fr> a écrit dans le message de news:
4221dc25$0$312$7a628cd7@news.club-internet.fr...
Bonjour, ce post est un peu long mais il contient les macros que j'ai
créés
afin que quelqu'un puisse les tester et me dire surtout pourquoi ça ne
marche pas : cela fait bientot 20 h que je suis dessus et que je ne
comprends plus rien.
Voilà ce qui se passe : (je suis sous excel 97)
En feuille 1 j'ai une image nomme Image1 dans laquelle j'ai inseré une
photo.
En feuille 3, j'ai 4 boutons dont voici les codes :
Private Sub CommandButton1_Click()
mise_en_place_carte_dans_feuil3 'crée 20 images nommé image1 à image20
disposés en 4 lignes et 5 colonnes
End Sub
Private Sub CommandButton2_Click()
mise_en_face_cache_carte 'met sur les 20 images image1 à image20 la photo
contenu dans la feuille 1
End Sub
Private Sub CommandButton3_Click()
suppression_carte_dans_feuil3 'supprime les 20 images
End Sub
Private Sub CommandButton4_Click() 'fait tout
suppression_carte_dans_feuil3 'avec une gestion d'erreur pour éviter le
cas
où il n'y a pas d'images en feuillle 3
mise_en_place_carte_dans_feuil3
mise_en_face_cache_carte
End Sub
Si on clique dans l'ordre Bouton1, Bouton2, Bouton3 plusieurs fois de
suite.
Cela marche comme je le veux.
Si on clique une fois sur le bouton 4, Ca marche aussi. MAIS un nouveau
clic
sur le bouton 4 provoque une erreur (avec des creations d'image21,
image22,
et les images ne sont plus dans l'ordre). Et je ne vois pas d'où cela peut
venir. Je joins ci-dessous le code du module1 et je peux même envoyer en
privé le fichier excel si quelqu'un le désire. Mon but est bien sur
d'avoir
un seul bouton, j'ai créé les boutons individuels (et les msgbox dans les
procedures) pour essayer de comprendre
d'où venait le problème, mais cela ne m'a pas avancé.
Merci pour votre aide.
Olivier
Sub mise_en_place_carte_dans_feuil3()
'rq : mettre sur le bouton la propriété TakeOnFocus à False pour ne pas
prendre le focus sinon on ne peut afficher les images
'CREATION des emplacements des cartes
Sheets("Feuil3").Select
dimx_image = 54
dimy_image = 78
espx_image = 5 'espace entre deux images
espy_image = 5
debutx_image1 = 10 ' left position de la 1ere image
debuty_image1 = 15 ' top position de la 1ere image
For i = 0 To 3
For j = 0 To 4
posx = debutx_image1 + j * (dimx_image + espx_image)
posy = debuty_image1 + i * (dimy_image + espy_image)
n = 5 * i + j + 1 'numero de l'image
MsgBox Format(n) 'juste pour voir le deroulement
Feuil3.OLEObjects.Add(ClassType:="Forms.Image.1", Link:úlse,
DisplayAsIcon:úlse, Left:=posx, Top:=posy, Width:=dimx_image,
Height:=dimy_image).Select
Next j
Next i
MsgBox "fin"
End Sub
Sub mise_en_face_cache_carte()
For i = 1 To 20
MsgBox "cache " & Format(i) 'juste pour voir le deroulement
Feuil3.OLEObjects("Image" & i).Object.Picture = Feuil1.Image1.Picture
Sheets("Feuil3").Select 'pour afficher les cartes au fur et à mesure ???
Next i
End Sub
Sub suppression_carte_dans_feuil3()
On Error Resume Next 'pour eviter une erreur si il n'y a pas d'image
For i = 1 To 20
Feuil3.Shapes("Image" & i).Delete
Next i
End Sub
Bonjour Olivier,
Comme on ne connaît pas ce que contient chaque procédure, c'est plutôt
difficile de savoir ... !
Cependant, tu dois faire attention à la façon dont tu nommes tes images
lors de leur création.
Excel utilise un compteur interne qu'il utilise pour incrémenter les
objets ajoutés à la feuille. À titre d'exemple, à
chaque fois que tu ajoutes une feuille, il incrémente l'indexe ... Feuil4,
Feuil5 ...., le fait de supprimer une feuille
ne change rien à cet effet de chose... sauf si tu fermes le classeur et
que tu le ré-ouvres....Excel à remis son
compteur à 1... et si certain numéro de feuille ont été supprimé, il va
les recréer ....et là, cela modifie la
numérotation des objets.
Si tu fais une boucle sur tes contrôles en utilisant l'index de tes
images...la numérotation n'étant plus la bonne ...
ta procédure va planter !
Comment arriver à faire une gestion de l'appellation de tes images... cela
dépend de ce que tu as besoin de réaliser et
comment tu le réalises.
Salutations!
"Olivier" a écrit dans le message de news:
4221dc25$0$312$
Bonjour, ce post est un peu long mais il contient les macros que j'ai
créés
afin que quelqu'un puisse les tester et me dire surtout pourquoi ça ne
marche pas : cela fait bientot 20 h que je suis dessus et que je ne
comprends plus rien.
Voilà ce qui se passe : (je suis sous excel 97)
En feuille 1 j'ai une image nomme Image1 dans laquelle j'ai inseré une
photo.
En feuille 3, j'ai 4 boutons dont voici les codes :
Private Sub CommandButton1_Click()
mise_en_place_carte_dans_feuil3 'crée 20 images nommé image1 à image20
disposés en 4 lignes et 5 colonnes
End Sub
Private Sub CommandButton2_Click()
mise_en_face_cache_carte 'met sur les 20 images image1 à image20 la photo
contenu dans la feuille 1
End Sub
Private Sub CommandButton3_Click()
suppression_carte_dans_feuil3 'supprime les 20 images
End Sub
Private Sub CommandButton4_Click() 'fait tout
suppression_carte_dans_feuil3 'avec une gestion d'erreur pour éviter le
cas
où il n'y a pas d'images en feuillle 3
mise_en_place_carte_dans_feuil3
mise_en_face_cache_carte
End Sub
Si on clique dans l'ordre Bouton1, Bouton2, Bouton3 plusieurs fois de
suite.
Cela marche comme je le veux.
Si on clique une fois sur le bouton 4, Ca marche aussi. MAIS un nouveau
clic
sur le bouton 4 provoque une erreur (avec des creations d'image21,
image22,
et les images ne sont plus dans l'ordre). Et je ne vois pas d'où cela peut
venir. Je joins ci-dessous le code du module1 et je peux même envoyer en
privé le fichier excel si quelqu'un le désire. Mon but est bien sur
d'avoir
un seul bouton, j'ai créé les boutons individuels (et les msgbox dans les
procedures) pour essayer de comprendre
d'où venait le problème, mais cela ne m'a pas avancé.
Merci pour votre aide.
Olivier
Sub mise_en_place_carte_dans_feuil3()
'rq : mettre sur le bouton la propriété TakeOnFocus à False pour ne pas
prendre le focus sinon on ne peut afficher les images
'CREATION des emplacements des cartes
Sheets("Feuil3").Select
dimx_image = 54
dimy_image = 78
espx_image = 5 'espace entre deux images
espy_image = 5
debutx_image1 = 10 ' left position de la 1ere image
debuty_image1 = 15 ' top position de la 1ere image
For i = 0 To 3
For j = 0 To 4
posx = debutx_image1 + j * (dimx_image + espx_image)
posy = debuty_image1 + i * (dimy_image + espy_image)
n = 5 * i + j + 1 'numero de l'image
MsgBox Format(n) 'juste pour voir le deroulement
Feuil3.OLEObjects.Add(ClassType:="Forms.Image.1", Link:úlse,
DisplayAsIcon:úlse, Left:=posx, Top:=posy, Width:=dimx_image,
Height:=dimy_image).Select
Next j
Next i
MsgBox "fin"
End Sub
Sub mise_en_face_cache_carte()
For i = 1 To 20
MsgBox "cache " & Format(i) 'juste pour voir le deroulement
Feuil3.OLEObjects("Image" & i).Object.Picture = Feuil1.Image1.Picture
Sheets("Feuil3").Select 'pour afficher les cartes au fur et à mesure ???
Next i
End Sub
Sub suppression_carte_dans_feuil3()
On Error Resume Next 'pour eviter une erreur si il n'y a pas d'image
For i = 1 To 20
Feuil3.Shapes("Image" & i).Delete
Next i
End Sub
Merci MichDenis
Cela m'éclaire un peu même si cela reste encore flou.
Ce que je veux faire est expliqué à l'aide des procédures (elles sont à la
fin du message. c'est vrai qu'elles sont mal placées car après ma
signature). Si tu peux m'aider un peu plus en me disant comment créer mes
images et les supprimer et les recréer en conservant les noms et l'ordre
Image1 à Image20. Ce serait sympa.
Merci
"MichDenis" a écrit dans le message de news:
OH#Bonjour Olivier,
Comme on ne connaît pas ce que contient chaque procédure, c'est plutôt
difficile de savoir ... !Cependant, tu dois faire attention à la façon dont tu nommes tes images
lors de leur création.Excel utilise un compteur interne qu'il utilise pour incrémenter les
objets ajoutés à la feuille. À titre d'exemple, àchaque fois que tu ajoutes une feuille, il incrémente l'indexe ... Feuil4,
Feuil5 ...., le fait de supprimer une feuillene change rien à cet effet de chose... sauf si tu fermes le classeur et
que tu le ré-ouvres....Excel à remis soncompteur à 1... et si certain numéro de feuille ont été supprimé, il va
les recréer ....et là, cela modifie lanumérotation des objets.
Si tu fais une boucle sur tes contrôles en utilisant l'index de tes
images...la numérotation n'étant plus la bonne ...ta procédure va planter !
Comment arriver à faire une gestion de l'appellation de tes images... cela
dépend de ce que tu as besoin de réaliser etcomment tu le réalises.
Salutations!
"Olivier" a écrit dans le message de news:
4221dc25$0$312$Bonjour, ce post est un peu long mais il contient les macros que j'ai
créésafin que quelqu'un puisse les tester et me dire surtout pourquoi ça ne
marche pas : cela fait bientot 20 h que je suis dessus et que je ne
comprends plus rien.
Voilà ce qui se passe : (je suis sous excel 97)
En feuille 1 j'ai une image nomme Image1 dans laquelle j'ai inseré une
photo.
En feuille 3, j'ai 4 boutons dont voici les codes :
Private Sub CommandButton1_Click()
mise_en_place_carte_dans_feuil3 'crée 20 images nommé image1 à image20
disposés en 4 lignes et 5 colonnes
End Sub
Private Sub CommandButton2_Click()
mise_en_face_cache_carte 'met sur les 20 images image1 à image20 la photo
contenu dans la feuille 1
End Sub
Private Sub CommandButton3_Click()
suppression_carte_dans_feuil3 'supprime les 20 images
End Sub
Private Sub CommandButton4_Click() 'fait tout
suppression_carte_dans_feuil3 'avec une gestion d'erreur pour éviter le
casoù il n'y a pas d'images en feuillle 3
mise_en_place_carte_dans_feuil3
mise_en_face_cache_carte
End Sub
Si on clique dans l'ordre Bouton1, Bouton2, Bouton3 plusieurs fois de
suite.Cela marche comme je le veux.
Si on clique une fois sur le bouton 4, Ca marche aussi. MAIS un nouveau
clicsur le bouton 4 provoque une erreur (avec des creations d'image21,
image22,et les images ne sont plus dans l'ordre). Et je ne vois pas d'où cela peut
venir. Je joins ci-dessous le code du module1 et je peux même envoyer en
privé le fichier excel si quelqu'un le désire. Mon but est bien sur
d'avoirun seul bouton, j'ai créé les boutons individuels (et les msgbox dans les
procedures) pour essayer de comprendre
d'où venait le problème, mais cela ne m'a pas avancé.
Merci pour votre aide.
Olivier
Sub mise_en_place_carte_dans_feuil3()
'rq : mettre sur le bouton la propriété TakeOnFocus à False pour ne pas
prendre le focus sinon on ne peut afficher les images
'CREATION des emplacements des cartes
Sheets("Feuil3").Select
dimx_image = 54
dimy_image = 78
espx_image = 5 'espace entre deux images
espy_image = 5
debutx_image1 = 10 ' left position de la 1ere image
debuty_image1 = 15 ' top position de la 1ere image
For i = 0 To 3
For j = 0 To 4
posx = debutx_image1 + j * (dimx_image + espx_image)
posy = debuty_image1 + i * (dimy_image + espy_image)
n = 5 * i + j + 1 'numero de l'image
MsgBox Format(n) 'juste pour voir le deroulement
Feuil3.OLEObjects.Add(ClassType:="Forms.Image.1", Link:úlse,
DisplayAsIcon:úlse, Left:=posx, Top:=posy, Width:=dimx_image,
Height:=dimy_image).Select
Next j
Next i
MsgBox "fin"
End Sub
Sub mise_en_face_cache_carte()
For i = 1 To 20
MsgBox "cache " & Format(i) 'juste pour voir le deroulement
Feuil3.OLEObjects("Image" & i).Object.Picture = Feuil1.Image1.Picture
Sheets("Feuil3").Select 'pour afficher les cartes au fur et à mesure ???
Next i
End Sub
Sub suppression_carte_dans_feuil3()
On Error Resume Next 'pour eviter une erreur si il n'y a pas d'image
For i = 1 To 20
Feuil3.Shapes("Image" & i).Delete
Next i
End Sub
Merci MichDenis
Cela m'éclaire un peu même si cela reste encore flou.
Ce que je veux faire est expliqué à l'aide des procédures (elles sont à la
fin du message. c'est vrai qu'elles sont mal placées car après ma
signature). Si tu peux m'aider un peu plus en me disant comment créer mes
images et les supprimer et les recréer en conservant les noms et l'ordre
Image1 à Image20. Ce serait sympa.
Merci
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
OH#pr4NHFHA.3928@TK2MSFTNGP09.phx.gbl...
Bonjour Olivier,
Comme on ne connaît pas ce que contient chaque procédure, c'est plutôt
difficile de savoir ... !
Cependant, tu dois faire attention à la façon dont tu nommes tes images
lors de leur création.
Excel utilise un compteur interne qu'il utilise pour incrémenter les
objets ajoutés à la feuille. À titre d'exemple, à
chaque fois que tu ajoutes une feuille, il incrémente l'indexe ... Feuil4,
Feuil5 ...., le fait de supprimer une feuille
ne change rien à cet effet de chose... sauf si tu fermes le classeur et
que tu le ré-ouvres....Excel à remis son
compteur à 1... et si certain numéro de feuille ont été supprimé, il va
les recréer ....et là, cela modifie la
numérotation des objets.
Si tu fais une boucle sur tes contrôles en utilisant l'index de tes
images...la numérotation n'étant plus la bonne ...
ta procédure va planter !
Comment arriver à faire une gestion de l'appellation de tes images... cela
dépend de ce que tu as besoin de réaliser et
comment tu le réalises.
Salutations!
"Olivier" <oolivierr@free.fr> a écrit dans le message de news:
4221dc25$0$312$7a628cd7@news.club-internet.fr...
Bonjour, ce post est un peu long mais il contient les macros que j'ai
créés
afin que quelqu'un puisse les tester et me dire surtout pourquoi ça ne
marche pas : cela fait bientot 20 h que je suis dessus et que je ne
comprends plus rien.
Voilà ce qui se passe : (je suis sous excel 97)
En feuille 1 j'ai une image nomme Image1 dans laquelle j'ai inseré une
photo.
En feuille 3, j'ai 4 boutons dont voici les codes :
Private Sub CommandButton1_Click()
mise_en_place_carte_dans_feuil3 'crée 20 images nommé image1 à image20
disposés en 4 lignes et 5 colonnes
End Sub
Private Sub CommandButton2_Click()
mise_en_face_cache_carte 'met sur les 20 images image1 à image20 la photo
contenu dans la feuille 1
End Sub
Private Sub CommandButton3_Click()
suppression_carte_dans_feuil3 'supprime les 20 images
End Sub
Private Sub CommandButton4_Click() 'fait tout
suppression_carte_dans_feuil3 'avec une gestion d'erreur pour éviter le
cas
où il n'y a pas d'images en feuillle 3
mise_en_place_carte_dans_feuil3
mise_en_face_cache_carte
End Sub
Si on clique dans l'ordre Bouton1, Bouton2, Bouton3 plusieurs fois de
suite.
Cela marche comme je le veux.
Si on clique une fois sur le bouton 4, Ca marche aussi. MAIS un nouveau
clic
sur le bouton 4 provoque une erreur (avec des creations d'image21,
image22,
et les images ne sont plus dans l'ordre). Et je ne vois pas d'où cela peut
venir. Je joins ci-dessous le code du module1 et je peux même envoyer en
privé le fichier excel si quelqu'un le désire. Mon but est bien sur
d'avoir
un seul bouton, j'ai créé les boutons individuels (et les msgbox dans les
procedures) pour essayer de comprendre
d'où venait le problème, mais cela ne m'a pas avancé.
Merci pour votre aide.
Olivier
Sub mise_en_place_carte_dans_feuil3()
'rq : mettre sur le bouton la propriété TakeOnFocus à False pour ne pas
prendre le focus sinon on ne peut afficher les images
'CREATION des emplacements des cartes
Sheets("Feuil3").Select
dimx_image = 54
dimy_image = 78
espx_image = 5 'espace entre deux images
espy_image = 5
debutx_image1 = 10 ' left position de la 1ere image
debuty_image1 = 15 ' top position de la 1ere image
For i = 0 To 3
For j = 0 To 4
posx = debutx_image1 + j * (dimx_image + espx_image)
posy = debuty_image1 + i * (dimy_image + espy_image)
n = 5 * i + j + 1 'numero de l'image
MsgBox Format(n) 'juste pour voir le deroulement
Feuil3.OLEObjects.Add(ClassType:="Forms.Image.1", Link:úlse,
DisplayAsIcon:úlse, Left:=posx, Top:=posy, Width:=dimx_image,
Height:=dimy_image).Select
Next j
Next i
MsgBox "fin"
End Sub
Sub mise_en_face_cache_carte()
For i = 1 To 20
MsgBox "cache " & Format(i) 'juste pour voir le deroulement
Feuil3.OLEObjects("Image" & i).Object.Picture = Feuil1.Image1.Picture
Sheets("Feuil3").Select 'pour afficher les cartes au fur et à mesure ???
Next i
End Sub
Sub suppression_carte_dans_feuil3()
On Error Resume Next 'pour eviter une erreur si il n'y a pas d'image
For i = 1 To 20
Feuil3.Shapes("Image" & i).Delete
Next i
End Sub
Merci MichDenis
Cela m'éclaire un peu même si cela reste encore flou.
Ce que je veux faire est expliqué à l'aide des procédures (elles sont à la
fin du message. c'est vrai qu'elles sont mal placées car après ma
signature). Si tu peux m'aider un peu plus en me disant comment créer mes
images et les supprimer et les recréer en conservant les noms et l'ordre
Image1 à Image20. Ce serait sympa.
Merci
"MichDenis" a écrit dans le message de news:
OH#Bonjour Olivier,
Comme on ne connaît pas ce que contient chaque procédure, c'est plutôt
difficile de savoir ... !Cependant, tu dois faire attention à la façon dont tu nommes tes images
lors de leur création.Excel utilise un compteur interne qu'il utilise pour incrémenter les
objets ajoutés à la feuille. À titre d'exemple, àchaque fois que tu ajoutes une feuille, il incrémente l'indexe ... Feuil4,
Feuil5 ...., le fait de supprimer une feuillene change rien à cet effet de chose... sauf si tu fermes le classeur et
que tu le ré-ouvres....Excel à remis soncompteur à 1... et si certain numéro de feuille ont été supprimé, il va
les recréer ....et là, cela modifie lanumérotation des objets.
Si tu fais une boucle sur tes contrôles en utilisant l'index de tes
images...la numérotation n'étant plus la bonne ...ta procédure va planter !
Comment arriver à faire une gestion de l'appellation de tes images... cela
dépend de ce que tu as besoin de réaliser etcomment tu le réalises.
Salutations!
"Olivier" a écrit dans le message de news:
4221dc25$0$312$Bonjour, ce post est un peu long mais il contient les macros que j'ai
créésafin que quelqu'un puisse les tester et me dire surtout pourquoi ça ne
marche pas : cela fait bientot 20 h que je suis dessus et que je ne
comprends plus rien.
Voilà ce qui se passe : (je suis sous excel 97)
En feuille 1 j'ai une image nomme Image1 dans laquelle j'ai inseré une
photo.
En feuille 3, j'ai 4 boutons dont voici les codes :
Private Sub CommandButton1_Click()
mise_en_place_carte_dans_feuil3 'crée 20 images nommé image1 à image20
disposés en 4 lignes et 5 colonnes
End Sub
Private Sub CommandButton2_Click()
mise_en_face_cache_carte 'met sur les 20 images image1 à image20 la photo
contenu dans la feuille 1
End Sub
Private Sub CommandButton3_Click()
suppression_carte_dans_feuil3 'supprime les 20 images
End Sub
Private Sub CommandButton4_Click() 'fait tout
suppression_carte_dans_feuil3 'avec une gestion d'erreur pour éviter le
casoù il n'y a pas d'images en feuillle 3
mise_en_place_carte_dans_feuil3
mise_en_face_cache_carte
End Sub
Si on clique dans l'ordre Bouton1, Bouton2, Bouton3 plusieurs fois de
suite.Cela marche comme je le veux.
Si on clique une fois sur le bouton 4, Ca marche aussi. MAIS un nouveau
clicsur le bouton 4 provoque une erreur (avec des creations d'image21,
image22,et les images ne sont plus dans l'ordre). Et je ne vois pas d'où cela peut
venir. Je joins ci-dessous le code du module1 et je peux même envoyer en
privé le fichier excel si quelqu'un le désire. Mon but est bien sur
d'avoirun seul bouton, j'ai créé les boutons individuels (et les msgbox dans les
procedures) pour essayer de comprendre
d'où venait le problème, mais cela ne m'a pas avancé.
Merci pour votre aide.
Olivier
Sub mise_en_place_carte_dans_feuil3()
'rq : mettre sur le bouton la propriété TakeOnFocus à False pour ne pas
prendre le focus sinon on ne peut afficher les images
'CREATION des emplacements des cartes
Sheets("Feuil3").Select
dimx_image = 54
dimy_image = 78
espx_image = 5 'espace entre deux images
espy_image = 5
debutx_image1 = 10 ' left position de la 1ere image
debuty_image1 = 15 ' top position de la 1ere image
For i = 0 To 3
For j = 0 To 4
posx = debutx_image1 + j * (dimx_image + espx_image)
posy = debuty_image1 + i * (dimy_image + espy_image)
n = 5 * i + j + 1 'numero de l'image
MsgBox Format(n) 'juste pour voir le deroulement
Feuil3.OLEObjects.Add(ClassType:="Forms.Image.1", Link:úlse,
DisplayAsIcon:úlse, Left:=posx, Top:=posy, Width:=dimx_image,
Height:=dimy_image).Select
Next j
Next i
MsgBox "fin"
End Sub
Sub mise_en_face_cache_carte()
For i = 1 To 20
MsgBox "cache " & Format(i) 'juste pour voir le deroulement
Feuil3.OLEObjects("Image" & i).Object.Picture = Feuil1.Image1.Picture
Sheets("Feuil3").Select 'pour afficher les cartes au fur et à mesure ???
Next i
End Sub
Sub suppression_carte_dans_feuil3()
On Error Resume Next 'pour eviter une erreur si il n'y a pas d'image
For i = 1 To 20
Feuil3.Shapes("Image" & i).Delete
Next i
End Sub