Maathis
XLDnaute Nouveau
Bonjour à tous,
Alors j'ai un petit problème avec un userform de saisie de données.
Le but de mon userform est de rentrer des infos sur un produit avec son image et ensuite de ranger ses valeurs dans un tableau.
Le problème c'est que ce document va être utilisé par plusieurs personnes différents sur leurs ordinateurs donc si elle insère une photo depuis leur photos par exemple, il faut que les autres utilisateurs puissent voire l'image ensuite.
J'avais réussi à obtenir ce que je voulais mais depuis le userform (grâce à votre aide sur ce forum), l'image était insérée en fichier temporaire et donc sur un autre poste, il y avait ce message:
J'ai donc eu l'idée de:
Au moment ou on va enregistrer les informations dans la base de données, l'image soit copié, renommé et envoyé vers un dossier accessible par toute les personnes du réseau et ensuite Excel prend ce fichier la pour l'insérer dans la base de données, ainsi tout le monde peut y avoir accès.
Mais est-ce la meilleure des solutions dans mon cas ?
Actuellement avec cette solution je bloque au moment ou Excel doit prendre l'image dupliquée dans le dossier accessible par tous le monde et l'insérer dans la bonne case du tableau.
Tous d'abord je vous met mon code pour insérer une image dans le useform:
Puis Quand je clique sur le bouton enregistré voici ce qu'il se passe:
Une erreur se produit à cette ligne :
Le message d'erreur est que la proprieté insert n'est non géré.
Merci d'avance pour vos solutions.
Mathis
Alors j'ai un petit problème avec un userform de saisie de données.
Le but de mon userform est de rentrer des infos sur un produit avec son image et ensuite de ranger ses valeurs dans un tableau.
Le problème c'est que ce document va être utilisé par plusieurs personnes différents sur leurs ordinateurs donc si elle insère une photo depuis leur photos par exemple, il faut que les autres utilisateurs puissent voire l'image ensuite.
J'avais réussi à obtenir ce que je voulais mais depuis le userform (grâce à votre aide sur ce forum), l'image était insérée en fichier temporaire et donc sur un autre poste, il y avait ce message:
J'ai donc eu l'idée de:
Au moment ou on va enregistrer les informations dans la base de données, l'image soit copié, renommé et envoyé vers un dossier accessible par toute les personnes du réseau et ensuite Excel prend ce fichier la pour l'insérer dans la base de données, ainsi tout le monde peut y avoir accès.
Mais est-ce la meilleure des solutions dans mon cas ?
Actuellement avec cette solution je bloque au moment ou Excel doit prendre l'image dupliquée dans le dossier accessible par tous le monde et l'insérer dans la bonne case du tableau.
Tous d'abord je vous met mon code pour insérer une image dans le useform:
VB:
Private Sub import_photo_Click()
On Error GoTo Pasimage
strFileName = Application.GetOpenFilename(filefilter:="JPEG Files (*.jpg;*.jpeg;*.jfif;*.jpe),*.jpg;*.jpeg;*.jfif;*.jpe,Bitmap Files(*.bmp),*.bmp", MultiSelect:=False)
Me.boxphoto.Picture = LoadPicture(strFileName)
Me.boxphoto.PictureSizeMode = fmPictureSizeModeStretch
Me.Repaint
End If
Exit Sub
Pasimage: MsgBox "Aucune image"
End Sub
Puis Quand je clique sur le bouton enregistré voici ce qu'il se passe:
Code:
pic = strFileName
nom = Me.txtL
Name pic As "C:\Users\" & nom & ".jpg"
Sheets("Base").Unprotect ""
Me.ID = "" & ID
Sheets("Base").Activate
Range("B100000").End(xlUp).Offset(1, 0).Select
ActiveCell = Me.ID
ActiveCell.Offset(0, 1) = Me.txtL
ActiveCell.Offset(0, 2) = Me.txtC
ActiveCell.Offset(0, 3) = Me.cbA
ActiveCell.Offset(0, 4) = Me.cbM
SavePicture boxphoto.Picture, pic
ActiveCell.Offset(0, 5).Select
With Selection.Parents.Picture.Insert(pic)
.Placement = xlFreeFloating
.PrintObject = msoFalse
.ShapeRange.LockAspectRatio = msoFalse
.Height = boxphoto.Height - 5
.Width = boxphoto.Width - 5
Selection.RowHeight = boxphoto.Height
If Selection.Width > boxphoto.Width _
Then Selection.Columns.ColumnWidth = 1
Do While Selection.Width < boxphoto.Width
Selection.Columns.ColumnWidth = _
Selection.Columns.ColumnWidth + 1
Loop
.Placement = xlMoveAndSize
End With
Sheets("Base").Protect ""
ActiveSheet.EnableAutoFilter = True
Unload Me
Sheets("Accueil").Activate
MsgBox "Ajouté dans la base de données"
End If
Une erreur se produit à cette ligne :
Code:
With Selection.Parents.Picture.Insert(strFileName)
Merci d'avance pour vos solutions.
Mathis