Saisie intuitive sur excel

amely78

XLDnaute Nouveau
Bonsoir,

J'ai fais un Bordereau de livraison sur lequel j'ai réussi déjà à faire des zones de listes. Mais je souhaiterais encore l'améliorée en pouvant saisir un début de référence et avoir la liste qui se rétrécie au fur et à mesure de ma saisie dans la zone de liste en colonne A. Ci-joint mon BL.

Merci pour votre aide.
 

Pièces jointes

  • BL test 1.zip
    18.4 KB · Affichages: 66

job75

XLDnaute Barbatruc
Re : Saisie intuitive sur excel

Bonsoir amely78,

Il doit être possible en effet de modifier la liste de validation en fonction de ce qui est entré dans la cellule, mais pas pendant la frappe.

Il faudra successivement :

- valider la frappe

- re-sélectionner la cellule (si la sélection s'est déplacée)

- cliquer sur la flèche.

Bien sûr, au menu Données-Validation-Alerte d'erreur, la case Quand des données non valides sont tapées devra être décochée.

Je ne pense pas pouvoir faire ça ce soir, demain matin peut-être.

Edit : je vois que vous êtes sur Excel 2007, il y a peut-être des innovations que je ne connais pas ;)

A+
 
Dernière édition:

Softmama

XLDnaute Accro
Re : Saisie intuitive sur excel

Bonjour amely78 et job75,

Je ne suis pas parvenu à réaliser ce que tu demandes, mais voici ce que j'ai réussi à réaliser de plus approchant. Si qqun a une meilleure solution, ça m'intéresse.

Cordialement,
 
Dernière édition:

amely78

XLDnaute Nouveau
Re : Saisie intuitive sur excel

Bonjour amely78 et job75,

Je ne suis pas parvenu à réaliser ce que tu demandes, mais voici ce que j'ai réussi à réaliser de plus approchant. Si qqun a une meilleure solution, ça m'intéresse.

Cordialement,


Merci en tout cas de votre aide mais je n'arrive pas à l'appliquer. Je pense en fait que le plus difficile pour moi est de bien comprendre les fonctions tel Index, Equiv.

En tout cas merci à vous d'essayer de m'aider.
 

job75

XLDnaute Barbatruc
Re : Saisie intuitive sur excel

Bonjour amely78, softmama, le forum,

J'avais aussi en tête hier soir des macros évènementielles.

Mais je pense que ce n'est pas du tout nécessaire.

1) Définir le nom Liste par la formule :

Code:
=DECALER(BL!$Q$2;EQUIV(BL!$F$5;BL!$P:$P;0)-2;;NB.SI(BL!$P:$P;BL!$F$5))

C'est la liste de toutes les références du client défini en F5.

2) Sélectionner la plage A24:A52 et définir la liste de validation par la formule :

Code:
=SI(NB.SI(Liste;A24&"*");DECALER(Liste;EQUIV(A24&"*";Liste;0)-1;;NB.SI(Liste;A24&"*"));Liste)

Comme je l'ai dit, la case Quand des données non valides sont tapées doit être décochée dans Alerte d'erreur.

3) En A24 entrer les premiers chiffres 440800, voyez la liste, et continuer en ajoutant 1 ou 2 ou 3...

Nota 1 : la seule contrainte est que le tableau Colonnes P:Q soit trié sur la colonne P, puis sur la colonne Q.

Nota 2 : j'ai mis la colonne Q au format Texte, plus besoin d'apostrophe devant les références...

A+
 

Pièces jointes

  • BL test(1).zip
    21.1 KB · Affichages: 48

job75

XLDnaute Barbatruc
Re : Saisie intuitive sur excel

Re,

Bonjour JB, en effet tu as tout prévu sur ton site.

Si l'on veut tout de même une alerte quand la frappe ne correspond à rien, on peut utiliser :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A24:A52]) Is Nothing Or Target.Count > 1 Then Exit Sub
Dim cel As Range
Set cel = ActiveCell
Target.Select
If Application.CountIf([Liste], Target & "*") Then
  cel.Select
Else
  MsgBox "Aucune référence du client ne commence ainsi !", 48
  [COLOR="Red"]Target = "" 'facultatif[/COLOR]
  SendKeys "%{DOWN}"
End If
End Sub

Edit : on peut effacer la frappe erronée (en rouge, facultatif).

Fichier (2) joint.

A+
 

Pièces jointes

  • BL test(2).zip
    24.9 KB · Affichages: 51
Dernière édition:

Softmama

XLDnaute Accro
Re : Saisie intuitive sur excel

Re le fil,

J'ai essayé d'améliorer le concept de la saisie intuitive par un petit exemple ci-joint. Mais j'avoue bloquer pour rendre le code moins moche et l'enchainement plus fluide...
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Saisie intuitive sur excel

Bonjour le fil, le forum,

Je repasse après 3 jours d'absence, pas beaucoup de réactions de la part d'amely78...

Si l'on craint de créer par erreur des références incomplètes, on peut utiliser des macros comme le fait Softmama.

On peut aussi utiliser une Mise en forme conditionnelle (MFC) sur A24:A52 avec cette formule :

Code:
=ET(A24<>"";NB.SI(Liste;A24)=0)

ou, en plus bref :

Code:
=NBCAR(A24)*NON(NB.SI(Liste;A24))

Perso je trouve qu'une MFC est toujours préférable à des macros.

Voir fichier (3) joint.

Edit : voir aussi la formule en A53.

A+
 

Pièces jointes

  • BL test(3).zip
    19.8 KB · Affichages: 59
Dernière édition:

amely78

XLDnaute Nouveau
Re : Saisie intuitive sur excel

Bonjour amely78, softmama, le forum,

J'avais aussi en tête hier soir des macros évènementielles.

Mais je pense que ce n'est pas du tout nécessaire.

1) Définir le nom Liste par la formule :

Code:
=DECALER(BL!$Q$2;EQUIV(BL!$F$5;BL!$P:$P;0)-2;;NB.SI(BL!$P:$P;BL!$F$5))

C'est la liste de toutes les références du client défini en F5.

2) Sélectionner la plage A24:A52 et définir la liste de validation par la formule :

Code:
=SI(NB.SI(Liste;A24&"*");DECALER(Liste;EQUIV(A24&"*";Liste;0)-1;;NB.SI(Liste;A24&"*"));Liste)

Comme je l'ai dit, la case Quand des données non valides sont tapées doit être décochée dans Alerte d'erreur.

3) En A24 entrer les premiers chiffres 440800, voyez la liste, et continuer en ajoutant 1 ou 2 ou 3...

Nota 1 : la seule contrainte est que le tableau Colonnes P:Q soit trié sur la colonne P, puis sur la colonne Q.

Nota 2 : j'ai mis la colonne Q au format Texte, plus besoin d'apostrophe devant les références...

A+

Désolé, j'étais en déplacement et je viens seulement de regarder les différentes propositions. Celle-ci me convient bien. Merci en tout cas à tous, vous êtes super! Bisous
 

Discussions similaires

Statistiques des forums

Discussions
312 371
Messages
2 087 698
Membres
103 644
dernier inscrit
bsalah