Mettre un X en un clic

Bonjour,

J'aurai aimé mettre une fonction qui permette de "cocher" certaines case dans un document excel.

Je voulais donc faire une macro pour mettre un X dans ces cases en un clic (je ne suis pas très calé en macro, je débute avec cet outil) donc j'ai fouillé un peu le net pour trouver quelque chose et j'ai trouvé une réponse sur un autre forum qui disait de créer un rectangle dans une case et de lui attribuer la macro suivante :

Sub Mettre_Un_X()

v = Cells(4, 3).Value

Cells(4, 3).Value = IIf(v = "x", "", "x")

End Sub

Effectivement, ça marche, mais je ne peux le faire que pour une seule case. Or je voudrais faire ça pour une dizaine de case, et quand je crée une deuxième macro avec les coordonnées d'une autre cellule, ma première macro disparaît.

Si vous avez des idées pour résoudre mon problème je suis preneuse.

Merci beaucoup !

Bonjour,

Pas sûr d'avoir compris ta demande...

Pour écrire des X dans une zone déterminée avec un clic droit:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A1:A20")) Then
Cancel = True
Range("A1:A20") = "X"
End If
End Sub

avec une zone quelconque préamlablement sélectionnée:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Selection = "X"
End Sub

Pour installer

tu fais un copier la macro qui t'intérresse

clic droit sur le nom de l'onglet (en bas)

visualiser le code

coller

Merci Michel pour ta réponse mais ce n'est pas encore tout à fait ce que je voudrais.

En fait pour mieux expliquer, je fais une sorte de questionnaire, et il y a une question à choix multiples, donc j'aimerai pouvoir cocher les cases qui correspondent aux réponses.

Donc il faudrait que ce soit avec le clic gauche (si possible), que ce soit seulement sur certaines cases de la feuille et qu'elles ne se cochent pas toute d'un coup.

En fait ce serait plutôt ton deuxième code mais seulement sur une dizaine de cases, et en clic gauche.

J'espère que je suis plus claire.

En tout cas merci pour ton aide

Bonjour

tu écris:

que ce soit seulement sur certaines cases de la feuille

lesquelles? sont elles jointives ou non ?

dans VBA, il faut des renseignements précis pour résoudre un problème

dans l'attente

En faite je voudrais écrire les réponses en colonne, et à côté avoir une colonne de case que tu peut cocher selon les réponses.

Donc oui elles seraient jointive, par exemple une colonne de B1 à B10.

Et est ce que c'est possible si elles ne sont pas jointive? Pour pouvoir faire 2 colonnes de réponse, du coup là se serait par exemple les cases de B1 à B5 et D1 à D5.

OK

si tu cliques "gauche" dans B1:B10, par ex dans B4,la cellule B4 marque "X" si il y avait déjà X le X est effacé

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B1:B10")) Is Nothing Then: Target = IIf(Target = "X", "", "X")
End Sub

tu dis... (l'installation est citée + haut)

Nickeeeeeel, c'est exactement ce que je veux !! Merci beaucoup

Juste une dernière chose, du coup comment on fait si on veut faire ça sur 2 plages (B1:B10 et D1:D10), c'est surement très simple à partir de ce que tu m'as déjà donné mais je suis vraiment pas trop familiarisée avec ce langage.

voila, voila

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim plage As Range
 Set plage = Union(Range("B1:B5"), Range("D1:D5"))
If Not Intersect(Target, plage) Is Nothing Then: Target = IIf(Target = "X", "", "X")
End Sub

de mémoire, tu as le droit à 30 param^tres avec la fonction UNION...

Parfait !!!!

Rahhh c'est fou tout ce qu'on peut faire avec excel en fait

Encore merci, cette fois c'est bon, j'arrête de t'embéter

Rechercher des sujets similaires à "mettre clic"