Bonjour,
Je suis tombé sur cette ligne que je ne comprends pas :
Que représente le "6" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part If 6 Then Exit Sub
La ligne se trouve dans une macro "Worksheet_Change".
Merci d'avance.
Bonjour,
Je suis tombé sur cette ligne que je ne comprends pas :
Que représente le "6" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part If 6 Then Exit Sub
La ligne se trouve dans une macro "Worksheet_Change".
Merci d'avance.
Cordialement.
Daniel
La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort
@Trystan441 :
J'ai reçu un courriel avec ta réponse mais je ne vois pas ta réponse sur le forum. Est-ce que tu l'as supprimée ?
Cordialement.
Daniel
La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort
Bonjour Daniel,
Effectivement j'avais posté quelque chose mais je l'ai supprimé car je disais quelque chose de complètement évident !
Le 6 correspond à la condition qui te sort de ta procédure.
En revanche, j'ajouterai : cette ligne est elle intégré à une procedure ?
Oui, tout à fait.En revanche, j'ajouterai : cette ligne est elle intégré à une procedure ?
Mais quelle condition ? C'est ça que je ne comprends pas.Le 6 correspond à la condition qui te sort de ta procédure.
Cordialement.
Daniel
La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort
en fait tout teste est true/false, true c'est toutes valeur <>0
Code : Sélectionner tout - Visualiser dans une fenêtre à part If 123456789 Then Exit Sub
C'est justement là TOUT le mystère !
Peux-tu mettre ta procédure dans la discussion ?
Bonjour
Une telle ligne de code ("If 6 Then Exit Sub") est aussi insensée que le serait celle-ci :
dan une expression conditionnelle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part If true then ...
Je doute fort (si vraiment écrite ainsi) qu'elle soit le fait d'un développeur.
Elle ne pourrait, à la rigueur, avoir un sens que dans une instruction genre
Où as-tu pêché cette ligne de code ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Select case une_variable case 6 ... End select
Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .
****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...
Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
Le code est assez long et fait référence à d'autres cellules ainsi qu'à la macro "Worksheet_SelectionChange". J'ai peur qu'il soit imbuvable, comme ça. je joins en attendant ta réponse le classeur. Je mettrais le code si tu ne souhaites pas ouvrir le classeur.
Tu peux reproduire le problème en entrant une valeur numérique inférieure à 14 en P11 de la feuille "Finale".
PatrickROZIER Petanque_VO.xlsm
Cordialement.
Daniel
La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort
Ah !Je mettrais le code si tu ne souhaites pas ouvrir le classeur.
Lis ma signature.
Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .
****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...
Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
@unparia : Je n'avais pas lu ta réponse. Apparemment, nos posts se sont croisés. Le code provient d'un utilisateur pour lequel j'avais écrit une macro (dans une autre partie du classeur).
En tout cas, le classeur semble donner satisfaction à son propriétaire...Je doute fort (si vraiment écrite ainsi) qu'elle soit le fait d'un développeur.
Mais ta réponse me fait penser que, dans la macro "Worksheet_SelectionChange", j'ai des "Select Case" qui vont déclencher des "Worksheet_Change"
Est-ce qu'il serait alors licite d'écrire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Select Case Range("B15") 'dossard Case Is = "" Range("D15") = "" Case Is = 13 Range("D15") = Range("B13") Case Else Range("D15") = Range("B17") End Select
A ma connaissance, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part If 6 Then Exit Sub
Est-ce que tu souhaites que je publie le code ?
@dysorthographie : Dans ce cas, le débranchement est systématique ?
Cordialement.
Daniel
La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort
Fais le test avec n'importe quel valeur !@dysorthographie : Dans ce cas, le débranchement est systématique ?
Oui, tu as raison.
Cordialement.
Daniel
La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort
Ton assertion est fausse. True, c'est True et pas "toutes valeurs <> 0"... Il serait plus juste de dire que toute valeur <> 0 n'est pas False.
En fait, IF teste que c'est faux et pas que c'est vrai, et le branchement se fait si ce n'est pas faux et pas si c'est vrai. Mais tout ce qui n'est pas faux n'est pas forcément vrai, et ça peut amener son lot de petits tracas.
Teste le code suivant et tu verras bien que 123456789 n'est pas égal à True
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub Test() If 123456789 Then MsgBox "Yeah" Else MsgBox "Hé me***" If 123456789 = True Then MsgBox "Yeah" Else MsgBox "Hé me***" End Sub
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
J'ai dit que toutes valeurs différent de zéro est true!
Si tu veux faire un teste avec condition respecte ce que j'ai dit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Sub Test() If 123456789 Then MsgBox "Yeah" Else MsgBox "Hé me***" If 123456789 <>0 Then MsgBox "Yeah" Else MsgBox "Hé me***" End Sub
Et tu as tort, comme je l'ai dit tout à l'heure et comme les deux lignes de code que j'ai données le montrent. Celles que tu viens de donner testent que ce n'est pas faux, et pas que c'est vrai.
Si ce que tu dis était correct, les deux lignes afficheraient le même message, mon second test renverrait "Yeah" et pas "Hé me***". CQFD (et j'ai parfaitement respecté ce que tu as dit!). Prends un peu de recul svp. Tes réponses dans l'énervement ne sont pas productives.
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
ce que j'ai dit ce vérifie!
Un teste ce vérifie true/false TOUTES valeur <>0 s'évalue à true!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub Test() If 25 Then MsgBox "Yeah" Else MsgBox "Hé me***" If 25 <>0 Then MsgBox "Yeah" Else MsgBox "Hé me***" End Sub
Quand tu testes If 25 <>0 Then MsgBox "Yeah" Else MsgBox "Hé me***", tu testes que 25 N'EST PAS FAUX et pas que 25 EST VRAI!!
Si tu veux tester que 25 est vrai, tu dois tester 25 = true.
Ce n'est quand même pas compliqué à comprendre, pour un membre expert confirmé senior ingénieur en développement de logiciels, si?
Et donc, tu as tort lorsque tu dis que tout ce qui n'est pas faux est vrai, comme dans ce message repris ci-dessous! Ce que affirmes là n'est pas correct. Point barre!
Ca n'évalue pas à VRAI, ça évalue à PAS FAUX, ce qui n'est pas la même chose et cela peut conduire à des déductions erronées dans la suite du code, même si je concède que dans beaucoup de cas, ça revient au même dans l'exécution du code. Mais un IF (comme un SI en Excel) ne teste pas TRUE, il teste NOT FALSE, et toute valeur qui n'est pas FALSE est forcément NOT FALSE, mais pas forcément TRUE. Si tu veux tester qu'une valeur est vraiment TRUE, tu dois tester valeur = true.
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Tu as le droits de torturer mes propos mais a aucun moment j'ai dit que 25 ou toutes autre valeurs était true mais bien <>0Un teste ce vérifie true/false TOUTES valeur <>0 s'évalue à true!
Un teste ce vérifie true/false TOUTES valeur <>0 s'évalue à true!
Un teste ce vérifie true/false TOUTES valeur <>0 s'évalue à true!
Je ne torture rien de ce que tu dis. Tu as dit exactement
EDIT (pour éviter les méprises)
CaCe que tu dis veut donc bien dire que tout ce qui n'est pas 0 est TRUE, ou alors on ne parle pas la même langue. Je ne déforme donc pas tes propos en disant cela. Et lorsque tu dis true c'est toutes valeur <>0, tu dis une erreur, comme je te l'ai montré dans mes lignes de code qui traduisent exactement ce que tu dis. Il faut juste l'accepter.
Là dessus, j'arrête. Tu me fatigues vraiment beaucoup!
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Bonjour
tout le reste n'est que distinguo à faire entre "prendre la valeur de " et "être".If...Then...Else, instruction
.....
Syntaxe
If condition Then [statements] [Else elsestatements]
condition Une expression numérique ou expression de chaîne qui prend la valeur True ou False. Si l'argument condition est Null, il est considéré comme False.
Une expression de la forme TypeOf objectname Is objecttype. Objectname est une référence à un objet et objecttype est un type d'objet valide. L'expression a pour valeur True si objectname est du type d'objet indiqué par objecttype ; sinon elle a pour valeur False.
Amitiés
Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .
****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...
Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager