Changement de cellule si cellule contient 8 caractères
Fermé
helenec876
Messages postés
3
Date d'inscription
mercredi 4 mars 2015
Statut
Membre
Dernière intervention
5 mars 2015
-
4 mars 2015 à 15:45
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 6 mars 2015 à 11:21
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 6 mars 2015 à 11:21
A voir également:
- Changement de cellule si cellule contient 8 caractères
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Clé windows 8 - Guide
- Verrouiller cellule excel - Guide
- Caractères ascii - Guide
6 réponses
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
4 mars 2015 à 21:36
4 mars 2015 à 21:36
Bonsoir
essayez ceci
https://www.cjoint.com/c/ECevUMsKOHK
cdlt
essayez ceci
https://www.cjoint.com/c/ECevUMsKOHK
cdlt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
5 mars 2015 à 16:56
5 mars 2015 à 16:56
Bonsoir
Voilà la modif
https://www.cjoint.com/c/ECfrhmJHRz9
Cdlt
Voilà la modif
https://www.cjoint.com/c/ECfrhmJHRz9
Cdlt
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 6/03/2015 à 08:30
Modifié par pijaku le 6/03/2015 à 08:30
Bonjour Frenchie, bonjour tout le monde,
J'ajoute +100 au +100 de ThauTheme, se qui place la mise à plus de 200...
Une petite variante en complément de ta procédure, en utilisant une macro paramétrée. OnKey le permet en encadrant le nom et le paramètre de la macro de simple quote ' :
Ce qui nous donne :
Nota : Pour passer plusieurs paramètres à une macro paramétrée via Onkey, il convient de séparer les paramètres d'une virgule. Le premier paramètre n'est toutefois séparé du nom de la macro que par un espace. Toujours entouré le tout de '...
Exemple :
J'ajoute +100 au +100 de ThauTheme, se qui place la mise à plus de 200...
Une petite variante en complément de ta procédure, en utilisant une macro paramétrée. OnKey le permet en encadrant le nom et le paramètre de la macro de simple quote ' :
Application.OnKey "{48}", "'maMacro 48'"
Ce qui nous donne :
Sub auto_open() Dim i As Byte 'désactivation des touches du pavé alphanumérique For i = 48 To 57 Application.OnKey "{" & i & "}", "'Chiffre " & i & "'" Next 'désactivation des touches du pavé numérique For i = 96 To 105 Application.OnKey "{" & i & "}", "'Chiffre " & i & "'" Next End Sub Sub Chiffre(Num As Byte) If Len(ActiveCell) >= 8 Then Exit Sub 'Sécurité supplémentaire pour interdire de pouvoir taper un chiffre dans une cellule déjà pleine ActiveCell.Value = ActiveCell.Value & IIf(Num > 57, Chr(Num - 48), Chr(Num)) If Len(ActiveCell) >= 8 Then ActiveCell.Offset(1, 0).Select End Sub Sub Auto_close() Dim i As Byte 'désactivation des touches du pavé alphanumérique For i = 48 To 57 Application.OnKey "{" & i & "}" Next 'désactivation des touches du pavé numérique For i = 96 To 105 Application.OnKey "{" & i & "}" Next End Sub
Nota : Pour passer plusieurs paramètres à une macro paramétrée via Onkey, il convient de séparer les paramètres d'une virgule. Le premier paramètre n'est toutefois séparé du nom de la macro que par un espace. Toujours entouré le tout de '...
Exemple :
Dim i As Byte, p As Byte, q As Byte Application.OnKey "{48}", "'maMacro " & i & ", " & p & ", " & q & "'"
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
6 mars 2015 à 10:19
6 mars 2015 à 10:19
Bonjour pijaku
Merci pour l'encouragement ainsi que pour l'amélioration du programme, j'en prends acte pour l'avenir.
Bonne journée
Bien cordialement
Merci pour l'encouragement ainsi que pour l'amélioration du programme, j'en prends acte pour l'avenir.
Bonne journée
Bien cordialement
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
6 mars 2015 à 10:58
6 mars 2015 à 10:58
et Un + pour Frank après celui de ce matin pour Frenchie :o))
Discussion plus que précieuse et enrichissante
Bravo à tous les 2
Discussion plus que précieuse et enrichissante
Bravo à tous les 2
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
>
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
6 mars 2015 à 11:21
6 mars 2015 à 11:21
Merci Michel, ça fait plaisir.
A+
A+
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
4 mars 2015 à 17:27
4 mars 2015 à 17:27
bonjour Hélène, bonjour le forum,
je crains que ce que tu demandes ne soit pas possible directement dans une cellule. Aucune action ne se fait tant que la cellule n'est pas validée...
je crains que ce que tu demandes ne soit pas possible directement dans une cellule. Aucune action ne se fait tant que la cellule n'est pas validée...
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
4 mars 2015 à 22:24
4 mars 2015 à 22:24
Bonsoir le fil, bonsoir le forum,
Écrit de mon propre sang, sur l'écran de mon PC : Frenchie m'a tué...
Je ne peux que mettre +1 mais ça mérite un +100 !
Écrit de mon propre sang, sur l'écran de mon PC : Frenchie m'a tué...
Je ne peux que mettre +1 mais ça mérite un +100 !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
5 mars 2015 à 03:16
5 mars 2015 à 03:16
Bonjour
Un petit correctif qui annule et remplace le fichier précédent. (je ne désactivais pas toutes les touches à la fermeture).Voilà qui est fait.
https://www.cjoint.com/c/ECfdygIeYQz
cdlt
Un petit correctif qui annule et remplace le fichier précédent. (je ne désactivais pas toutes les touches à la fermeture).Voilà qui est fait.
https://www.cjoint.com/c/ECfdygIeYQz
cdlt
helenec876
Messages postés
3
Date d'inscription
mercredi 4 mars 2015
Statut
Membre
Dernière intervention
5 mars 2015
5 mars 2015 à 08:14
5 mars 2015 à 08:14
Bonjour Frenchie,
Merci pour ton aide !!! C'est vraiment super !!!!!
Ca va vraiment me changer la vie !!!!!
Pas contre, peux tu m'expliquer comment tu as fait?
A quoi sert l'activation / desactivation des touches ?
Et ça, c'est quoi ?
Sub Chiffre8()
ActiveCell.Value = ActiveCell.Value & "8"
Pourquoi ça ne marche pas si on met seulement :
Sub Deplacement()
If Len(ActiveCell) = 8 Then ActiveCell.Offset(1, 0).Select
Merci pour tes explications, j'essaye d'apprendre tout douvement le VBA.
Cdt,
Merci pour ton aide !!! C'est vraiment super !!!!!
Ca va vraiment me changer la vie !!!!!
Pas contre, peux tu m'expliquer comment tu as fait?
A quoi sert l'activation / desactivation des touches ?
Et ça, c'est quoi ?
Sub Chiffre8()
ActiveCell.Value = ActiveCell.Value & "8"
Pourquoi ça ne marche pas si on met seulement :
Sub Deplacement()
If Len(ActiveCell) = 8 Then ActiveCell.Offset(1, 0).Select
Merci pour tes explications, j'essaye d'apprendre tout douvement le VBA.
Cdt,
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
5 mars 2015 à 08:52
5 mars 2015 à 08:52
Bonjour
Activation:
Quand on frappe la touche correspondant au code entre parenthèse , on déclenche la macro entre guillemets. ex: .OnKey "{96}", "Chiffre0"
code 96 =0, donc quand action sur la touche 0 le programme va chercher la macro "Sub Chiffre0".
Toutes les touches choisies sont activées dès l'ouverture du fichier.
Que fait la macro "Sub Chiffre0" ?:
elle ajoute un 0 au précédent contenu de la cellule, et le tout est recopié dans la même cellule. c'est la ligne ActiveCell.Value = ActiveCell.Value & "0" qui traite cela.
Après tout ça, il faut vérifier si on a atteint les 8 caractères (c'est le rôle de la macro "Sub déplacement"). Si ce n'est pas le cas, on sort du programme, sinon on passe à la cellule suivante.
Pourquoi ça ne marche pas si on met seulement ?:
Sub Deplacement()
If Len(ActiveCell) = 8 Then ActiveCell.Offset(1, 0).Select
Parce qu'il faut un élément déclencheur, et le déclencheur c'est l'action précédente.
Désactivation:
En fin de programme, il est impératif de revenir au fonctionnement normal des touches (c'est à dire qui ne déclenche aucune action lors d'une frappe). Ceci se fait automatiquement à la fermeture du fichier.
Voilà, est-ce un peu plus clair?
Bonne journée
CDLT
Activation:
Quand on frappe la touche correspondant au code entre parenthèse , on déclenche la macro entre guillemets. ex: .OnKey "{96}", "Chiffre0"
code 96 =0, donc quand action sur la touche 0 le programme va chercher la macro "Sub Chiffre0".
Toutes les touches choisies sont activées dès l'ouverture du fichier.
Que fait la macro "Sub Chiffre0" ?:
elle ajoute un 0 au précédent contenu de la cellule, et le tout est recopié dans la même cellule. c'est la ligne ActiveCell.Value = ActiveCell.Value & "0" qui traite cela.
Après tout ça, il faut vérifier si on a atteint les 8 caractères (c'est le rôle de la macro "Sub déplacement"). Si ce n'est pas le cas, on sort du programme, sinon on passe à la cellule suivante.
Pourquoi ça ne marche pas si on met seulement ?:
Sub Deplacement()
If Len(ActiveCell) = 8 Then ActiveCell.Offset(1, 0).Select
Parce qu'il faut un élément déclencheur, et le déclencheur c'est l'action précédente.
Désactivation:
En fin de programme, il est impératif de revenir au fonctionnement normal des touches (c'est à dire qui ne déclenche aucune action lors d'une frappe). Ceci se fait automatiquement à la fermeture du fichier.
Voilà, est-ce un peu plus clair?
Bonne journée
CDLT
helenec876
Messages postés
3
Date d'inscription
mercredi 4 mars 2015
Statut
Membre
Dernière intervention
5 mars 2015
5 mars 2015 à 09:06
5 mars 2015 à 09:06
Merci pour tes explications, c'est trés clair.
Par contre juste un dernier point : j'ai remarqué que la macro ne fonctionne qu'avec le pavé numérique. ( codes clavier de 96 à 105 si j'ai bien compris) comment puis je changer cela pour que cela fonctionne avec les chiffres au dessus du clavier. MAJ+& pour le 1 par exemple.
Merci bcp,
Par contre juste un dernier point : j'ai remarqué que la macro ne fonctionne qu'avec le pavé numérique. ( codes clavier de 96 à 105 si j'ai bien compris) comment puis je changer cela pour que cela fonctionne avec les chiffres au dessus du clavier. MAJ+& pour le 1 par exemple.
Merci bcp,
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
>
helenec876
Messages postés
3
Date d'inscription
mercredi 4 mars 2015
Statut
Membre
Dernière intervention
5 mars 2015
5 mars 2015 à 09:08
5 mars 2015 à 09:08
Je répondrai plus tard, je dois m'absenter pour la journée