Pave directionnel bloqué apres macro

Résolu
boomer11 -  
 boomer11 -
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

8 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    question bête:

    As- tu mis la propriété ShowModal à False de ton UserForm?
    0
  2. boomer11
     
    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
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Voir ceci pour pouvoir travailler sur une feuille quand l'UserForm est présente:

    https://silkyroad.developpez.com/VBA/UserForm/#LIII-A-2
    0
    1. boomer11
       
      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
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Poster ici, je vois ce que ça donne chez moi:

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

      http://www.cjoint.com/c/EGzmaOuG7L3
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. boomer11
       
      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
  7. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Il faut cliquer ici pour rétablir


    Sinon il changer le code!!!!!
    0
  8. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. boomer11
       
      OK merci, je viens de voir le message.
      MERCI encore :)
      0
  9. boomer11
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      je viens d'envoyer la solution, on s'est croisés!
      0