Excel - Macros ou formulle ?
Résolu
sebi68
Messages postés
87
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Sous Excel j'ai 2 colonnes pouvant être complètée par une "X", je souhaite automatisé que si je mets "X" dans la seconde la "X" figuant dans la 1ère est éffacée. En fait il ne doit pas y avoir de "X" dans les 2 colonnes, ceci sur plusieurs ligne ...
les 2 cellules à complètées sont cote à cote, je sais pas si je suis assé clair ...
Je pensais utilisé 3 cellule adjacantes, y mettre la valeur 1 si la cellule à une "X" faire une somme et que si la somme est égale à 2 exécuter une macros éfassant la première "X", mais pas évident ...
X X 1 1 2 (si=2 effacer la 1ere "x")
Si quelqu'un a une idée ???? merci !!!!!
Bonne soirée
Sous Excel j'ai 2 colonnes pouvant être complètée par une "X", je souhaite automatisé que si je mets "X" dans la seconde la "X" figuant dans la 1ère est éffacée. En fait il ne doit pas y avoir de "X" dans les 2 colonnes, ceci sur plusieurs ligne ...
les 2 cellules à complètées sont cote à cote, je sais pas si je suis assé clair ...
Je pensais utilisé 3 cellule adjacantes, y mettre la valeur 1 si la cellule à une "X" faire une somme et que si la somme est égale à 2 exécuter une macros éfassant la première "X", mais pas évident ...
X X 1 1 2 (si=2 effacer la 1ere "x")
Si quelqu'un a une idée ???? merci !!!!!
Bonne soirée
Configuration: Windows 2000 Internet Explorer 6.0
10 réponses
-
Bonsoir,
en supposant que dans ces 2 colonnes, il s'agisse de saisies et non de résultats de formules
A mon avis on est obligé de passer par une macro
Private Sub Worksheet_Change(ByVal Target As Range) Dim lig As Long Static flag As Boolean If Intersect(Target, Columns("A:B")) Is Nothing Then: Exit Sub If flag Then flag = False Exit Sub End If ' 1 correspond à col A, 2 à colB lig = Target.Row If Application.CountIf(Range(Cells(lig, 1), Cells(lig, 2)), "X") = 2 Then flag = True If Target.Column = 2 Then Target.Offset(0, -1).ClearContents Else Target.Offset(0, 1).ClearContents End If End If End Sub
réalisé pour colonne A et B
macro à installer dans un module feuille ( copier,clic droit sur l'onglet, visualiser le code- coller)
-
Bonjour,
Merci de votre aide !
J'ai créé une macro que j'ai appelé "efface" puis je l'ai exécuté :
J'ai un message d'Erreur d'éxécution '424' objet requis
la lige concernée :
If Intersect(Target, Columns("A:B")) Is Nothing Then:
Merci !!!
bonne journée -
Bonjour,
remplace columns("A:B")
par range("A1:B50000")
mais c'est curieux, je viens de réessayer, ca marche chez moi! (XL2003)
merci de me tenir au courant du résultat -
même message d'erreur
je suis sous Excel 2002 ... -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
as tu bien coller la macro dans un module "feuille" et non dans module1 ?
-
c'est peut-être là le soucis... oui
Qu'appelles tu le module "feuille" ? stp
Ce que j'ai fais sur ma feuille excel j'ai créé une macro (nomée éfface) puis je l'ai exécuté ...
je vois pas trop la diff entre module feuille et moudule 1 ... excuse moi
a+ , merci -
Relis le post que je t'avais envoyé au départ !!!
macro à installer dans un module feuille ( copier,clic droit sur l'onglet, visualiser le code- coller)
tu copies l'ensemble de la macro de private ..... end sub
il faut surtout la renommer!!! -
ci joint demo
https://www.cjoint.com/?ltkjLfLiUv -
OK , c'est bon !!!!!
Ca marche impeccable
Merci !!!!
Je peux te payer un café ? ....
a+, bonne journée -
Long, non sucré STP ;-)
Merci de cocher "résolu"