Activer une macro avec une condition?

JCAZAUX

XLDnaute Nouveau
Bonjour
Est-il possible d'activer une macro avec une condition (comme par exemple se trouver sur la cellule X ou la colonne Y) ?

plutôt qu'en appuyant sur une touche...

Merci
 

jp14

XLDnaute Barbatruc
Re : Activer une macro avec une condition?

Bonjour

Un double click en c3 lance la procédure "toto"
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("c3")) Is Nothing Then
toto
End If
End Sub
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Activer une macro avec une condition?

Alors elle doit tourner en permanence tant que la cellule sélectionnée appartient à cette colonne ?
Non je suppose !
Seulement une fois quand on sélectionne une telle cellule.
Alors c'est une Worksheet_SelectionChange qu'il faut.
 

JCAZAUX

XLDnaute Nouveau
Re : Activer une macro avec une condition?

en fait j'ai une macro que j'active avec tab, qui copie la suite de la ligne sur la ligne du dessous, et revient à la ligne dans la première colonne, à partir de la 3eme colonne. Je souhaiterais que ca se fasse automatiquement dès qu'on a rempli les 2 premières cases d'une ligne et qu'on se retrouve sur la 3e
 

JCAZAUX

XLDnaute Nouveau
Re : Activer une macro avec une condition?

Voici le code :

Module 1 :

Sub Retour()
ActiveCell.Offset(0, 4).Range("A1:D1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(0, -12).Range("A1").Select
End Sub

et

This Workbook :

Sub Entree()
Application.OnKey "{TAB}", "Retour"
End Sub


Je souhaiterais que la macro se fasse automatiquement dès qu'on est sur la colonne C, au lieu d'appuyer sur TAB une fois qu'on a rentré les valeurs nécessaires dans la ligne, dans les cases A et B.
 

Dranreb

XLDnaute Barbatruc
Re : Activer une macro avec une condition?

Faites des essais avec une Worksheet_SelectionChange.

Ou plutôt une Worksheet_Change, si c'est suite à une saisie dans la colonne C.
Quelque chose comme ça, à peu près :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Rows.Count <> 1 Or Target.Columns.Count <> 1 Or Target.Column <> 3 Then Exit Sub
Target.Offset(0, 4).Resize(, 4).Copy Destination:=Target.Offset(1, 4)
Application.EnableEvents = False
Target.Offset(1, -2).Select
Application.EnableEvents = True
End Sub
À tester et corriger par vos soins.

Maintenant si ce sont des formules à reconduire, communes à toutes lignes d'une plage, peut être auriez vous intérêt à la mettre sous forme de tableau pour que ce soit automatique…
 
Dernière édition:

JCAZAUX

XLDnaute Nouveau
Re : Activer une macro avec une condition?

Bonjour

Pardon de mes questions bêtes mais je suis novice en la matière.

Je n'arrive pas à lancer l'exemple. Il n'apparait pas ds les macro disponibles.

Ou dois-je copier ce code? workbook? macro?

Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11