Insertion d'une picture avec UserForm

Bonjour,

J'ai une erreur d'exécution"13"(Incompatibilité de type) lorsque j'ajoute des données dans un tableau à l'aide d'une userform .

Le problème c'était au niveau d'insertion de photo dans le tableau.

14pf11.xlsm (49.37 Ko)

Bonsoir,

vous avez "deux" variables sImage. En effet aucune d'entres elles n'est déclarée hors module en "public" donc pas de transfert de "valeur" d'une procédure à une autre.

Dans votre cas votre procédure Ecrire_Réception() devrait avoir un paramètre sImage donc l'appel devrait se faire à partir de votre USF de cette façon :
Call Ecrire_Réception(sImage) et le nom de votre procédure devrait être :
Sub Ecrire_Réception(sImage as Object) et supprimer dans cette procédure la ligne : Dim sImage As Object
Si votre procédure peut fonctionner sans sImage (ce que je doute) alors vous pouvez mettre le paramètre en Optional :
Sub Ecrire_Réception(Optional sImage As Object), mais vu le code je ne pense pas que ce soit une "option" !

A vérifier maintenant que tous les appels à la Sub permettent de donner une valeur à sImage.

@ bientôt

LouReeD

Bonsoir,

Merci LouReeD pour votre réponse. Mais ça marche pas, il a une erreur de compilation(Type d'argument ByRef incompatible) dans la ligne

Call Ecrire_Réception(sImage).

10pf11.xlsm (56.73 Ko)

bonjour,

ajouter comme première ligne dans UF_Réception

Public sImage As String (Je ne suis pas convaincu de l'utilité de option explicit)

et puis dans ecriture lignes

Sub Ecrire_Réception(Optional sImage)

et c'est columnwidth !

Bonsoir,

Merci beaucoup BsAlv pour ta réponse, le problème est résolu. Mais, j'ai deux autres problème :

Le premier, lorsque je supprime une ligne de tableau avec le bouton "supprimer" la suppression se fait mais l'image de la ligne supprimé reste visible.Le deuxième problème, lorsque je modifie une ligne de tableau avec le bouton "modifier" ne fonctionne pas. Je pense qu'il y a un problème au niveau de lecture_lignes plutôt lecture de l'image.

bonjour,

pour supprimer, ajouter ce boucle

    Select Case Réponse
          Case vbYes
               Déprotéger
               For Each shp In ActiveSheet.Shapes     'boucle tous les "shapes" de cette feuille
                    If Not Application.Intersect(shp.TopLeftCell, Range("F" & ActiveCell.Row)) Is Nothing Then shp.Delete     'delete tous les shapes avec leur "topleftCell" dans la cellule F de cette ligne
               Next
               Selection.EntireRow.Delete
               Protéger
     End Select

2ieme question est plus difficile because l'userform suppose de recevoir un filename (=string) et ne pas un image. Donc la solution sera d'exporter votre image vers un fichier et puis importer ce fichier dans l'userform. C'est trop ???

Bonsoir,

Merci beaucoup BsAlv pour ta réponse et pour votre aide, le problème de suppression est résolu. Le deuxième problème, Je vais essayer de trouver une solution.

comme ceci ???

Sub Shape2File()
     '*******************************
     'créer un fichier tuto_tuto.jpg d'une plage
     '*******************************
     With Sheets("réception")
          .Range("f4").Copy     'copier votre image dans une cellule
          .Pictures.Paste     'coller comme shape
          Set Pic = .Pictures(.Pictures.Count)     'dernier shape de cette feuille
          Set ChO = .ChartObjects.Add(Left:=10, Top:=10, Width:=Pic.Width, Height:=Pic.Height)     'créer comme chartobject
          Application.CutCopyMode = False
          Do     'boucle
               DoEvents
               Pic.Copy     'copier shape
               DoEvents
               ChO.Chart.Paste     'coller shape dans le chartobject
               DoEvents
          Loop Until (ChO.Chart.Shapes.Count > 0 Or i > 50)     'boucle jusqu'à  cela a marché
          ChO.Chart.Export Filename:=ThisWorkbook.Path & "\tuto_tuto.jpg", Filtername:="JPG"     'export as jpg
          ChO.Delete     'delete chartobject
          Pic.Delete     'delete shape
          On Error GoTo 0
     End With
End Sub
Le fichier n'est pas à jour mais contient ce macro en haut, donc vous pouvez tester cela et puis copier et coller dans votre dernier version. 
9pf11.xlsm (55.68 Ko)

je ne suis pas sur ce qui se passe si vous faites cela plusieurs fois, peut-être c'est mieux de vérifier si l'image n'a pas changé et alors if faut rien faire, autrement, il faut remplacer le vieux image par le nouveau ....

Rechercher des sujets similaires à "insertion picture userform"