Pave directionnel bloqué apres macro

Résolu/Fermé
boomer11 - 24 juil. 2015 à 13:12
 boomer11 - 25 juil. 2015 à 17:06
Bonjour,

Voilà mon problème :
J'ai créé un userform qui s'ouvre quand je double clique sur la cellule et il m'affiche une image correspondant à la référence de la cellule.
La raison pour laquelle j'utilise se code est que toutes mes images sont stockées sur une feuille du classeur. (je ne peux pas les mettre dans un fichier à part pour aller les chercher...).
Le code fonctionne très bien mais le seul souci qui arrive après exécution de la macro : le blocage du pavé directionnel. impossible de l'utiliser pour se déplacer d'une cellule à l'autre...

Private Sub UserForm_Initialize()
Dim ff
Me.Caption = ActiveCell.Value

Set ff = Sheets("PHOTO")
Set s = ff.Shapes(CStr(ActiveCell.Value))
s.CopyPicture
ff.ChartObjects.Add(0, 0, s.Width, s.Height).Chart.Paste
ff.ChartObjects(1).Chart.Export Filename:="monimage.jpg"
ff.Shapes(ff.Shapes.Count).Delete
Me.img.PictureSizeMode = fmPictureSizeModeZoom
Me.img.Picture = LoadPicture("monimage.jpg")
Kill "monimage.jpg"

End Sub

Une idée.....??? parce que là je rame.....
Merci


A voir également:

8 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
25 juil. 2015 à 08:29
Bonjour,

question bête:

As- tu mis la propriété ShowModal à False de ton UserForm?
0
Bonjour,

Merci pour votre intérêt à la question.

Le Userform n'a pas la propriété ShowModal à False.
J'ai essayé les 2 cas, le problème reste le même.
C'est bizarre ... ne serait ce pas lié à la création d'un objet Chart ?
J'ai testé quand j'enlève le code, le Userform s'ouvre correctement (bien sur sans l'image), quand je le ferme, le pavé directionnel est toujours opérationnel. Je remet le code et là, ça ne fonctionne plus ???
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
25 juil. 2015 à 11:37
Voir ceci pour pouvoir travailler sur une feuille quand l'UserForm est présente:

https://silkyroad.developpez.com/VBA/UserForm/#LIII-A-2
0
oui j'ai essayé les 2 modes, mais le problème ne vient pas de la navigation sur la feuille de calcul. Après la fermeture du userform, seul les touches flèche ne fonctionnent plus.
Si vous voulez un fichier exemple, n'hésitez pas !
merci
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
25 juil. 2015 à 13:11
Poster ici, je vois ce que ça donne chez moi:

https://www.cjoint.com/
0
Exemple :

http://www.cjoint.com/c/EGzmaOuG7L3
0

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

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
25 juil. 2015 à 14:34
Le pave te sert à naviguer dans le combo pour faire défiler les images (haut et bas).
Si tu veux naviguer sur ta feuille, il faut cliquer sur le TextBox2 avant et cliquer sur ta feuille ensuite:

Affichage images internes dans un formulaire
TexBox2


Voilà
0
Hm... après quand on ferme le userform et que l'on se met dans une cellule quelconque sur la feuille accueil, là on ne peut pas utiliser les flèches pour se déplacer sur la feuille.
Ce n'est pas dans le userform
Désolé, j'essaie de bien expliquer mais c'est pas évident.
pour info, ça le fait sur 2 postes différents qui ont office 2007 et 2013.
merci encore
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
25 juil. 2015 à 16:51
Il faut cliquer ici pour rétablir


Sinon il changer le code!!!!!
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
25 juil. 2015 à 17:03
Rectifier le code :

Dim f
Private Sub UserForm_Activate()
 Me.ComboBox1.ListIndex = 0 'affiche image à l'ouverture
End Sub
Private Sub UserForm_Initialize()
  Set f = Sheets("photos")
  For Each s In f.Shapes
    Me.ComboBox1.AddItem s.Name
  Next
End Sub
Private Sub ComboBox1_Change()
  Set s = f.Shapes(CStr(Me.ComboBox1))
  s.CopyPicture
  f.ChartObjects.Add(0, 0, s.Width, s.Height).Chart.Paste
  f.ChartObjects(1).Chart.Export Filename:="monimage.jpg"
  f.Shapes(f.Shapes.Count).Delete
  Me.Image1.PictureSizeMode = fmPictureSizeModeZoom
  Me.Image1.Picture = LoadPicture("monimage.jpg")
  Kill "monimage.jpg"
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
ActiveSheet.Shapes("Text Box 2").Select 'selection pour rétablir pavé
End Sub

0
OK merci, je viens de voir le message.
MERCI encore :)
0
OK bien vue ... je viens de comprendre.
Sinon le code a changé car je m'en suis servi pour l'adapter sans le choix avec la combo. Du coup, mon code affiche l'image référencé dans la cellule directement.
Comment retrouver le pavé sans cliqué sur une autre image dans ce cas?
C'est normal ??
Et GRAND merci :)
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
25 juil. 2015 à 17:05
je viens d'envoyer la solution, on s'est croisés!
0