Comment simuler un double-click en VBA EXCEL?

Fermé
Frutchy Messages postés 66 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 20 août 2012 - 22 mars 2008 à 21:07
bobtipitt Messages postés 61 Date d'inscription dimanche 23 mars 2008 Statut Membre Dernière intervention 16 août 2010 - 23 mars 2008 à 16:43
Bonjour,

Je développe une application en VBA sous EXCEL.

J'ai découvert que, lorsque l'on copie du texte vers une cellule, le comportement d'EXCEL est différent selon que la cellule de destination est simplement sélectionnée ou que le pointeur se trouve vraiment DANS la cellule.

Si la cellule de destination est sélectionnée avec un double-click (le pointeur est DANS la cellule), tout va bien.
En revanche, si elle a été sélectionnée par un SIMPLE click, certaines caractéristiques de la cellule, comme par exemple le Renvoi automatique à la ligne, ne fonctionnent plus.
Bien sûr, en VBA on peut remettre tous les paramètres de la cellule et forcer la mise en forme (AutoFit, etc.) mais c'est déjà trop tard : Lorsque l'on capte l'événement, selon le cas, la hauteur de ligne (en points) sera différente selon le mode de sélection.
Étant donné que je ne peux pas me permettre cette différence de comportement selon le style de click (car je gère en VBA des cellules contenant un texte qui s'étend sur plusieurs lignes, tout en gardant les lignes de totaux qui se trouvent en dessous dans la feuille au même endroit physique), je cherche à faire en sorte que VBA capte la sélection simple et simule un double click à la place du simple click pour être sûr de toujours avoir le même comportement.

Essayez vous même : Cochez la case "Renvoyer à la ligne automatiquement" pour quelques cellules puis copiez un texte long, dont la longueur dépasse la largeur de la colonne (attention, pour que le renvoi à la ligne se déclenche, il faut que la cellule à droite de la cellule destinataire ait un contenu). Voyez la différence selon la façon dont vous aurez sélectionné la cellule de destination.

Merci pour tout suggestion !

Question subsidiaire : Quelqu'un sait-il comment prévenir l'utilisateur à la fin de la saisie du 255e caractère dans une cellule pour dire qu'il a atteint la limite de la saisie ? Car EXCEL ne prévient que lorsque l'on valide la saisie avec Entrée (on aura donc peut-être déjà saisi des centaines de caractères pour rien) et EXCEL ne sait pas bien gérer le renvoi à la ligne d'une chaîne de caractères supérieure à 255 caractères.

"On ne sait que ce que l'on pratique." (Montesquieu)
A voir également:

1 réponse

bobtipitt Messages postés 61 Date d'inscription dimanche 23 mars 2008 Statut Membre Dernière intervention 16 août 2010 2
23 mars 2008 à 16:43
Bonjour,
Pour le double-click j'ai peut-être un code qui peux t'aider mais pour le reste je ne le sais pas

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)

MsgBox "Vous avez double-cliqué sur la cellule " & Target.Address
Cancel = True
End Sub



MAIs il faut que tu enleve le «MsgBox» Il ne sert a rien mais le reste


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)

End Sub


Garde Le sa peut-peut-etre t'aider et je vais tenvoyer quelque chose a ton adresse e-mail qui peux aussi t'AIDER
0