[VBA] Visualisation d'une image

cs_lora21
Messages postés
12
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007
- 11 avril 2007 à 13:06
cs_lora21
Messages postés
12
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007
- 12 avril 2007 à 10:00
Bonjour,
Voilà j' aurais besoin de votre aide. Je suis étudiante et je dois rendre un dossier en informatique. Il me reste une seule chose à faire et je n'y arrive pas.J'ai une feuille ou on affiche sur uneUserform une image grace à un bouton "chemin photo" qui me permet d'aller sur mes dossier pour selectionner une image. Le souci c'est que lorsque je clique sur le bouton "enregistrer" toute mes données (nom, prenom,adresse.....) s'enregistre sauf la photo ou meme son URL dans un tableau. Quand je clique sur un bouton visualisation toute les données réapparaissent (nom, adresse, prenom...) mais la photo elle ne revient pas. Savez vous si c'est possible à réaliser? car je cherche depuis des semaines et aprés plusieurs esai rien ne marche.... Merci d'avance pour votre aide...
Lora

14 réponses

sobullshit
Messages postés
178
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
8 juin 2007

11 avril 2007 à 13:11
C'était pas la peine de reposter juste à cause d'une remarque inutile.
En plus comme je ne sais pas si tu vas regarder l'ancien poste je suis obligé de reposter ma réponse (que de temps perdu... en même temps j'ai rien d'autre à faire).

Ton ImgPhoto est une image ou un chemin d'accès?
Car si tu tentes de mettre une image comme valeur d'une cellule Excel ça n'est pas possible.
Et pour récupérer ton image tu utilises les CommonDialog ou une boîte que tu as créée?
0
cs_lora21
Messages postés
12
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007

11 avril 2007 à 13:17
Si je viens de voir ton message et je t'ai repondu. Hop je remets ma reponse.

En fait j'ai créer un bouton "chemin photo" qui me permet d'aller sur les dossiers de mon ordinateur pour choisir la photo et qui aprés la met dans un cadre réalisé sous visual basic grace à la boite d'outil ( image).
Comme formule j'ai mis cela pour pouvoir aire le chemin photo:

Private Sub CmdChemin_Click()

photo = Application.GetOpenFilename("Fichiers gif ou jpg,*.gif;*.jpg")
If photo = False Then Exit Sub
'pour le cas ou l'utilisateur clique sur annuler
'dans la boite d'ouverture de fichier
ImgPhoto.Picture = LoadPicture(photo)
ImgPhoto.Visible = True
CmdChemin.Visible = False

End Sub

Mais aprés je n'arrive pas à enregistrer cette photo pour que quand je clique sur mon bouton visualisation elle reviene. Toutes mes données reviennent (nom prenom...) mais pas l' image.

Merci beaucoup Sobullshit pour ton aide et ta gentillesse
0
sobullshit
Messages postés
178
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
8 juin 2007

11 avril 2007 à 13:20
Deuxième fois que je lis ta réponse alors la mienne devrait être simple:
Ton ImgPhoto est une image que tu ne peux pas enregistrer dans une cellule Excel.
Par contre si tu enregistre son chemin d'accès (photo chez toi, il me semble), tu pourras la reload quand tu en auras envie.

Par contre ne mets pas de majuscule à mon pseudo, les majuscules c'est pour les gens importants (Dieu, Napoléon, Allah, Moi...)
0
fatinature
Messages postés
1
Date d'inscription
lundi 9 avril 2007
Statut
Membre
Dernière intervention
11 avril 2007

11 avril 2007 à 13:26
je peut instaler une noveaux windws dans mon pc mais une fois entrer le cd dans lecteur cd j'ai pas le droit formater et instaler
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lora21
Messages postés
12
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007

11 avril 2007 à 13:29
J'ai essayé de aire comme tu m'as dit pour enregistrer l'image dans mon tableau Excel en mettant comme pour les autres données (nom prenom...) cette formule précédé de sub et finissant par end sub:

'* Le pointeur de cellule passe à la colonne voisine
'  La date de délivrance est introduite
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = photo

Mais rien n'apparait.

Désolé de t'ennuyer avec sa.
0
sobullshit
Messages postés
178
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
8 juin 2007

11 avril 2007 à 13:35
Tu as déclaré photo comment? variant? string?
Ton problème peut venir de là.
Sinon as-tu essayé d'enregistrer dans une autre variable ton chemin d'accès et de mettre la valeur de cette variable dans ton classeur?

Sinon juste pour t'embêter, utilise plutôt
ActiveCell.FormulaR1C1 = cequetuveux
au lieu de
ActiveCell.Value = ...

Enfin bon je dis ça je dis rien...

Sinon pour fatinature ton post n'est pas à sa place, créer en un même si pour ce genre de problème je te conseille plutôt d'aller sur le site de microsoft.
0
cs_lora21
Messages postés
12
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007

11 avril 2007 à 13:52
Alors j'ai utilisé ActiveCell.FormulaR1C1 = photo mais cela ne marche pas.
Aprés comment j'ai déclaré ma photo ça je ne sais pas, je ne sais même pas ce que veut dire variant?string? pour une image  je dis merci à mon prof d'informatique pour nous donner d'aussi on cours et de nous donner un examen aussi dur avec des choses que l'on a jamais vu.

Un momen j'ai mis ça mais je sais pas si c'est cela que tu me demandes

photo = Application.GetOpenFilename("Fichiers gif ou jpg,*.gif;*.jpg")
If photo = False Then Exit Sub
0
sobullshit
Messages postés
178
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
8 juin 2007

11 avril 2007 à 14:05
Il me semble que nous soyons face à un malentendu.
Je te fais enregistrer le chemin d'accès à l'image, et non l'image.
Donc quand tu charges tes données ensuite, pour que l'image apparraisse il faut que tu la charges à partir du chemin.
J'ai testé avec ton code et le chemin d'accès est bien enregistré.
Comment récupères-tu tes informations ensuite?
0
cs_lora21
Messages postés
12
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007

11 avril 2007 à 14:13
Oups c'est que je suis nulle alors. Ben j'ai reessayé en mettant cela :

'* Le pointeur de cellule passe à la colonne voisine
'  La photo de délivrance est introduite
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = CmdChemin

Mais ça ne s'enregistre pas :s

Aprés pour que toutes mais données reapparaissent j'ai fait une nouvelle Userform appellée "visualisation" avec des formules:

Private Sub Nom1_Change()

prenom1.Value = Worksheets("encodage").Range("B" & CStr(Nom1.ListIndex + 3)).Value
typec.Value = Worksheets("encodage").Range("C" & CStr(Nom1.ListIndex + 3)).Value
adresse1.Value = Worksheets("encodage").Range("D" & CStr(Nom1.ListIndex + 3)).Value
codepostal1.Value = Worksheets("encodage").Range("E" & CStr(Nom1.ListIndex + 3)).Value
ville1.Value = Worksheets("encodage").Range("F" & CStr(Nom1.ListIndex + 3)).Value
telephone1.Value = Worksheets("encodage").Range("G" & CStr(Nom1.ListIndex + 3)).Value
portable1.Value = Worksheets("encodage").Range("H" & CStr(Nom1.ListIndex + 3)).Value
taux1.Value = Worksheets("encodage").Range("I" & CStr(Nom1.ListIndex + 3)).Value
indice1.Value = Worksheets("encodage").Range("J" & CStr(Nom1.ListIndex + 3)).Value
datee1.Value = Worksheets("encodage").Range("K" & CStr(Nom1.ListIndex + 3)).Value
dates1.Value = Worksheets("encodage").Range("L" & CStr(Nom1.ListIndex + 3)).Value
nat1.Value = Worksheets("encodage").Range("M" & CStr(Nom1.ListIndex + 3)).Value
carte1.Value = Worksheets("encodage").Range("N" & CStr(Nom1.ListIndex + 3)).Value
validite1.Value = Worksheets("encodage").Range("O" & CStr(Nom1.ListIndex + 3)).Value
datedel1.Value = Worksheets("encodage").Range("P" & CStr(Nom1.ListIndex + 3)).Value

End Sub

Private Sub Nom2_Change()

prenom2.Value = Worksheets("encodage").Range("B" & CStr(Nom2.ListIndex + 3)).Value
typec2.Value = Worksheets("encodage").Range("C" & CStr(Nom2.ListIndex + 3)).Value
adresse2.Value = Worksheets("encodage").Range("D" & CStr(Nom2.ListIndex + 3)).Value
codepostal2.Value = Worksheets("encodage").Range("E" & CStr(Nom2.ListIndex + 3)).Value
ville2.Value = Worksheets("encodage").Range("F" & CStr(Nom2.ListIndex + 3)).Value
telephone2.Value = Worksheets("encodage").Range("G" & CStr(Nom2.ListIndex + 3)).Value
portable2.Value = Worksheets("encodage").Range("H" & CStr(Nom2.ListIndex + 3)).Value
taux2.Value = Worksheets("encodage").Range("I" & CStr(Nom2.ListIndex + 3)).Value
indice2.Value = Worksheets("encodage").Range("J" & CStr(Nom2.ListIndex + 3)).Value
datee2.Value = Worksheets("encodage").Range("K" & CStr(Nom2.ListIndex + 3)).Value
dates2.Value = Worksheets("encodage").Range("L" & CStr(Nom2.ListIndex + 3)).Value
nat2.Value = Worksheets("encodage").Range("M" & CStr(Nom2.ListIndex + 3)).Value
carte2.Value = Worksheets("encodage").Range("N" & CStr(Nom2.ListIndex + 3)).Value
validite2.Value = Worksheets("encodage").Range("O" & CStr(Nom2.ListIndex + 3)).Value
datedel2.Value = Worksheets("encodage").Range("P" & CStr(Nom2.ListIndex + 3)).Value

End Sub


Private Sub UserForm_Initialize()
Nom2.RowSource = ("encodage!nomlist")
prenom2.Enabled = False
typec2.Enabled = False
adresse2.Enabled = False
codepostal2.Enabled = False
ville2.Enabled = False
telephone2.Enabled = False
portable2.Enabled = False
taux2.Enabled = False
indice2.Enabled = False
datee2.Enabled = False
dates2.Enabled = False
nat2.Enabled = False
carte2.Enabled = False
validite2.Enabled = False
datedel2.Enabled = False
End Sub

Mais je ne suis pas arrivé à faire réapparaitre l'image vu que j'arive meme pas à la faire enregistrer
0
sobullshit
Messages postés
178
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
8 juin 2007

11 avril 2007 à 14:24
Pour faire simple: ton image est où la dedans?

Sinon tu pouvais garder ton activecell.formular1c1 = photo.
Si tu comprends pas pourquoi je te l'exlique juste après.

Sinon pour alléger ton code au lieu d'utiliser Range, utilise plutôt Cells.
exemple:
prenom1.Value = Worksheets("encodage").Range("B" & CStr(Nom1.ListIndex + 3)).Value

équivaut à :
prenom1.Value = Worksheets("encodage").Cells(Nom1.ListIndex + 3,2).Value
0
cs_lora21
Messages postés
12
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007

11 avril 2007 à 14:36
Là je dois partir car j'ai un rendez vous mais ce soir j'essaie tous ça et je te tiens au courant.Je remplacerais ce ue tu ma dis pour alléger mon code.
Par contre dans tous les codes que je t'ai donné j'ai rien mis pour faire apparaitre l'image vu que je n'arrive même pas à l'enregistrer 
Merci de ton aide je te dis à tout à l'heure.
Bonne aprés midi et encore merci
Lora
0
cs_lora21
Messages postés
12
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007

11 avril 2007 à 20:07
Voilà je suis de retour...
Alors je viens de changer mes codes pour la visualisation.
Par contre je n'arrive toujours pas à enregistrer le chemin de ma photo sur ma page excel, j'ai reessayé avec le pour code
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = photo
Maos cela ne fonctionne pas, rien ne s'enregistre :s
0
sobullshit
Messages postés
178
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
8 juin 2007

12 avril 2007 à 07:31
cf message perso
0
cs_lora21
Messages postés
12
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007

12 avril 2007 à 10:00
Merci pour ton aide sobullshit
0