A voir également:
- Essai avec ce code mais fonctionne pas
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
6 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 25 avril 2020 à 17:57
Modifié le 25 avril 2020 à 17:57
Bonjour,
Je ne sais pas où tu as trouvé ce code mais je suis certain que tu y a apporté les modification qui causent son dysfonctionnement : ce code ne s'applique pas à une cellule (et donc encore moins à une plage de cellules).
Pour contrôler la saisie dans une cellule, pas besoin de VBA, Excel possède un fonctionnalité native parfaitement adaptée à ce besoin : la validation de donnée.
Je ne sais pas où tu as trouvé ce code mais je suis certain que tu y a apporté les modification qui causent son dysfonctionnement : ce code ne s'applique pas à une cellule (et donc encore moins à une plage de cellules).
Pour contrôler la saisie dans une cellule, pas besoin de VBA, Excel possède un fonctionnalité native parfaitement adaptée à ce besoin : la validation de donnée.
Salut Patrice33740,
Merci pour ta réponse,
Comme il ne fonctionnait pas de toutes façons, donc effectivement j'ai modifier pour essayer
de le faire marcher.
Et puis baht ça marche pas.
Plutôt que de compliquer, je vais laisser tomber cette possibilité.
--- Excel possède une fonctionnalité native
Oui je sais bien et tu a raison, mais je souhaiterai le faire en VBA ça sera bon pour mon savoir.
Et puis j'avais vu lors de lecture sur le net un code assez simple qui faisait quasiment ce que je recherche a faire et que je pouvais modifier a ma guise.
Mais je le retrouve plus, dommage.
Bonne soirée a toi.
Cdlt
Merci pour ta réponse,
Comme il ne fonctionnait pas de toutes façons, donc effectivement j'ai modifier pour essayer
de le faire marcher.
Et puis baht ça marche pas.
Plutôt que de compliquer, je vais laisser tomber cette possibilité.
--- Excel possède une fonctionnalité native
Oui je sais bien et tu a raison, mais je souhaiterai le faire en VBA ça sera bon pour mon savoir.
Et puis j'avais vu lors de lecture sur le net un code assez simple qui faisait quasiment ce que je recherche a faire et que je pouvais modifier a ma guise.
Mais je le retrouve plus, dommage.
Bonne soirée a toi.
Cdlt
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
25 avril 2020 à 19:38
25 avril 2020 à 19:38
Re,
« mais je souhaiterai le faire en VBA ça sera bon pour mon savoir. »
Je pense qu'il est bien plus profitable au savoir, de bien connaître toutes les fonctionnalités natives du tableur, et ceci d'autant plus qu'avec les dernières avancées (tableaux structurés, Power Query) on peut de plus en plus souvent se passer du VBA.
Le VBA doit être un dernier recours pour ajouter des fonctionnalités inexistantes.
Je vois trop souvent des macros pêchées ci et là, qui sont mal appropriées ou mal utilisées ou des développements conséquents dont on comprend bien que l'espérance de vie ne rentabilisera jamais le coût de l'investissement, fusse-t'il bénévole.
« mais je souhaiterai le faire en VBA ça sera bon pour mon savoir. »
Je pense qu'il est bien plus profitable au savoir, de bien connaître toutes les fonctionnalités natives du tableur, et ceci d'autant plus qu'avec les dernières avancées (tableaux structurés, Power Query) on peut de plus en plus souvent se passer du VBA.
Le VBA doit être un dernier recours pour ajouter des fonctionnalités inexistantes.
Je vois trop souvent des macros pêchées ci et là, qui sont mal appropriées ou mal utilisées ou des développements conséquents dont on comprend bien que l'espérance de vie ne rentabilisera jamais le coût de l'investissement, fusse-t'il bénévole.
yg_be
Messages postés
23476
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 février 2025
Ambassadeur
1 568
26 avril 2020 à 11:30
26 avril 2020 à 11:30
bonjour,
pourquoi fais-tu cela?
est-ce pour apprendre? si oui, je ne pense pas que ce soit une bonne idée de recopier, sans les comprendre, des codes trouvés sur internet.
pourquoi fais-tu cela?
est-ce pour apprendre? si oui, je ne pense pas que ce soit une bonne idée de recopier, sans les comprendre, des codes trouvés sur internet.
Salut yg_be,
Merci pour ta réponse,
Tout simplement pour apprendre bien sur.
Mais je cherche éventuellement ce qui n'ai pas trop compliqué, ça me fait un départ, mais je cherche a comprendre
et quand je comprends pas je cherche une explication sur le net.
Mais je me sers toujours des codes et comme après je sais je peux les modifiés facilement, mais je ne vais pas me lancer dans des études a 68 ans.
Bon dimanche a toi et merci
Cdlt Ray
Merci pour ta réponse,
Tout simplement pour apprendre bien sur.
Mais je cherche éventuellement ce qui n'ai pas trop compliqué, ça me fait un départ, mais je cherche a comprendre
et quand je comprends pas je cherche une explication sur le net.
Mais je me sers toujours des codes et comme après je sais je peux les modifiés facilement, mais je ne vais pas me lancer dans des études a 68 ans.
Bon dimanche a toi et merci
Cdlt Ray
yg_be
Messages postés
23476
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 février 2025
1 568
>
duduleray
Modifié le 26 avril 2020 à 12:15
Modifié le 26 avril 2020 à 12:15
pour apprendre, rien de tel que de faire soi-même.
pour commencer, sois certain que le module commence par
ensuite, ne garde que les lignes 3 et 21 du code.
posons-nous deux questions:
1) sais-tu ce que représente target?
2) que veux-tu réaliser avec ce code? oublions le comment, ne pensons qu'au comportement attendu.
pour commencer, sois certain que le module commence par
option explicit.
ensuite, ne garde que les lignes 3 et 21 du code.
posons-nous deux questions:
1) sais-tu ce que représente target?
2) que veux-tu réaliser avec ce code? oublions le comment, ne pensons qu'au comportement attendu.
duduleray
>
yg_be
Messages postés
23476
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 février 2025
26 avril 2020 à 12:36
26 avril 2020 à 12:36
Re yg_be,
Pour Target pour pas te répondre de bêtises, j'ai regarder sur le net et TARGET on le vois dans de nombreux codes.
a quoi sert t'il exactement je ne suis sur de rien.
Je dois faire pour mon fils et pour faciliter son boulot sur Excel 2007 une feuil1 de commande de filtre pour piscine et de chaudière.
Les colonnes A à G sont pour les informations, Réf, taille etc, etc, concernants les filtres.
La colonne (H2:H90) pour entrer la quantité à commander.
Donc je souhaiterai en VBA tester les entrées qui seront faites dans cette colonne (H).
Alors ne laisser entrer UNIQUEMENT que les chiffres de 1 à 99 et rien d’autres.
•Aucun zéro devant le chiffre 01 non on efface et on retourne en colonne (H)
•Un ou deux zéros 0 ou 00 non on efface on retourne en colonne (H)
•Un ou deux chiffres autorisés si 3 chiffres on efface on retourne en colonne (H)
•Valider par ENTER par erreur donc cellule vide on retourne en colonne (H)
•Tout autres caractères Tels qu’ils soient on efface on retourne en colonne (H)
Ceci est strict, car ça sera utiliser par plusieurs personnes et si une erreur faisant passer une commande pour 100 filtres par Exemple alors qu’il en faudrait que deux, le boss va pas être content.
Mais un code que je comprenne puisque c'est aussi l'utilité.
Cdlt
Pour Target pour pas te répondre de bêtises, j'ai regarder sur le net et TARGET on le vois dans de nombreux codes.
a quoi sert t'il exactement je ne suis sur de rien.
Je dois faire pour mon fils et pour faciliter son boulot sur Excel 2007 une feuil1 de commande de filtre pour piscine et de chaudière.
Les colonnes A à G sont pour les informations, Réf, taille etc, etc, concernants les filtres.
La colonne (H2:H90) pour entrer la quantité à commander.
Donc je souhaiterai en VBA tester les entrées qui seront faites dans cette colonne (H).
Alors ne laisser entrer UNIQUEMENT que les chiffres de 1 à 99 et rien d’autres.
•Aucun zéro devant le chiffre 01 non on efface et on retourne en colonne (H)
•Un ou deux zéros 0 ou 00 non on efface on retourne en colonne (H)
•Un ou deux chiffres autorisés si 3 chiffres on efface on retourne en colonne (H)
•Valider par ENTER par erreur donc cellule vide on retourne en colonne (H)
•Tout autres caractères Tels qu’ils soient on efface on retourne en colonne (H)
Ceci est strict, car ça sera utiliser par plusieurs personnes et si une erreur faisant passer une commande pour 100 filtres par Exemple alors qu’il en faudrait que deux, le boss va pas être content.
Mais un code que je comprenne puisque c'est aussi l'utilité.
Cdlt
yg_be
Messages postés
23476
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 février 2025
1 568
>
duduleray
26 avril 2020 à 13:41
26 avril 2020 à 13:41
la fonction Worksheet_Change() est appelée chaque fois qu'il y a un changement dans la feuille. le paramètre de la fonction correspond à la zone qui a été modifiée.
pour que tu comprennes mieux, changeons donc le nom du paramètre: remplace target par un nom que tu trouves clair.
il faut ensuite ajouter du code dans la fonction.
la première chose à faire, c'est de vérifier qu'une seule cellule a été changée, car c'est plus simple à programmer.
je suggère que tu lises ceci: https://www.developpez.net/forums/d563748/logiciels/microsoft-office/excel/macros-vba-excel/verifier-qu-seule-cellule-selectionnee/
pour que tu comprennes mieux, changeons donc le nom du paramètre: remplace target par un nom que tu trouves clair.
il faut ensuite ajouter du code dans la fonction.
la première chose à faire, c'est de vérifier qu'une seule cellule a été changée, car c'est plus simple à programmer.
je suggère que tu lises ceci: https://www.developpez.net/forums/d563748/logiciels/microsoft-office/excel/macros-vba-excel/verifier-qu-seule-cellule-selectionnee/
duduleray
>
yg_be
Messages postés
23476
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 février 2025
26 avril 2020 à 15:05
26 avril 2020 à 15:05
Re
Plutot qu'une fonction une macro sub si possible je préfère, comme ça je peux l'utiliser dans d'autre programme si bien sur le besoin reste plus ou moins identique quitte a modifier un peu.
Remplacer TARGET par ??? le but étant de tester chaque entrée effectuez dans les cellules de la colonne (H)
Je me permets de te laisser le choix tu a plus l'habitude que moi.
j'ai lu la doc sur le lien que tu me proposes mais je vais relire a nouveau.
Cdlt
Plutot qu'une fonction une macro sub si possible je préfère, comme ça je peux l'utiliser dans d'autre programme si bien sur le besoin reste plus ou moins identique quitte a modifier un peu.
Remplacer TARGET par ??? le but étant de tester chaque entrée effectuez dans les cellules de la colonne (H)
Je me permets de te laisser le choix tu a plus l'habitude que moi.
j'ai lu la doc sur le lien que tu me proposes mais je vais relire a nouveau.
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
26 avril 2020 à 23:50
26 avril 2020 à 23:50
Re,
Si tu veux une procédure sub :)
Si tu veux une procédure sub :)
Option Explicit Sub VérificationSaisie() Const min As String = "1" Const max As String = "99" Const titre As String = "Erreur de saisie du nombre" Const msg As String = "Veuillez saisir un nombre entier" & vbCrLf & "compris entre " & min & " et " & max Dim rng As Range Set rng = Worksheets("Feuil1").Range("H2:H30") With rng.Validation .Delete .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=min, Formula2:=max .IgnoreBlank = True .InCellDropdown = True .ErrorTitle = titre .ErrorMessage = msg .ShowInput = False .ShowError = True End With End Sub
Salut Patrice33740,
Merci pour ta réponse,
J'ai essayer ton code "SUB" et j'ai essayer également celui de l'ami yg_be dans un autre fichier avec seulement son code
et lors de mes essais, j'ai provoquer des erreurs pour voir si ça fonctionne et quand j'ai effectivement une erreur tes messages s'affichent, je souhaiterai ne plus les voir s'afficher dans le code de l'ami yg_be que je suis en train de tester, comment puis-je faire svp.
--- Const titre As String = "Erreur de saisie du nombre"
--- Const msg As String = "Veuillez saisir un nombre entier"
et le pire c'est qu'ils s'affichent aussi dans ma compta réaliser sous mon Excel 2007
Merci et bonne fin d'après midi a toi.
Cdlt Ray
Merci pour ta réponse,
J'ai essayer ton code "SUB" et j'ai essayer également celui de l'ami yg_be dans un autre fichier avec seulement son code
et lors de mes essais, j'ai provoquer des erreurs pour voir si ça fonctionne et quand j'ai effectivement une erreur tes messages s'affichent, je souhaiterai ne plus les voir s'afficher dans le code de l'ami yg_be que je suis en train de tester, comment puis-je faire svp.
--- Const titre As String = "Erreur de saisie du nombre"
--- Const msg As String = "Veuillez saisir un nombre entier"
et le pire c'est qu'ils s'affichent aussi dans ma compta réaliser sous mon Excel 2007
Merci et bonne fin d'après midi a toi.
Cdlt Ray
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
>
duduleray
Modifié le 27 avril 2020 à 19:16
Modifié le 27 avril 2020 à 19:16
En principe, si tu fermes Excel et que tu le relances tu ne devrais plus y avoir de problème, à moins que tu enregistres ces macro au mauvais endroit (ce qui expliquerait pourquoi tu as tant de mal avec elles).
Ou as-tu copié ces macros ?
Ou as-tu copié ces macros ?
duduleray
>
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
27 avril 2020 à 19:29
27 avril 2020 à 19:29
Merci de ta réponse Patrice
Enregistrer dans un module toujours quand ce sont des SUB la c'est juste un fichier essai .
j'ai tout effacer nettoyage remis dans un fichier excel (neuf) juste le code de l'ami yg_be pour refaire l'essai et toujours pareil.
bonne soirée a toi
Cdlt Ray
Enregistrer dans un module toujours quand ce sont des SUB la c'est juste un fichier essai .
j'ai tout effacer nettoyage remis dans un fichier excel (neuf) juste le code de l'ami yg_be pour refaire l'essai et toujours pareil.
bonne soirée a toi
Cdlt Ray
Re Patrice
Bon, tu peux dormir sur tes deux oreilles, c'est bon ça re fonctionne bien, une erreur de ma part.
Je suis bien reparti sur un fichier (neuf) mais j'ai recopier le fichier qui était dans l'ancien
donc j'ai du sans doute recopier le problème.
La, j'ai repris directement sur le site le dernier fichier en cours et c'est bon.
je paufine tout ca demain.
Bonne soirée a toi, ta réponse m'a tout de mème aiguiller, merci
Cdlt Ray
Bon, tu peux dormir sur tes deux oreilles, c'est bon ça re fonctionne bien, une erreur de ma part.
Je suis bien reparti sur un fichier (neuf) mais j'ai recopier le fichier qui était dans l'ancien
donc j'ai du sans doute recopier le problème.
La, j'ai repris directement sur le site le dernier fichier en cours et c'est bon.
je paufine tout ca demain.
Bonne soirée a toi, ta réponse m'a tout de mème aiguiller, merci
Cdlt Ray