Fonction clic et décaler en vba

  • Initiateur de la discussion Initiateur de la discussion Guest
  • 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 !

G

Guest

Guest
bonjour à tous,
je cherche une solution en VBA pour le problème suivant (excel 2003);

Quand je clique sur une cellule de la colonne B, j'incrémente celle cellule par le contenu de la cellule immédiatement à gauche de celle-ci.
Idem pour une autre colonne C D etc mais en prenant toujours le contenu de la colonne A de la même ligne.

N'étant pas très doué j'espère avoir été clair.

En vous remerciant par avance.

Cordialement
 
Re : Fonction clic et décaler en vba

Bonjour à tous..

Le principe de base: du code dans l'événement Worksheet_BeforeDoubleClick

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveCell = ActiveCell + Range("A" & ActiveCell.Row)
SendKeys ("{RIGHT}"), True
End Sub

Ca c'est le code qui a été proposé par MutZic... Dans ce code, tu peux rajouter tous les tests que tu veux, puor par exemple limiter la zone active...

(personnellement je préfère tester l'argument Target, qui est la cellule qui a réellement reçu le double-click)

Pour limiter aux colonnes 2 à 9, par exemple, tu rajoutes...
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If target.column>1 and target.column< 10 then
ActiveCell = ActiveCell + Range("A" & ActiveCell.Row)
SendKeys ("{RIGHT}"), True
End If
End Sub
 
Re : Fonction clic et décaler en vba

Bonjour Orpheu, dubdub, Bonjour mutzik 🙂 ,
Pour limiter la plage :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim plg As Range
 
Set plg = Range("A1:D40")
If Not Application.Intersect(Target, plg) Is Nothing Then
     Cancel = True 'pour éviter l'édition de la cellule au double click
     ActiveCell = ActiveCell + Range("A" & ActiveCell.Row)
End If
Cordialement
 
- 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.

Discussions similaires

Réponses
5
Affichages
196
  • Question Question
XL 2021 Macro
Réponses
6
Affichages
312
Réponses
4
Affichages
231
Réponses
18
Affichages
584
Retour