Là les pros du forum j'ai vraiment besoin de vous ! Pb de nom d'image dans usf

jf27

XLDnaute Occasionnel
:eek:Bonsoir le forum

Si vous pouvez prendre un peu de temps pour lire la description de mon pb et me dépanner je vous en serait très reconnaissant car là je coince vraiment !
voilà mon pb.:(
j'utilise un usf pour creer des fiches contenant texte et images.= Menu creer Fiche

Les images sont chargées dans l'usf puis sauvegarder dans la fiche correspondante. Ceci marche correctement

J'ai un 2ème menu: modifier fiche:

j'ouvre le même usf et j'initialise son contenu et donc les images avec les images ciontenues dans la fiche correspondante. Ceci marche correctement. Les pictures de l'USF contiennent les images de la fiche

Le pb est que si je resauvegarde la fiche de nouveau après modif, je perds les images qui bien que visibles dans l'usf ne sont plus copiées dans la fiche.

Je pense qu'il y a un pb de nom quand je copie l'image du fichier dans l'usf, car si lors de la modif fiche je change une image de l'usf, cette nouvelle image est bien sauvegardée.


J'espère que c'est clair !
Voici mon code
comment je charge un fichier image. Ca fonctionne
Code:
Private Sub ButtonPhoto1_Click()
  Dim FileImg As Variant
  FileImg = FileOpen("Choisir le fichier", , "Image", "*.jpg;*.gif")
    car1.Picture = LoadPicture(Mid(FileImg, 2, 200))
End Sub
Comment je copie les images de l'USF dans la fiche
Code:
Sheets("file").Activate
 Sheets("file").Unprotect
 
'Copy image from userform in datasheet at the good place and the good size
  
  Set IPic = car1.Picture
'Clipboard opening
    OpenClipboard 0&: EmptyClipboard
'Copy image into clipboard
    hCopy = SetClipboardData(2, IPic.handle)
'Close clipboard
    CloseClipboard
'Check if something is in clipboard
    If hCopy Then
'define where to copy
 Range("J5").Select
    
    
'copy image in the active sheet
    ActiveSheet.Paste
     
    Selection.ShapeRange.LockAspectRatio = msoFalse
    Selection.ShapeRange.Height = ActiveCell.MergeArea.Height
    Selection.ShapeRange.Width = ActiveCell.MergeArea.Width
    Selection.ShapeRange.Rotation = 0#
    Selection.Name = "car1"
    End If
    'Clean variable
'    DestroyIcon iPic.Handle
    Set IPic = Nothing
Comment j'initialise mon usf avec les images de la fiche.
Code:
Set shp = Sheets("file").Shapes("car1")
    shp.CopyPicture
    Set car1.Picture = PastePicture()
c'est là que doit être le pb je pense. L'image est bien copié dans l'usf mais je pense que le nom doit être changé et différent de lorsque je fais

car1.Picture = LoadPicture(Mid(FileImg, 2, 200))

l'erreur est alors sur ActiveSheet.Paste, car il n'y a rien à copier.

Là ca dépasse mes connaissances.

Merci de votre aide, car c'est le dernier pb qu'il reste dans mon appli:(
 

Charly88

XLDnaute Occasionnel
Re : Là les pros du forum j'ai vraiment besoin de vous ! Pb de nom d'image dans usf

Bonjour,
Je ne sais pas pour les copains mais pour moi tes explications ne sont pas claires, écrites trop à chaud j'ai l'impression.

Toutefois de ce que je comprends, il ne manquerait les lignes de codes où tu es censé sauvegarder tes données dont l'image modifiée ?... A moins que tu ne les modifies pas, ce qui serait logique et dans ce cas pourquoi pourquoi chercher à coller un élément non-modifié ?
 

jf27

XLDnaute Occasionnel
Re : Là les pros du forum j'ai vraiment besoin de vous ! Pb de nom d'image dans usf

bonjour

merci de ta réponse Charlie,

en effet c'est pas simple à rendre ca clair.
la source de mon probleme est en fait :

l'instruction
Set car1.Picture = PastePicture()


qui a visuellement le même résultat que
car1.Picture = LoadPicture(Mid(FileImg, 2, 200))


par contre l'objet image copié dans l'usf doit dans le cas du paste avoir un nom différent de celui du load.
car lorsque je veux le reprendre avec son nom initial car1 picture, pour le paster dans la fiche modifié c'est la que ça coince si le car1.picture a été généré par pastepicture()
s'il a été généré par loadpicture cela fonctionne


Merci !
La copie des images dans la fiche ce fait comme suit:
Code:
Sheets("file").Activate
 Sheets("file").Unprotect
 
'Copy image from userform in datasheet at the good place and the good size
  
  Set IPic = car1.Picture
'Clipboard opening
    OpenClipboard 0&: EmptyClipboard
'Copy image into clipboard
    hCopy = SetClipboardData(2, IPic.handle)
'Close clipboard
    CloseClipboard
'Check if something is in clipboard
    If hCopy Then
'define where to copy
 Range("J5").Select
    
    
'copy image in the active sheet
    ActiveSheet.Paste
     
    Selection.ShapeRange.LockAspectRatio = msoFalse
    Selection.ShapeRange.Height = ActiveCell.MergeArea.Height
    Selection.ShapeRange.Width = ActiveCell.MergeArea.Width
    Selection.ShapeRange.Rotation = 0#
    Selection.Name = "car1"
    End If
    'Clean variable
'    DestroyIcon iPic.Handle
    Set IPic = Nothing
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 487
Membres
103 557
dernier inscrit
gerard.messerlin68@orange