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

WinDev Discussion :

Calcul personnalisé sur sélection multiple [WD25]


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 0
    Points
    0
    Par défaut Calcul personnalisé sur sélection multiple
    Bonjour,

    Dans une table reliée à un fichier de données dont les colonnes sont :
    • ID
    • NOM
    • MONTANT


    Cette table autorise la sélection multiple de cellules

    Exemple de données

    ID NOM MONTANT
    1 TOTO 10000
    2 TITI 200
    3 LULU 300
    ...

    Lorsque je sélectionne les cellules avec les valeurs 10000 et 300, je voudrais que que quand je fais un clic droit cela me fasse somme*10% et que cela me l'affiche dans message d'info par exemple.

    Je vous avoue que je suis perdu car dans la doc, je ne trouve que des infos pour récupérer l'indice de la ligne, mais pas la valeur de la cellule.

    Je vous remercie par avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Une fois qu'on a l'indice, on peut accéder à la ligne TABLE_MaTable[Indice]
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Bonjour,

    Merci pour votre réponse.

    J'accède à la ligne mais pas à la valeur de la cellule.

    Désolé je ne vois pas.

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    TABLE_MaTable[Indice].COL_Montant, ou, s'il n'y a pas d’ambiguïté possible COL_Montant[Indice].
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    info(" Resultat ",(NomdeTable.NomdeColonne[NomdeTable] * 10)/100 )
    Comme l'a dit Voroltinquo

    Bon Dev !

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Bonsoir,

    merci pour vos réponses, je teste rapidement et je reviens vers vous !

    Bon week-end.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    J'ai pas pu attendre, et j'ai voulu testé.

    C'est nickel. cela fonctionne pour une cellule sélectionnée. Mais comment faire pour si je sélectionne 2 cellules de cette même colonne ?
    Comment arriver à faire la somme des cellules sélectionnées et appliquer les 10% dessus ?

    En tout cas merci pour votre aide.

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Bonjour,

    Faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xMontant est numerique
    POUR TOUTE LIGNE SELECTIONEE i DE TABLE_MaTable
    xMontant += COL_Montant[i]
    FIN
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    A priori, on parle de sélection multiple de cellules, et pas de sélection multiple de lignes ...

    J'irai voir l'aide de tableSelectOccurrence() ... et dans la liste des 'Voir aussi', je pense qu'on doit trouver ce qu'on cherche.

    En tout cas, j'irais voir l'aide, ça c'est indispensable.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Merci pour votre aide... je vois en fait que je suis bien largué.

    Pour table selectOccurence, je lis que cela me donne le nombre de cellules sélectionnées. je ne vois pas.

  11. #11
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Comme le montre l'exemple, il faut coupler TableSelectOccurence avec TableSelect
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Bonjour à tous,

    désolé, un peu pris ces temps ci.

    Je vous avoue que j'ai essayé de différente façon mais sans succès

    J'essaye de combiner les deux mais je n'arrive pas à un grand résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    i			est un entier
    POUR i = 1 _À_ TableSelectOccurrence(TABLE_Devis)
     
     
    Trace( TableSelect(TABLE_Devis,i))
     
    FIN
    Je pense qu'il faut rajouter ma COL_MONTANT mais pas le retour souhaité, où si j'ai le montant, mais que pour une ligne.


    Merci pour votre aide.

  13. #13
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    La documentation dit tout ! Je ne vois pas ce qu'on pourrait ajouter ? Je n'ai jamais utilisé cette possibilité de sélection multiple de cellules, et je trouve l'explication dans la doc en 2 minutes.

    Doc de TableSelectOccurrence : TableSelectOccurrence
    Si j'ai bien compris, tu veux le nombre de cellules sélectionnées (et pas le nombre de lignes ni le nombre de colonnes). Tu mets donc le paramètre tsCellule.

    Ensuite, tu fais une boucle, un peu comme dans ton code.

    Doc de TableSelect : TableSelect

    Pour chaque cellule sélectionnée, on peut retrouver son n° de ligne et son n° de colonne, avec les paramètres tsLigneCellule et tsColonneCellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    i , numlig, numcol			est un entier
    POUR i = 1 _À_ TableSelectOccurrence(TABLE_Devis, tsCellule)
     
       numlig = TableSelect(TABLE_Devis,i , tsLigneCellule) 
       numcol = TableSelect(TABLE_Devis,i , tsColonneCellule) 
       Trace ( " rang :" + i + " ligne, colonne=(" + numlig + "," + numcol + ")  ;  Valeur = " + TABLE_DEVIS[numlig,numcol] ) 
     
    FIN
    Je n'ai pas Windev ici, donc je tape 'sans controle', mais ça devrait marcher.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Merci pou votre patiente :

    Voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    xMontant est un numérique
    i , numlig, numcol			est un entier
    POUR i = 1 _À_ TableSelectOccurrence(TABLE_Devis, tsCellule)
     
    	numlig	= TableSelect(TABLE_Devis,i , tsLigneCellule) 
    	numcol	= TableSelect(TABLE_Devis,i , tsColonneCellule) 
    	xMontant +=((TABLE_Devis[numlig,numcol]*10)/100)
    FIN
     
    Info ("Le résultat est : ",xMontant)
    Et cela me donne bien 10% des Montants sélectionnés par les cellules.

  15. #15
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Je reviens sur cette phrase : "Je vous avoue que j'ai essayé de différente façon ..."

    La méthode est très mauvaise. Quand on programme, la technique, ce n'est pas de tenter des trucs plus ou moins au hasard, jusqu'à ce que ça marche. Tu n'avais aucune chance de tomber sur un truc qui marche de cette façon. Aucune chance de deviner le paramètre 'tsLigneCellule' en essayant des trucs au hasard.

    La technique, la seule, c'est de lire la documentation. Je ne connaissais pas ce paramètre tsLigneCellule. Mais en lisant la documentation, je l'ai trouvé en 1 minute.

    On lance l'aide. on recherche la page sur TableSelect ... il faut un peu comprendre la philosophie de nommage des fonctions de Windev pour deviner 'TableSelect'.
    Puis on lit, on regarde les autres pages référencées dans 'Voir aussi' .
    Et quand on a lu pendant 10 minutes, on a suffisamment d'éléments pour appliquer ce qu'on vient de lire.

    Il y a quelques années, toutes les semaines ou tous les mois, je lisais l'index de toutes les fonctions windev (toutes les fonctions listées par ordre alphabétique), juste pour avoir plus ou moins en tête des noms de fonction. Je ne savais pas comment fonctionnaient ces fonctions, quels étaient les paramètres ... mais j'avais en tête un point d'entrée pour aller lire l'aide.
    Ca me prenait 10 minutes par semaine ou par mois. Et j'ai fait ça avec tous les langages que j'ai pu utiliser.
    Et ainsi, quand j'avais un besoin, je trouvais facilement la page d'aide qui me permettait de solutionner ce besoin.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    oui ok cela semble évident...

    En tout cas merci .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/02/2017, 13h39
  2. [XL-2010] excel vba application format sur sélection multiple automatique
    Par mouftie dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 18/06/2016, 18h36
  3. Bug sur sélections multiples (par inadvertance)
    Par jpma75 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/05/2016, 14h31
  4. [WD17] Etat avec tableau sur sélection multiple
    Par brionfred dans le forum WinDev
    Réponses: 3
    Dernier message: 14/12/2015, 01h32
  5. [Toutes versions] Fonction matricielle sur sélection multiple
    Par max76 dans le forum Excel
    Réponses: 5
    Dernier message: 11/02/2014, 18h36

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