(Résolu) Insérer un caractere

jog64

XLDnaute Nouveau
Bonjour,
N'y connaissant rien en VBA, je souhaiterais un coup de pouce :
Dans une plage B3:Z4 je voudrais insérer un caractère (X par exemple) par un simple clic dans la cellule.
Un seul caractère possible dans la colonne, en cliquant 2 fois dans la même colonne, le premier caractère s'efface.
J'espère avoir été clair.
Merci de votre aide.
Jog
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Insérer un caractere

Bonjour Jog

Tu peux tester un code comme celui-ci à mettre dans la feuille mais sur le double-click car normalement le click n'est pas disponible sur la feuille. Sinon, tu peux aussi choisir le click droit.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If ActiveCell.Column <> 3 Then End
If ActiveCell.Value = "" Then ActiveCell.FormulaR1C1 = "x": ActiveCell.Offset(1, 0).Range("A1").Select: End
If ActiveCell.Value = "x" Then ActiveCell.FormulaR1C1 = ""
Rem ActiveCell.FormulaR1C1 = "x"
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub
 

jog64

XLDnaute Nouveau
Re : Insérer un caractere

Merci MJ13 pour ton aide,
Mais cela ne fonctionne que sur la colonne C,
et j'aurais aimé qu'un "X" s'efface quand je clique sur l'autre cellule vide (dans la même colonne) tout en insérant un nouveau "X".
Merci de tout coeur parce que VBA c'est du chinois pour moi.
Cordialement
Jog
 

MJ13

XLDnaute Barbatruc
Re : Insérer un caractere

Re

Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
1 Cancel = True
'If ActiveCell.Column <> 3 Then End
2 If ActiveCell.Row = 3 Or ActiveCell.Row = 4 Then GoTo suite Else Exit Sub
suite:
3 If ActiveCell.Column >= 2 And ActiveCell.Column <= 26 Then GoTo suite2 Else Exit Sub
suite2:
4 If ActiveCell.Value = "" Then ActiveCell.FormulaR1C1 = "x":  End
5 If ActiveCell.Value = "x" Then ActiveCell.FormulaR1C1 = ""
Rem ActiveCell.FormulaR1C1 = "x"
'ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

Le code est assez simple (Alt+F11) pour le voir dans la feuil1.

Ligne1: Cancel = true sert à ne pas valider la cellule et entrer en édition quand la macro agit. Tu peux le supprimer pour voir la différence.
Ligne 2: si la ligne de la cellule active est 3 ou 4, on continue sinon on sort de la routine.
Ligne 3: si la colonne de la cellule active est supérieur à ou égale à 2 et est inférieur ou egale à 26, on continue sinon on sort de la routine.
Ligne 4: comme on est dans les bonnes conditions, Si la valeur de la cellule est vide alors la valeur de la cellule = "X".
Ligne 5: comme on est dans les bonnes conditions, Si la valeur de la cellule ="X" alors on efface le X.

Sinon tout ce qui est en rem ou précédé d'un quote ('), tu peux supprimer ces lignes.
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet