Limiter le choix a 1 seule case et 1 seule valeur

Ben oui, tu as raison.

Quand on fait DELETE du chiffre 1, on supprime aussi la formule de la cellule.

Comment éviter cela?

merci


PS: je dois m'absenter pour 1 heure.

Bruno

@Eric

On pourrait remplacer le 1 par une case a cocher car ce qui m'importe c'est de savoir quelle option le visiteur a choisi.

Prenons un exemple sur le fichier X ci-joint:

Le client veut savoir combien lui coûte le produit avec le transporteur No 7.

Il "marque" cette option sur la case G14 avec quelque chose (comme pour un formulaire) par exemple une croix, un 1, un point , un signe v etc.

Ce qui m'importe c'est qu'il fasse un choix et un seul dans toute la colonne (comme pour un sondage ou on n'a droit qu'a un seul choix)

Dès qu'il a fait ce choix, la valeur indiquée sur la colonne a gauche E14 (transporteur 7) et a droite H14 (7500) sont envoyées AUTOMATIQUEMENT a un autre endroit ( sur la même feuille ou sur une autre feuille).

Ceci étant fait, si le visiteur veut changer pour le transporteur 5, il "marque" la case G12 avec le même signe, mais alors la case G14 doit se vider AUTOMATIQUEMENT . Et dans ce cas, ce sont les valeurs des cases E12 et H12 qui sont transférées automatiquement.

Bruno


J'avais oublié le fichier!

Bruno

Cliquer sur la cellule.

En vba donc conserver l'extension .xlsm

Je ne comprends pas.

Dans le fichier que tu as envoyé, il peut aussi cliquer sur les autres transporteurs et les 2 cases en haut ne se changent pas!

PS: je ne sais pas la différence ente xls et xlsm

Bruno

[size=150]C'EST EXACTEMENT CELA!

BRAVO et MERCI BEAUCOUP[/size]

Maintenant comment dois-je faire pour mettre ces macros sur le tableau définitif? (tableau que je n'ai pas encore fait!)

Est-ce difficile pour un ignare en Excel comme moi?

Ou bien, pourrais-je t'envoyer le fichier afin que tu m'y mettes les macros?

Le visiteur peut-il changer de lui-même les macros? (je vais protéger toutes les cellules de la feuille, sauf celles ou il peut mettre le x)

Bruno

Ctrl+F11 pour ouvrir l'éditeur.

Le code est dans le module Feuil1 du projet (à gauche, double-clic dessus)

Par contre j'ai dû laissé un truc qui ne compte pas (au début j'avais fait sur double-clic dans la cellule)

Celui qu'il faut est :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, [G8:G17]) Is Nothing Then
        [G8:G17].ClearContents
        Target = "x"
        [E2] = Target.Offset(, -2)
        [H2] = Target.Offset(, 1)
    End If
End Sub

Tu vas deviner l'essentiel. Si une fonction ne te dit rien, faire F1 dessus, l'aide est bien faite.

eric


Le visiteur ??

Si c'est en ligne il aura une copie locale. A moins que tu ne le mettes en partage sur OneDrive mais n'importe qui pourrait te le massacrer...

Le visiteur pourra le télécharger depuis mon serveur (hosting)

Mais toutes les cellules (sauf celles avec le x) seront protégées (avec mot de passe).

Y a-t-il alors un risque que le visiteur démolisse le fichier?

Pour les codes, je vais voir pour les étudier et je te recontacterai si j'ai des questions.

Bruno

Y a-t-il alors un risque que le visiteur démolisse le fichier?

Si il doit le télécharger il ne pourra modifier que sa copie locale.

Par contre si c'est pour t'envoyer une commande tu as intérêt à contrôler qu'il n'a pas modifié les tarifs avant de l'accepter.

Aucune protection ne résiste bien longtemps sur excel.

La protection, c'est surtout pour qu'il ne démolisse pas la table et les formules sans le faire exprès. Car effectivement, s'il démolit sa copie, il devra la retélécharger.

merci

Bruno

Oui, c'est surtout ce rôle là qu'il faut attribuer aux protections.

Bonjour,

J’ai bien copié, collé, adapté ta macro pour faire un essai sur un autre fichier et cela marche. Mais je n’arrive pas à enregistrer le fichier (il s’enregistre en xlsx et pas xlsm comme pour toi.

Et donc, lorsque je ferme le fichier et que je l’ouvre de nouveau, la macro n’est pas dedans !!

Comment dois-je faire pour enregistrer la macro dans le fichier ?

Merci

Bonjour,

dans 'Enregistrer sous...' choisir le type *.xlsm

eric

OK, je l'ai trouvé!

MERCI

Bonjour Eric,

J’ai mis ci-joint un fichier de test.

Voici ce que je souhaiterais faire :

Je souhaiterais que le visiteur n’ait la possibilité de cocher la croix qu’une seule fois et pas 2 croix simultanément pour les cases F19 à F25, G19 à G25, J19 à J25. Ces cases sont marquées en bleu. (Exactement comme tu avais fait la formule avant, mais cette fois, pour plusieurs colonnes)

Voici ton code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, [G8:G17]) Is Nothing Then

[G8:G17].ClearContents

Target = "x"

End If

End Sub

J’ai bien essayé, mais je ne sais pas comment modifier ta macro lorsqu’il y a plusieurs colonnes.

DE PLUS, lorsque le visiteur clique avec la croix sur une case de ces colonnes en bleu :

  • la valeur de la case B5(sheet3) se reporte automatiquement sur la case E6
  • La valeur de la case C5(sheet3) se reporte automatiquement sur la case F6

Quelle serait alors le nouveau code ?

Merci

Bruno

Bonjour Eric,

En complément a mon dernier message, ce serait encore mieux si on pouvait remplacer les cases en bleu et celles avec le texte des départements par une "List Box" ( je ne connais pas le nom en français) .

Je vais essayer de changer le dossier excel que j'avais joint et je le remettrai.

Bruno

Je n'ai pas compris (même en lisant l'aide) comment on crée une list box ( liste avec des cercles parmi lesquels on ne peut qu'en choisir un en mettant un point au centre par un click sur le cercle.

Je vais demander de l'aide et demain, je reviendrai sur ce message.

Merci de patienter que je revienne.

Bruno

Bonjour,

Pas besoin de vba, regarde les Validation des données... par liste (ruban Données)

eric

20classeur5.xlsx (9.12 Ko)

Bonjour Eric

Merci

Mais la liste se composera des 50 états des USA + les districts du Canada; alors la liste déroulante aura environ une centaine de lignes, ce qui n'est pas très pratique pour l'utilisateur.

Pourrais-tu aller voir mon message : https://forum.excel-pratique.com/excel/creer-une-list-box-t83962.html

Avec une List Box, ce serait l’idéal (je ne te l'ai pas demandé avant car je ne savais pas que cela existait avec Excel!)

Et pourrais-tu me dire alors comment faire cette List Box car, si je parviens bien à la créer (vide), je n'ai pas compris comment faire pour la remplir!

Encore merci car cet élément est un élément crucial de mon site.

Rebonjour Eric

J'avais oublié de préciser que la sheet 3 sera masquée pour le visiteur et il n'y aura donc pas accès.

Bruno

Bonjour,

combobox1 doit être présent sur la feuille, le code est dans Sheet1

eric

Rechercher des sujets similaires à "limiter choix seule case valeur"