XL 2013 listbox et controle image

fatoum

XLDnaute Nouveau
bonjour!
Me voici dans le forum pour chercher une solution a un problème qui me torture depuis un moment.
J'ai une liste de personne et j'aimerai afficher les informations sur chaque personnes ainsi que leurs photos les modifier et insérer de nouvelles personnes. Tout marche sauf l'affichage des photos dans le contrôle image
je joint mon fichier a se poste tout en espérant avoir une solution je vous remercie d'avance
 

Pièces jointes

  • dossier.zip
    218.5 KB · Affichages: 16

fatoum

XLDnaute Nouveau
Ah, le chemin est fixe alors ? Qu'appelez vous le Format de la photo ?
(Il est bien entendu hors de question de mettre les photos elles mêmes dans la base, ce serait absurde)
oui le chemin est fixe,il est fonction de l'emlacement de mon fichier excel. et non je ne veux pas de photo dans mon classeur, jaimerai juste mettre le nom et le type(JPG) de la photo dans la colonne G
 

Dranreb

XLDnaute Barbatruc
J'ai du mal à voir à quel endroit vous écrivez dans la base le nom du fichier avec son extension, parce que je ne travaille jamais directement avec les cellules et parce que les contrôles n'ont pas de noms mnémoniques.
J'ai ajouté le contrôle image dans mon CBxLCtlA et fait en sorte qu'il accepte un dossier.
Pour traiter une sélection dans une ListBox je reparts toujours de la Base, jamais de la ListBox.

*** pièce jointe supprimée ***
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Après avoir réouvert votre classeur j'ai trouvé ceci:
Dans la UserForm_Initialize ListBox1.Columns.Count est mis à 2 et de toute façon rien d'autre n'est initialisé que la colonne 0.
Alors ListBox1.List(ListBox1.ListIndex, 4) ne ne contient jamais de nom de fichier.
Dans ma ressource le nom du fichier devient la valeur du contrôle associé d'une image. Le LoadPicture est fait automatiquement lors d'un appel à la méthode ValeursDepuis de l'objet ControlsAssociés. Un clic sur l'image permet de changer ce nom de fichier. Il est envoyé dans le tableau spécifié lors d'un appel de la méthode ValeursVers.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Quelques modifications.
Notamment un Repaint ajouté, parce que sinon le LoadPicture pouvait subitement devenir sans effet.
J'oubliais, faut le savoir, le dossier des images est à spécifier en tant qu'argument Fmt au Add du contrôle Image.
Exemple de code testé dans un petit UserForm avec une TextBox1 et une Image1 :
VB:
Option Explicit
Private WithEvents CA As ControlsAssociés, PlgTablo As Range, TVL(), LCou As Long
Private Sub UserForm_Initialize()
   Set CA = Création.ControlsAssociés
   CA.Add Me.TextBox1, 1
   CA.Add Me.Image1, 2, "C:\Users\Luck\Pictures"
   Set PlgTablo = Feuil1.[B3:C10]
   ReDim TVL(1 To 1, 1 To 2)
   End Sub
Private Sub CA_Change(ByVal CAM As CLsCAs.CAsso)
   If CAM.Ctl Is Me.TextBox1 Then
      LCou = CAM.Valeur
      TVL = PlgTablo.Rows(LCou).Value
      CA.ValeursDepuis TVL
   Else
      CA.ValeursVers TVL
      PlgTablo.Rows(LCou).Value = TVL
      End If
   End Sub
Mais la mise au point n'est peut être pas terminée…
 

Pièces jointes

  • CBxLCtlA.xlsm
    172.4 KB · Affichages: 9
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 011
dernier inscrit
rine