Macros pour inscrire un numéro de téléphone

Bonjour,

Nouveau défi :

Dans mon fichier joint "CLAVIER", je souhaiterai à partir du tableau 1, arriver au tableau 2, à savoir :

En cliquant sur les touches numériques du clavier virtuel pour voir inscrire un numéro de téléphone à 10 chiffres, deux par deux comme tous les numéros de téléphone en France. Ce numéro ira après, avec le nom et prénom s'enregistrer dans une base de donnée classique.

C'est juste un mode de saisie que je souhaite essayer.

MERCI de vorte aide pour ça

CORDIALEMENT.

Jacques

30clavier.xlsm (94.92 Ko)

Bonjour,

Je suis pas un expert mais vois si ça te convient

J'ai fais un teste avec que celui du haut :

j'ai fusionné les cellules du numéro de téléphone

et ensuite j'ai modifié le format de cellule pour le mettre en "spécial" -> numéro de téléphone

A tester

28clavier-v001.xlsm (103.38 Ko)

Bonsoir le fil, bonsoir le forum,

Ton fichier modifié en pièce jointe, J'ai appliqué une macro à chaque numéro qui lance la macro générale Macro1...

43jacques-v01.xlsm (102.65 Ko)

Bonsoir à tous !

Je me suis amusé à clavioter aussi... je livre donc, bien que pas sûr d'avoir tout prévu. En fait j'ai été partagé entre plusieurs "philosophies" mais une auto-réinitialisation automatique du clavier risquait de ne pas se raccorder avec la suite (validation de la fiche...), j'ai donc ajouté une touche d'effacement du numéro qui réinitialise (il suffit donc de lancer la procédure afférente après validation pour réinitialiser). [Touche à replacer selon préférences]

Autres modifications apportées : plage d'inscription du numéro nommée, touches du clavier renommées, ajout d'une touche "C" pour effacer le dernier chiffre composé (on peut remonter aux précédents en pressant plusieurs fois, et elle reste active sur le numéro complet : 10e chiffre).

Autre balancement que j'ai eu : si on continue à taper des chiffres au-delà du 10e chiffre : soit ne rien faire, soit recommence un numéro. C'est resté sur cette dernière option (pendant que j'hésitais sur la réinitialisation), mais pour avoir la précédente, il suffit d'invalider la ligne : n = n Mod 10 et de rendre active celle juste au-dessus : If n > 9...

Si la méthode intéresse et besoin d'explications complémentaires, je fournirais, mais je l'ai dit, rien de compliqué à décrypter...

Cordialement.

62fournier-clavier.xlsm (104.80 Ko)

Bonsoir MFerrand et le forum

ta version est excellente le bouton "effacer n°" fonctionne parfaitement ainsi que le bouton "C" qui permet de faire une correction

bien vue

j'ai essayer toutes les versions proposées

je retiendrais la tienne mais si on fait abstraction des effacement ce sera celle de thau thème,

celle de seb77 n'a pas de fin dans l'inscription des numéros

Whaoooo

Merci à vous tous pour cet exercice si rapidement résolu

Je suis très satisfait des résultats obtenus.

MERCI encore à vous tous

Bonjour le fil, bonjour le forum,

Moi c'est incontestablement ta méthode MFerrand, qui m'a laissé coi. Ça c'est du code !... Comme tu l'as gentiment proposé je serais très intéressé par des explications. Merci et "Chapeau Bas" !...

Bonjour MFerrand

J'ai pris ta version, c'est une merveille.

Petit souci, quand les deux derniers chiffres termine par 0 (xx xx xx xx 08 par exempel), seul le 8 s'affiche !!??!!??

Cela vient-il de moi ou de la macro ?

MERCI encore pour ton aide

Bonjour à tous,

Avec mes excuses pour mes apparitions décalées mais depuis 2 jours je suis parvenu à m'inverser complètement : dormir le jour et veiller la nuit... le décalage horaire ne suffit pas à compenser.

Jacques, le problème que tu indiques ne se produit pas chez moi. Vérifie que les cellules concernées sont en format Texte. C'est le format que tu avais mis, et je me suis aligné dessus.

Généralement, je le déconseille car il pose des tas de problèmes dans le tableur... Au cas particulier, il s'est avéré simplifier la procédure et le transfert devant s'opérer en principe par VBA présenter peu de risques pour la suite...

Pour les explications, je reviens plus tard, je suis en cuisine et je pressens que je ne vais pas tarder à avoir faim !

A+

BON APPETIT et MERCI

lol


OK ça fonctionne bien en format texte en effet....

MERCi encore, c'est juste génial !!!

Amitiés

Je devais avoir encore du sommeil à rattraper ! Voilà qui va me recadrer avec le lever du jour qui ne va pas tarder...

Un bonjour très matinal à tous donc !

ThauThème, je suis sensible à ton appréciation, d'autant plus qu'il ne m'a pas semblé au vu de ta production que tu soies spécialement manchot en matière de manipulation de code... Je pense donc qu'une fois vu les 2 ou 3 trucs un peu inhabituels, tu n'auras pas de difficulté à interpréter ce code.

Comme je l'avais dit, l'idée de départ est assez simple : c'est même plutôt "bourrin", à chaque chiffre tapé on réinscrit tout le numéro dans la zone d'inscription. La seule subtilité repose sur la conservation des chiffres déjà tapés et la façon de les gérer.

Particularités globales : une seule procédure réalise la numérotation, les touches numéros (renommées pour que le nom se termine par le numéro qu'elles doivent envoyer) lancent directement cette procédure, laquelle identifie le numéro (dernier caractère du nom) au moyen de la propriété Application.Caller (qui renvoie le nom de l'objet ayant lancé la proc.). Les touches d'effacement, elles pointent chacune sur une proc. spécifique qui se contente de lancer la proc. Numérotation avec un argument...

Petite parenthèse sur un "truc" facilement utilisable : lorsqu'on affecte une macro à un objet graphique, on clique sur Affecter une macro, et on peut choisir dans la boîte de dialogue macro la procédure à affecter. Mais si l'on a écrit une proc. qui attend des arguments, elle n'apparaît pas dans la boîte de dialogue, il faut donc l'affecter avant de la doter d'arguments de façon à pouvoir le faire dans les conditions habituelles, et ensuite seulement rajouter des arguments en prenant soin qu'ils soient optionnels, sans quoi elle ne pourrait plus être lancée sans argument par les objets auxquels on l'a attachée. Eventuellement on dote l'argument d'une valeur par défaut qui sera celle retenue lorsqu'elle est lancée sans argument.

Il faut noter aussi que la mise en place d'arguments fait disparaître la procédure de la boîte de dialogue macro, ce qui peut permettre le cas échéant d'éviter qu'elle soit lancée par inadvertance. Hors toute autre utilisation, on peut mettre un argument optionnel (jamais utilisé) dans ce but, ce que j'ai fait pour la procédure d'effacement de touche...

Pour en revenir, les 2 proc. d'effacement lancent chacune la proc. numérotation avec une valeur d'argument distincte, ce qui permet à la procédure d'avoir 3 comportements selon qu'elle est lancée par une touche numéro ou par l'une des deux touches d'effacement.

L'autre particularité repose sur l'utilisations de variables statiques (déclarées avec l'instruction Static) qui conservent leur valeur entre deux appels de la procédure. Ainsi les numéros sont conservés dans un tableau de 10 éléments (0 à 9) et la variable n conserve le rang du chiffre à saisir : au stade initial, sa valeur est 0 (le chiffre à saisir est celui d'indice 0), à sa saisie, elle est incrémentée et à l'appel suivant, elle a la valeur 1 (chiffre d'indice 1 à saisir), on va ainsi jusqu'à 9 où elle prend la valeur 10 une fois le chiffre d'indice 9 saisi. A l'appel suivant, si l'on a tapé un chiffre, il n'y en a pas d'indice 10 à ajouter donc la valeur de n sera ramenée à 0 pour que le chiffre saisi soit mémorisé sur l'indice 0 (option qu'on peut modifier pour qu'elle ne fasse rien dans ce cas...)

Lorsque la proc. est appelée pour effacer le dernier chiffre saisi, n a alors la valeur de l'indice suivant, sa valeur est désincrémentée pour correspondre au chiffre à effacer, puis l'effacement fait désincrémentée une seconde fois car après application du numéro rectifié, elle sera réincrémentée pour le tour suivant.

Dernier point à voir sur le rôle de cette variable, c'est que c'est elle qui permet de gérer la sortie du numéro (affectation dans les cellules). Je ne m'étends sur la boucle de sortie (1 à 5 pour cadrer avec les cellules, en prenant les valeurs du tableau par couple, et en distinguant si on a les 2 chiffres pour une cellule ou un seul) , mais elle s'interrompt lorsqu'on atteint l'indice marqué par n (dernier chiffre tapé avant qu'on incrémente n) même si le tableau contient des valeurs pour les indices supérieurs... On ne se préoccupe donc que de la validité de n (chiffres d'indice 0 à n, seuls pour lesquels la saisie est valide).

Sur ce, le jour s'est finalement levé, je passe à mon 3e ou 4e café et vous souhaite à tous une excellente journée.

Bien cordialement.

Bonjour le fil, bonjour le forum,

Ce qui m'énerve c'est qu'en plus de compétent, il est gentil, dévoué et très pédagogue... Merci, merci Môssieur MFerrand. Grâce à ces explications je vais regarder ton code d'un autre œil et pouvoir le réutiliser.

P... écrire tout ça à même pas à 5 heure du mat ! Ça relève de l'exploit...

En piste à cette heure, je m'épate ! Tout de même il est 7h (2h de décalage), mais j'ai moins dormi que la dernière fois avant.

C'est cyclique, mais j'ai du mal à calculer le cycle !

En tout cas, bonne journée à tous.

Rechercher des sujets similaires à "macros inscrire numero telephone"