Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

difficulte macro double clic

  • Initiateur de la discussion Initiateur de la discussion Jec
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Jec

Guest
Bonjour,
Jai un probleme avec mon code VBA, alors que je voudrais que loperation s effectue que si je clique sur la collonne 23 ou 24, le message s affiche meme si je clique sur la collone 26 par exemple. Comment faire pour lancer l operation que lorsque je double clic sur la collonne 23 ou 24.

De plus, pour la deuxieme operation( If c.Column = 24 Then c.Offset(, -23).Resize(, 7).clear content. ) je ne trouve pas le bon code pour effacer le contenu de la ligne. par exemple si je double clique sur le collone 24 ligne 3, je voudrais effacer le contenu de la ligne 3 de la collonne 1 a 10.

Private Sub Worksheet_BeforeDoubleClick(ByVal c As Range, Cancel As Boolean)
If c.Column = 23 Then c.Offset(, -22).Resize(, 7).Copy Range("a3")
If MsgBox("Are you sure to validate?", vbOKCancel, "Confirmation") = vbOK Then
End If
If c.Column = 24 Then c.Offset(, -23).Resize(, 7).clear content
If MsgBox("Are you sure to validate?", vbOKCancel, "Confirmation") = vbOK The
End If

Merci de votre aide
 
bonjour

a priori un problème de If - End If

essayez avec

VB:
If c.Column = 23 Then
   c.Offset(, -22).Resize(, 7).Copy Range("a3")
   If MsgBox("Are you sure to validate?", vbOKCancel, "Confirmation") = vbOK Then
        ' code si réponse=OK , sinon inutile de tester pour ne rien faire derrière
   End If
End If
If c.Column = 24 Then
   c.Offset(, -23).Resize(, 7).clear content
   If MsgBox("Are you sure to validate?", vbOKCancel, "Confirmation") = vbOK Then
        ' code si réponse=OK , sinon inutile de tester pour ne rien faire derrière
   End If
End If

pour le second souci essayez:
Code:
Range(Cells(c.Row, 1), Cells(c.Row, 10)).ClearContents
ou bien pour toute la ligne :
Code:
Rows(c.Row).ClearContents

A+
 
Re,

Si ce n'est plus les colonnes 1 à 10, mais B,C,F et H:

Code:
i=c.Row
Range("B" & i & ":C" & i & ",F" & i & ",H" & i).ClearContents

A+

Edit : rajout de l'initialisation de i
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…