IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Effacer plusieurs variables.


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de sabrimi
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 170
    Par défaut Effacer plusieurs variables.
    Bonjour à tous,

    Pour mes essais, je voulais effacer des variables de type integer et comme il y en a 6, je patauge un peu.

    Comme ces variables me servent pour 6 compteurs, et qu'il y a 3 possibilités pour les utiliser, j'ai un gros prb !

    A tout hasard, je mets une partie du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Select Case Index
     
    Case 0
     
        Label2 = Option1(0).Caption
        For i = 1 To 8
        Cpt1 = Cpt1 & i & vbCrLf
        TF1 = Cpt1
        Calc1 = Calc1 & Int(5 + (Int(i) * 100) / 100) & vbCrLf
        TF11 = Calc1
        Next i
     
        For j = 9 To 16
        Cpt2 = Cpt2 & j & vbCrLf
        F1 = Cpt2
        Calc2 = Calc2 & Int(5 + (Int(j) * 100) / 100) & vbCrLf
        F11 = Calc2
        Next j
     
        For k = 17 To 24
        Cpt3 = Cpt3 & k & vbCrLf
        M1 = Cpt3
        Calc3 = Calc3 & Int(5 + (Int(k) * 100) / 100) & vbCrLf
        M11 = Calc3
        Next k
     
        For l = 25 To 32
        Cpt4 = Cpt4 & l & vbCrLf
        N1 = Cpt4
        Calc4 = Calc4 & Int(5 + (Int(l) * 100) / 100) & vbCrLf
        N11 = Calc4
        Next l
     
        For m = 33 To 40
        Cpt5 = Cpt5 & m & vbCrLf
        P1 = Cpt5
        Calc5 = Calc5 & Int(5 + (Int(m) * 100) / 100) & vbCrLf
        P11 = Calc5
        Next m
     
        For n = 41 To 44
        Cpt6 = Cpt6 & n & vbCrLf
        E1 = Cpt6
        Calc6 = Calc6 & Int(5 + (Int(n) * 100) / 100) & vbCrLf
        E11 = Calc6
        Next n
     
        For o = 45 To 47
        Cpt7 = Cpt7 & o & vbCrLf
        R1 = Cpt7
        Calc7 = Calc7 & Int(5 + (Int(o) * 100) / 100) & vbCrLf
        R11 = Calc7
        Next o
     
        For p = 48 To 50
        Cpt8 = Cpt8 & p & vbCrLf
        RR1 = Cpt8
        Calc8 = Calc8 & Int(5 + (Int(p) * 100) / 100) & vbCrLf
        RR11 = Calc8
        Next p
     
    Case 1
     
    Label2 = Option1(1).Caption
        For i = 1 To 8
    (...)
    Je ne vois pas le moyen de remettre toutes ces variables à blanc.

    Si vous pouviez m'aider sur ça, ce serait très sympa.

    Merci d'avance.

    Cordialement.
    Sabrimi

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Après chaque boucle "For ..... To ...", tu peux mettre une variable scalaire à zéro (0) et une variable chaîne à vide ("") et au fait, je vois que tu mélanges les deux types de variables : par exemple
    Calc1 = Calc1 & Int(5 + (Int(i) * 100) / 100) & vbCrLf : Là tu ajoutes une chaîne(String) à un nombre !!!!!!
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre confirmé Avatar de sabrimi
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 170
    Par défaut
    Citation Envoyé par l_autodidacte Voir le message
    Après chaque boucle "For ..... To ...", tu peux mettre une variable scalaire à zéro (0) et une variable chaîne à vide ("") et au fait, je vois que tu mélanges les deux types de variables : par exemple
    Calc1 = Calc1 & Int(5 + (Int(i) * 100) / 100) & vbCrLf : Là tu ajoutes une chaîne(String) à un nombre !!!!!!
    Scalaire, c'est pour les nombres n'est-ce pas ?
    Mais tu vois une chaine(string) où ça ?

  4. #4
    Membre émérite Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Par défaut
    Citation Envoyé par sabrimi Voir le message
    Mais tu vois une chaine(string) où ça ?
    VbCrLf c'est du nougat ou un String ?

  5. #5
    Membre émérite Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Par défaut
    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    S$ = format$(Calc1 + Int(5 + (Int(i) * 100) / 100))) & vbCrLf

  6. #6
    Membre confirmé Avatar de sabrimi
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 170
    Par défaut
    Ben ! Si je ne fais pas de retour à la ligne, rien ne va !

    Comment je peux faire ?

  7. #7
    Membre confirmé Avatar de sabrimi
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 170
    Par défaut
    Merci de l'astuce.

    Est-ce qu'il faut déclarer la variable comme du string ?

  8. #8
    Membre émérite Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Par défaut
    Ben oui ... si tu utilises l'option explicit

  9. #9
    Membre confirmé Avatar de sabrimi
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 170
    Par défaut Après modif
    Citation Envoyé par DAUDET78 Voir le message
    Ben oui ... si tu utilises l'option explicit
    Comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Explicit
    S$ as string
    J'ai regardé dans l'aide mais c'est pas très clair pour moi !

    Voilà ce que j'obtiens après les modifs qui ont été apportées sur l'aide de DAUDET78

    Là, y comme qq chose qui déconne !
    Et comme je ne suis pas très fortiche avec tout ça, comprenez mon prb !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
         For i = 1 To 8
        compte1$ = Format$(cpt1 & i) & vbCrLf
        TF1 = compte1$
        calcul1$ = Format$(calc1 & Int(5 + (Int(i) * 100) / 100)) & vbCrLf
        TF11 = calcul1$
        Next i
     
        For j = 9 To 16
        compte2$ = Format$(cpt2 & j) & vbCrLf
        F1 = compte2$
        calcul2$ = Format$(calc2 & Int(5 + (Int(j) * 100) / 100)) & vbCrLf
        F11 = calcul2$
        Next j
     
    ' ----- Avant la modifif -----   
        For k = 17 To 24
        cpt3 = cpt3 & k & vbCrLf
        M1 = cpt3
        calc3 = calc3 & Int(5 + (Int(k) * 100) / 100) & vbCrLf
        M11 = calc3
        Next k
     
        For l = 25 To 32
        cpt4 = cpt4 & l & vbCrLf
        N1 = cpt4
        calc4 = calc4 & Int(5 + (Int(l) * 100) / 100) & vbCrLf
        N11 = calc4
        Next l
    Qu'est-ce que je dois faire parce que là, ça sort vraiment de mes compétences ?

  10. #10
    Membre expérimenté
    Inscrit en
    Janvier 2011
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 112
    Par défaut
    _ Ia ora na faahou.
    _ Un peu d'histoire ancienne :
    Citation Envoyé par sabrimi Voir le message

    Là, y comme qq chose qui déconne !
    Et comme je ne suis pas très fortiche avec tout ça, comprenez mon prb !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
         For i = 1 To 8
        compte1$ = Format$(cpt1 & i) & vbCrLf
        TF1 = compte1$
        calcul1$ = Format$(calc1 & Int(5 + (Int(i) * 100) / 100)) & vbCrLf
        TF11 = calcul1$
        Next i
     
        For j = 9 To 16
        compte2$ = Format$(cpt2 & j) & vbCrLf
        F1 = compte2$
        calcul2$ = Format$(calc2 & Int(5 + (Int(j) * 100) / 100)) & vbCrLf
        F11 = calcul2$
        Next j
     
    ' ----- Avant la modifif -----   
        For k = 17 To 24
        cpt3 = cpt3 & k & vbCrLf
        M1 = cpt3
        calc3 = calc3 & Int(5 + (Int(k) * 100) / 100) & vbCrLf
        M11 = calc3
        Next k
     
        For l = 25 To 32
        cpt4 = cpt4 & l & vbCrLf
        N1 = cpt4
        calc4 = calc4 & Int(5 + (Int(l) * 100) / 100) & vbCrLf
        N11 = calc4
        Next l
    _ La photo d'écran est l'exact reflet du code, si l'on prend en compte le fait que
    a} les variables cpt1, cpt2, cpt3, etc. n'ont sans doute pas été déclarées ;
    b} en l'absence de Option Explicit, elles ont donc été créées comme Variant ;
    c} elles sont vraisemblablement vides, c'est-à-dire que cpt1 = 0 quand il est utilisé comme numérique et cpt1 = "" quand il est utilisé comme chaîne :
    1) pour les colonnes Très faible et Faible, la variable Compte1$ est réinitialisée à chaque itération ; la seule valeur visible est donc la dernière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        compte1$ = Format$( cpt1 & i) ' quand  i = 8, Format$ (0+8)) = "8"
    '                                                   ou  Format$(val("0" & "8")) = "8"
        TF1 = compte1$
        calcul1$ = Format$(cpt1 + Int(5 + (i * 100) / 100)) & vbCrLf  
        TF11 = calcul1$  ' = Format$(0 + Int(5 + 8)) = "13"
    même chose pour F1 où compte1$ = i = 16 et calcul1$ = 5 + i = 21

    2) pour les colonnes suivantes, le code est un peu différent puisqu'il utilise directement cpt3 qui, lui, s'allonge à chaque itération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For k = 19 to 26
        cpt3 = cpt3 & k & vbCrLf      ' donc 
    '       première itération :   cpt3 = 0 + k = "19 |"
    '       deuxième itération :  cpt3 = "19 |" & 0 + k  & "|" = "19 | 20 |" 
         M1 = cpt3   
    '       première itération : la colonne affiche la ligne 19
    '       deuxième itération : elle affiche les lignes 19 et 20, etc.
    - D'où l'affichage des huit valeurs, et non de la seule dernière ; mais dans tous les cas, on n'affiche jamais que la variable compteur de la boucle.

    _ Bonne continuation.

  11. #11
    Membre confirmé Avatar de sabrimi
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 170
    Par défaut
    Bonjour,

    Y personne pour m'aider un peu ?

    J'ai tout essayé, enfin ce que je connaissais, mais sans résultat !

  12. #12
    Membre expérimenté
    Inscrit en
    Janvier 2011
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 112
    Par défaut
    _ Ia ora na.
    1) D'abord une remarque purement subjective :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TF1 = Cpt1
    [...]
    TF11 = Calc1
    [...]
    F1 = Cpt2
    [...]
    F11 = Calc2
    _ Donner à des éléments des noms très voisins (TF1, TF11, F11) et ne suivant pas de règle de nommage claire :
    a} TF1 = Cpt1 <> TF11 = Calc1
    b} TF11 = Calc1 <> F11 = Calc2)
    n'est pas vraiment de nature à éclairer le code et éviter les confusions. On peut supposer que TF correspond à très faible, F à faible, etc. mais alors, à quoi correspondent P1 et R1 ? et l'opposition 1/11 ?
    2) Quelle est la nature d'une part de TF1,TF11, R1, F1, N1, etc. ? et, d'autre part, de cpt1, calc1, cpt2, calc2 : des variables ? des zones de texte ? des listes ?
    3) On comprend bien qu'il s'agit de ventiler selon quatre niveaux les résultats obtenus par trois groupes d'âge ; mais qu'est-on censé trouver dans les colonnes grisées ? et dans les colonnes blanches ?
    4) La seconde version commence par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     For i = 1 To 8
        compte1$ = Format$(cpt1 & i) & vbCrLf
    _ Pour se limiter aux deux premières lignes :
    ligne 1 >> à quoi correspond cette amplitude de 1 à 8 ? (reprise par 9 à 16, 17 à 24, etc.)
    ligne 2 >> apparemment, cpt1 est un nombre, comme i ; que peut alors faire le & qui les relie (et qui sert, comme Daudet l'avait indiqué dès les premiers messages, à concaténer deux chaînes) ?
    5) Dernière remarque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Explicit
    S$ as string
    _ Ça ne le fera pas...
    ligne 2 >> il faut choisir entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim S$
    ' et
    Dim S as String
    (avec éventuellement Public ou Static à la place de Dim).
    _ Pour pouvoir vous aider, il faudrait avoir une vision plus nette
    a} des éléments dont on dispose au départ,
    b} de ce que l'on veut obtenir à l'arrivée.
    _ Bon courage et bonne chance pour la suite de ce projet.

  13. #13
    Membre confirmé Avatar de sabrimi
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 170
    Par défaut
    Bonjour XylonAkau,

    On peut supposer que TF correspond à très faible, F à faible, etc. mais alors, à quoi correspondent P1 et R1 ? et l'opposition 1/11 ?
    TF = Très Faible
    F = Faible
    M = Moyen
    N = Normal
    P = Parfait
    E = Excellent
    R1 et R2 = Remarquable
    (il y a 2 variables parce que les évaluations (notations) sont au prorata de l'âge de l'utilisateur.
    Et 1/11, c'est juste pour différencier les 2 labels TF, F,M, N, etc.
    Exemple :
    TF1 sert pour afficher une boucle (nombre d'item).
    TF11 sert à afficher le calcul afférent à ce nombre d'items.
    J'aurais pu choisir d'autres noms pour ces labels mais comme c'était pas ma préoccupation première, je me suis dis que je verrai plus tard.

    Comme c'est un test pour le jeunes de 5 à 16 ans, je pense que c'est bien d'avoir fait comme ça.

    2) Quelle est la nature d'une part de TF1,TF11, R1, F1, N1, etc. ? et, d'autre part, de cpt1, calc1, cpt2, calc2 : des variables ? des zones de texte ? des listes ?
    Ce ne sont que des labels qui permettent d'afficher à la fois le N° de l'item (TF1 dans lequel s'affiche une boucle) et l'autre TF11 qui contient le calcul de l'item. C'est pareil pour les autres.
    Concernant cpt1, calc1, cpt2, calc2, etc., sont les variables assignées pour le compteur d'items.
    cpt1 (compteur1) (1, 2, 3...)
    calc1 (calcul1) 6, 7,8,9,11, 12...
    C'est un exemple de calcul uniquement pour te montrer.
    3) On comprend bien qu'il s'agit de ventiler selon quatre niveaux les résultats obtenus par trois groupes d'âge ; mais qu'est-on censé trouver dans les colonnes grisées ? et dans les colonnes blanches ?
    Les colonnes blanches (TF1, F1, M1...) affichent le nombre d'items.
    Celles grisées (TF11, F11, M11...) affiches le résultat du calcul.
    Par exemple, s'il y a 6 items, le calcul sera de 12, si c'est 15 items ce sera 24, etc.
    Tu comprends mieux maintenant ?

    _ Pour se limiter aux deux premières lignes :
    ligne 1 >> à quoi correspond cette amplitude de 1 à 8 ? (reprise par 9 à 16, 17 à 24, etc.)
    ligne 2 >> apparemment, cpt1 est un nombre, comme i ; que peut alors faire le & qui les relie (et qui sert, comme Daudet l'avait indiqué dès les premiers messages, à concaténer deux chaînes) ?
    Le nombre d'items est au prorata du calcul.
    Par exemple :
    1 à 8 items donne comme calcul 7 à 25 (Très Faible).
    9 à 16 donne comme calcul 27 à 45 (Faible)
    17 à 24 ---> 47 à 65 (Moyen)
    25 à 32 ---> 67 à 85 (Normal)
    ...


    _ Pour pouvoir vous aider, il faudrait avoir une vision plus nette
    a} des éléments dont on dispose au départ,
    b} de ce que l'on veut obtenir à l'arrivée.
    Le &, au départ, était pour revenir à la ligne, mais lors de mon 1er post, on m'a dit que je mélangeais du numérique et du texte, alors j'ai tout repris en essayant de le placer à un autre endroit.

    En ce qui concerne la déclaration, là aussi, je m'emmêle les pinceaux parce que je ne voyais pas comment faire avec le &.
    Mais j'avais tout faux et tu m'as aiguillé sur la méthode pour ce faire.

    Merci beaucoup de ton aide et celle de Daudet car ça me fera certainement avancer.

  14. #14
    Membre expérimenté
    Inscrit en
    Janvier 2011
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 112
    Par défaut
    _ Ia ora na, Sabrimi.
    _ Merci pour ces explications, mais (pour dire les choses franchement), la forme en est plus claire que le fond.

    1) Chacun est évidemment seul maître de ses méthodes de travail, mais celles-ci peuvent laisser perplexe :
    a}
    1/11, c'est juste pour différencier les 2 labels TF, F,M, N, etc.
    _ L'opposition 1/11 n'a donc aucun fondement logique, et elle est visuellement peu efficace ;
    b}
    J'aurais pu choisir d'autres noms pour ces labels mais comme c'était pas ma préoccupation première, je me suis dis que je verrai plus tard.
    _ Quel bénéfice attendre de la procrastination ?

    2) a}
    Par exemple, s'il y a 6 items, le calcul sera de 12, si c'est 15 items ce sera 24, etc.
    Tu comprends mieux maintenant ?
    _ A ma grande honte, non. Tout au plus, cela laisse à penser que le calcul dépend du nombre d'items ; or, un peu plus bas :
    Le nombre d'items est au prorata du calcul.
    ce qui est rigoureusement l'inverse.
    b}
    Par exemple :
    1 à 8 items donne comme calcul 7 à 25 (Très Faible).
    9 à 16 donne comme calcul 27 à 45 (Faible)
    17 à 24 ---> 47 à 65 (Moyen)
    _ Désolé, mais impossible de trouver la logique du système. D'autant plus que, ici, le calcul de valeur 24 appartient à la boucle 1 à 8 items , alors que (dans l'exemple cité en a}), 24 correspond à 15 items.

    3) Essayons donc de faire abstraction du sens pour ne traiter que de la forme : la présentation de ce tableau.
    Le &, au départ, était pour revenir à la ligne, mais lors de mon 1er post, on m'a dit que je mélangeais du numérique et du texte, alors j'ai tout repris en essayant de le placer à un autre endroit.
    _ On appréciera certainement ce rappel ; cela étant,
    a} certes, c'est grâce à ses erreurs que l'on avance, mais moins ces erreurs sont nombreuses, plus la progression est rapide...
    b} utiliser des étiquettes n'est pas impossible, mais c'est vraiment se compliquer la vie !
    c} au passage, pour obtenir un saut de ligne dans une étiquette (label), il faut utiliser vbCr et non vbCrLf (qui sert dans une zone de texte) ;
    d} pourquoi ne pas employer deux listes (ListBox) ? elles sont justement faites pour ça : ListeTFCpt et ListeTFCalc, par exemple ; on pourrait imaginer quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        For i = 1 To 8
             compte1$ = Format$(cpt1 & i)
             ListeTFCpt.AddItem compte1$
             calcul1$ = Format$(calc1 & Int(5 + (Int(i) * 100) / 100))
             ListeTFCalc.AddItem calcul1$
        Next i
    e} Reste la partie droite des lignes 2 et 4 ; supposons cpt1 = 3 ; qu'est-ce qu'est censé représenter cpt1 & i ?
    >> 31 à la première itération, 32 à la deuxième et 38 à la huitième ? il faudrait alors écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    compte1$ = Format$(cpt1) & Format$(i)
    >> ou alors 4 à la première itération, 5 à la deuxième, 11 à la dernière ? il faut alors écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    compte1$ = Format$(cpt1 + i)
    _ Et que dire de Int(5 + (Int(i) * 100) / 100) ? c'est apparemment une façon d'arrondir un nombre décimal à l'entier supérieur, mais
    >> i est déjà un entier,
    >> l'ordre des opérations surprend ;
    en final de compte, pour i = 2, on aura
    Int(5 + (2 * 100) / 100) = 5 + ( 200 / 100 ) = 7
    _ Est-ce vraiment le résultat recherché ?
    f} Pour dire les choses autrement, dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        For i = 1 To 8
             compte1$ = Format$(cpt1 & i)
    '[...]
             calcul1$ = Format$(calc1 & Int(5 + (Int(i) * 100) / 100))
    faut-il voir une tentative d'obtenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
             compte1$ = Format$(cpt1(i))
             calcul1$ = Format$(Int((5 + calc1(i) * 100) / 100))
    Cpte1() serait un tableau d'entiers contenant les valeurs des divers items et Calc1(), un tableau de nombres en simple précision ?
    _ Mais alors, la question que nous avions mise à la porte au § 3) rentrerait par la fenêtre : où et sous quelle forme sont stockés les mystérieux items ?

    _ Bon courage pour la suite et bon week-end en attendant.

  15. #15
    Membre confirmé Avatar de sabrimi
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 170
    Par défaut
    Citation Envoyé par XylonAkau Voir le message
    _ Ia ora na, Sabrimi.
    1) Chacun est évidemment seul maître de ses méthodes de travail, mais celles-ci peuvent laisser perplexe :
    a} _ L'opposition 1/11 n'a donc aucun fondement logique, et elle est visuellement peu efficace ;
    b}_ Quel bénéfice attendre de la procrastination ?
    Bonjour XylonAkau,
    C'est que tu as parfaitement raison si je me penche plus profondément sur la question !
    Je comprends pourquoi tu dis que 1/11 n'est pas "logique", mais c'était pour essais parce que le prog initial est nettement plus volumineux (plus de 60 forms).

    Les noms de variables et d'objets sont, pour moi, plus parlants étant donné qu'il y en a beaucoup.

    Malheureusement, d'après ce que tu me dis, je suis le seul à en comprendre la portance.
    Dans l'immédiat, je pourrais faire les modifs de suite mais comme j'essayais de comprendre le fonctionnement de tout ça dans ce prog, mais je voulais le faire à l'original, c'est pour ça que je disais que c'était pas gagné !


    Citation Envoyé par XylonAkau Voir le message
    b}
    _ Désolé, mais impossible de trouver la logique du système. D'autant plus que, ici, le calcul de valeur 24 appartient à la boucle 1 à 8 items , alors que (dans l'exemple cité en a}), 24 correspond à 15 items.

    J'ai modifié la notation suivant l'âge parce que là, c'est plus juste.

    Ce qu'il y avait avant, c'était que la boucle ne se faisait pas, c'est pour ça que tu ne voyais pas trop bien.

    C'est d'ailleurs sur ce sujet que j'ai demandé votre aide.

    [quote=XylonAkau;6832181]
    a} certes, c'est grâce à ses erreurs que l'on avance, mais moins ces erreurs sont nombreuses, plus la progression est rapide...[/quote}

    Là, je suis totalement d'accord avec toi !

    Citation Envoyé par XylonAkau Voir le message
    b} utiliser des étiquettes n'est pas impossible, mais c'est vraiment se compliquer la vie !
    c} au passage, pour obtenir un saut de ligne dans une étiquette (label), il faut utiliser vbCr et non vbCrLf (qui sert dans une zone de texte) ;
    Ca, je le savais pas vois-tu !
    Tu m'as appris à faire la différence.

    Citation Envoyé par XylonAkau Voir le message
    d} pourquoi ne pas employer deux listes (ListBox) ? elles sont justement faites pour ça : ListeTFCpt et ListeTFCalc, par exemple ; on pourrait imaginer quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        For i = 1 To 8
             compte1$ = Format$(cpt1 & i)
             ListeTFCpt.AddItem compte1$
             calcul1$ = Format$(calc1 & Int(5 + (Int(i) * 100) / 100))
             ListeTFCalc.AddItem calcul1$
        Next i
    C'est une idée géniale, mais dans le logiciel original, y en a pas vu que la notation se fait form/form.
    C'est un peu ce qui est représenter dans mon prog d'essais
    Et là, c'est un peu plus compliqué !

    En fait, c'était surtout pour avoir la notation suivant le nombre d'items effectués et surtout, suivant l'âge de l'utilisateur.

    C'est vrai que pas mal de modifs ont été apportées grâce à votre aide, mais quant à les appliquer dans le prog initial, là, c'est une autre paire de manches, parce qu'en plus des forms, il y a des modules.

    Comme dans ce prog, je n'avais pas fait de tests sur l'âge mais seulement sur le nombre d'items réalisés, il faut tout revoir pour que ça marche bien ! C'est pour ça que je disais que c'était pas gagné d'avance.

    Mais, pour l'instant, je n'ai pas tout à fait terminé avec ces modifs de Numérique/Texte, parce que là, j'ai pas mal d'erreur d'exécution.

    Il est vrai que tes idées sont très bonnes, mais dans d'autres posts, on me donne des procédures différentes, pour en revenir aux mêmes résultats que les tiens, alors comprends bien que je ne peux faire des modifs différentes à tout bout de champ, ce serait trop fastidieux !

    Néanmoins, ton aide ainsi que celle des autres, m'ont apportées beaucoup de matières à réflexion sur ma méthode de développement.
    En plus de celle pour améliorer mon prog.

    Je te souhaite un bon dimanche.

    A+

Discussions similaires

  1. Plusieurs variables dans Dim et Case??
    Par samlepiratepaddy dans le forum Access
    Réponses: 2
    Dernier message: 02/10/2005, 18h04
  2. Envoyer plusieur variable a un programme
    Par scaleo dans le forum Langage
    Réponses: 9
    Dernier message: 06/09/2005, 11h09
  3. envoyer plusieurs variables dans l'url?
    Par brgui dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h18
  4. Réponses: 5
    Dernier message: 28/04/2004, 16h06
  5. Effacer les variables de session
    Par glsn dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2003, 13h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo