XL 2013 [Resolu] macro - transformation "X" en données

ABCD2008

XLDnaute Nouveau
Bonjour à tous,

j'aurais une petite interrogation. Je m'explique :
J'ai une liste de personne qui peuvent choisir entre 6 options.
A chaque option correspond un prix

Option A : 1€
Option B : 2€
Option c : 3€
etc.

J'ai donc un tableau avec le nom des personnes et je coche l'option qu'il souhaite en inscrivant un "x".

cf. excel joint

J'aimerais que ce "x" se transforme en tarif (1€ si la colonne Option A est cochée)

J'ai trouvé cette macro mais je n'arrive pas à l'adapter à mon cas (novice novice...). Cela fonctionne pour une option, je bloque pour l'adapter à mes 6 options.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [plage1]) Is Nothing Then Exit Sub
If UCase(Target) = "X" Then Target = [A1].Offset(0, Target.Column - 1)
End Sub

Pouvez-vous m'aider ?
Je vous remercie !!
 

Pièces jointes

  • Classeur1a.xlsx
    8.5 KB · Affichages: 18

vgendron

XLDnaute Barbatruc
Hello

esssaie avec ce code
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Intersect(Target, [plage1]) Is Nothing Then
    Exit Sub
    Application.EnableEvents = True
End If
If UCase(Target) = "X" Then Target = [K1].Offset(1, Target.Column - 2)
Application.EnableEvents = True
End Sub


J'ai oublié de préciser..
Plage1 est le nom donné à la zone de ta feuille qui contient les x
 
Dernière édition:

jp14

XLDnaute Barbatruc
Bonjour
Un code à tester
Code:
Dim Flag As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dl1 As Long ' dernière ligne
Dim Col As Range
If Flag = True Then Exit Sub

dl1 = Sheets(Target.Worksheet.Name).Cells.SpecialCells(xlCellTypeLastCell).Row
If Not Intersect(Target, Range("b1:G" & dl1)) Is Nothing Then
    Flag = True
    if Ucase(Target) = "X" then Target=Target.Column-1
End If
Flag = False
End Sub

A tester

JP14
 

ABCD2008

XLDnaute Nouveau
Bonjour vgendron,
merci pour l'adaptation. Par contre, excuse-moi mais je ne comprends pas comment je eux mettre mes 6 options ? Cela marche pour une, mais pour les autres ? La [plage1] de ta macro correspond bien à la colonne "Option A" ?

Bonjour JP14,
J'ai essayé de mettre ta macro mais je t'avouerai que je ne sais pas ce qu'il faut que je modifie ou complète pour l'adapter à mon fichier (je suis vraiment novice, j'ai besoin qu'on me mâche tout tout tout...)

Merci à vous 2 !
 

ABCD2008

XLDnaute Nouveau
D'accord, merci vgendron.
Je comprends mieux et cela fonctionne !

Un petit questionnement cependant : j'avais fait un essai et coché plusieurs cellules.
J'ai voulu tout effacer pour reprendre à 0.
Si j'efface cellule par cellule, ça fonctionne. Par contre, si je sélectionne une plage et que j'efface donc en masse, ça fait buguer la macro et ça m'ouvre le débugueur.

Normal ?
 

Discussions similaires

Réponses
17
Affichages
822