Bouton insertion image

Taebo

XLDnaute Nouveau
Bonjour le fil

J'ai un problème avec une procédure activée depuis un bouton.

Elle permet d'afficher une fenêtre où se trouvent mes fichier, d'y selectionner une photo et de l'importer dans ma feuille. Cette première procédure marche, la voilà:

Code:
Private Sub Bildeinsetzer_button_click()

Dim protection As Boolean
    protection1 = False
    
    If ActiveSheet.ProtectContents = True Then
    ActiveSheet.Unprotect "cat"
    protection1 = True
    End If
    
Dim Choix
With ActiveSheet
   Choix = Application.GetOpenFilename("Fichier image(*.gif;*.jpg;*.bmp),*.gif;*.jpg;*.bmp" _
    , , "Choix de l'image", , False)
    If Choix = False Then GoTo folge:
    On Error GoTo folge
    .Shapes("Werkstückbild").Delete
    Range("i32").Select
    .Pictures.Insert(Choix).Name = "Werkstückbild"
    .Shapes("Werkstückbild").Width = 190
    .Shapes("Werkstückbild").Heigth = 50

End With
ActiveSheet.Shapes("Bildeinsetzer_button").Select
selection.ShapeRange.ZOrder msoBringToFront
folge:
If protection1 = True Then ActiveSheet.Protect "cat", DrawingObjects:=False

ActiveSheet.Shapes("werkstückbild").Select
End Sub

Maintenant je veux faire la même chose avec un autre bouton et quelque spécialités en plus ( genre changer la couleur de certaines cellules ou les déprotéger), je copie plus ou moins ma première procédure, mais ça ne marche pas. Voici la 2ème procédure:

Code:
Private Sub Neue_Maschine_button_Click()

Dim protection As Boolean
    protection1 = False
    
    If ActiveSheet.ProtectContents = True Then
    ActiveSheet.Unprotect "cat"
    protection1 = True
    End If

Range("k51:m55").Interior.ColorIndex = 6
Range("k51:m55").Locked = False

Dim Choix1
With ActiveSheet
   Choix1 = Application.GetOpenFilename("Fichier image(*.gif;*.jpg;*.bmp),*.gif;*.jpg;*.bmp" _
    , , "Maschine wählen", , False)
    If Choix1 = False Then GoTo folge:
    On Error GoTo folge
    .Shapes("Maschinebild").Delete
    Range("b45").Select
    .Pictures.Insert(Choix1).Name = "Maschinebild"
    .Shapes("Maschinebild").Width = 190
    .Shapes("Maschinebild").Heigth = 50

End With
folge:
If protection1 = True Then ActiveSheet.Protect "cat", DrawingObjects:=False

ActiveSheet.Shapes("Maschinebild").Select



End Sub

Le débugueur me dit qu'il ne trouve pas "Maschinebild". Et ce à juste titre puisque l'image ne s'affiche pas sur la feuille, alors que la fenêtre d'affiche et il est possible de selectionner une photo dans mes dossier. Pour info les 2 boutons se situent dans la même feuille, et donc tout les paramettre devraient s'appliquer au premier comme au 2ème.

D'avance je remercie celui qui aura la gentillesse de se pencher sur le problème. Je reste à dispo pour toute question.

Taebo
 

skoobi

XLDnaute Barbatruc
Re : Bouton insertion image

Bonjour,

Si j'ai bien analyser le code, il plante (comme tu ne l'a pas préciser) sur
ActiveSheet.Shapes("Maschinebild").Select

Dans ce cas, si l'image n'existe pas, c'est normal, la gestion de l'erreur est mal exploité, ajoutes ce qui est en noir:

If Err.Number = 0 Then ActiveSheet.Shapes("Maschinebild").Select
 

Taebo

XLDnaute Nouveau
Re : Bouton insertion image

Salut!

oui tu as raison c'est la bonne ligne j'ai oublié de le signaler. Et aussi merci de répondre même face au manque de "sexy" de la question.

C'est aussi juste la procédure marche avec ton ajout mais le problème c'est que je n'ai toujours pas ma photo! lol

Et j'ai beau chercher je comprend pas comment ça se fait! En plus comme je l'ai déjà dis, cette procédure DOIT marcher puisqu'elle marche plus haut...

Je pige plus rien.... donc ça me touche d'autant plus que quelqu'un mette le pied dans ma galère.
 

tototiti2008

XLDnaute Barbatruc
Re : Bouton insertion image

Bonjour à tous,

simplement insère une image et donne lui le nom MachineBild manuellement et tu n'auras plus de problème...
je penses que ton 1er code fonctionne bien parce que tu as déjà une image Werkstückbild dans la feuille.
 

Taebo

XLDnaute Nouveau
Re : Bouton insertion image

Merci tototiti!

Juste ça fait effectivement marcher le tout. Mais si on a pas cette photo au départ comment on fait (à part en mettre une réduite au max en bas à droite pour que personne ne la voie... lol)?
 

Taebo

XLDnaute Nouveau
Re : Bouton insertion image

Bon j'ai trouvé une cuisine un peu dans le genre de cacher une image sous le tapis:

J'ai une image qui reste de toute façon sur le formulaire. J'ai créé une procédure qui prends cette image la copie, renome la copie le nom de la futur image, supprime la copie, insère l'image souhaitée et la redimentione....

Donc ça marche. Mais bien que j'ai compris le comment, je comprend pas le pourquoi???? J'ai juste contourné le problème là....

Quelqu'un a compris?
 

skoobi

XLDnaute Barbatruc
Re : Bouton insertion image

Re bonjour,

La solution se trouve déjà dans le code:
On Error GoTo folge
.Shapes("Maschinebild").Delete
Range("b45").Select
.Pictures.Insert(Choix1).Name = "Maschinebild"

L'image "Maschinebild" est d'abord supprimée.
Si cette image n'existe pas la gestion d'erreur (On Error GoTo folge) permet d'ignorer cette suppression.
Si l'image existe, il n'y aura pas d'erreur, l'image sera supprimé et la création de la nouvelle image se produit (à condition que "Choix1" soit bien défini).
 

Discussions similaires

Réponses
39
Affichages
4 K
Réponses
18
Affichages
2 K
Réponses
18
Affichages
2 K