pour une saisie rapide ( validation ?)

  • Initiateur de la discussion Initiateur de la discussion pphil
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

pphil

Guest
Bonjour et bonne année à tous
Dans une base de donnée excel, une cellule recoit toujours trois valeurs
exemple "légume" "viande" "poisson" ( bon, c'est un exemple de sortie de fête ;-)
est ce possible de pouvoir :
en tapant 1 de renvoyer "légume"
en tapant 2 de renvoyer la valeur "viande"
et en tapant 3 de renvoyer la valeur "poisson" ?
le but c'est de saisir plus rapidement.

j'ai cherché dans les chapitres " validation" mais je ne vois rien

Merci si vous savez une réponse. Et si c'est hors "vba"
c'est mieux pour moi,
pphil
 
Bonjour pphil,


Alors soluce Mac Gyver en attendant les conseils des grands :


tu tapes 1, 2 et 3.

Puis tu fais une colonne à coté, qui dit :

=si(A1=1;"légume";si(A1=2;"viande";"poisson"))

Je te joins l'exemple, espérant te dépanner...


C'est une solution parmi d'autres plus sympa sûrement mais bon...

Brigitte
 

Pièces jointes

saltu pphil,

mauvaise nouvelle, excel marche mal sur mon pc et je t'ai donc écrit ça:

--------------------------------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)


If Cells(ActiveCell.Row - 1, ActiveCell.Column) = "1" Then
Cells(ActiveCell.Row - 1, ActiveCell.Column) = "Poisson"
End If

If Cells(ActiveCell.Row - 1, ActiveCell.Column) = "2" Then
Cells(ActiveCell.Row - 1, ActiveCell.Column) = "potiron"
End If

If Cells(ActiveCell.Row - 1, ActiveCell.Column) = "3" Then
Cells(ActiveCell.Row - 1, ActiveCell.Column) = "bûche"
End If


End Sub
--------------------------------------------------------
c'est à placer dans la feuille ThisWorkbook de ton classeur
tu peux en rajouter autant que tu veux

ps: ça marche si tu tapes "entrée" après avoir renseigné ta cellule
 
Bonjour pphil, Brigitte, Patrick,

Un peu plus court :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
  Select Case Target.Value
    Case Is = "1"
      Target.Value = "Légume"
    Case Is = "2"
      Target.Value = "Viande"
    Case Is = "3"
      Target.Value = "Poisson"
    Case Else
  End Select
End Sub


Toujours en VBA malheureusement. Par formule c'est faisable mais avec une colonne intermédiaire comme le suggère judicieusement Brigitte. En effet, si tu veux avoir à la fois une saisie et une formule dans la même cellule, c'est impossible.

A+

José
 
Salut à vous,

Moi, je le fais par le correcteur d'ortographe (menu Outils)

Taper un caractère jamais employé et un chiffre.
Le choix de ce caractère dépend du type de clavier et de la façon de travailler.

Ainsi µ1 pourrait valoir légume, µ2 viande et µ3 poisson.
Mais aussi : £ = légume, µ = viande et ~ = poisson.

A tester.
Ândré.
 
Salut José, et les autres,

Permets-moi de paraphraser : A défaut de formules, on a des idées.

Autre petite astuce (peu connue, du moins je le crois - lol) :
Lorsqu'on écrit des formules qui font référence à des noms d'onglets fort longs (par exemple : Vente Grossites Province 2005), il est non seulement fastidieux de taper à chaque fois ce nom, mais de plus il y a un risque de faute d'ortographe.

L'astuce consiste à renommer temporairement cet onglet (A par exemple ou VGP5), d'écrire les formules (beaucoup plus lisibles dans la barre de formule), puis, une fois le travail fini, de redonner le nom initial à l'onglet.
Excel modifie automatiquement toutes les formules !

Ândré.
 
Bonsoir à tous,
pour une saisie rapide à la souris uniquement :
(1° double clic dans colonne A pour Légume, 2° pour Viande, 3° pour Poisson et 4° pour effacer)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then
Select Case Target.Value
Case ""
Target.Value = "Légume"
Case "Légume"
Target.Value = "Viande"
Case "Viande"
Target.Value = "Poisson"
Case "Poisson"
Target.Value = ""
End Select
Cells(Target.Row + 1, Target.Column).Activate
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
710
Réponses
125
Affichages
13 K
Retour