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 :

Utilisation de tableau


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2023
    Messages : 5
    Par défaut Utilisation de tableau
    Bonjour,

    J'ai bien avancé dans mon projet malgré mon faible niveau (merci aux tutos!).

    Maintenant je bute sur l'utilisation de tableau. J'en ai réalisé un à 2 dimensions de 2772 lignes et 9 colonnes afin de définir une base de donnée. J'ai pu le renseigner assez simplement à l'aide de boucles car il y a beaucoup de répétition. Mais pour la dernière colonne, ce sont des valeurs complètement différentes donc je suis obligé de les définir une par une, ce que j'ai fait. Ensuite j'effectue une recherche multiple en fonction de critères et ça m'affiche la valeur dans la dernière colonne. ça j'y suis également arrivé.

    Le souci c'est que dans certain cas il va falloir que corrige la valeur de la dernière colonne. De quelle manière dois-je attribuer une valeur de départ et comment la modifier par la suite?

    Si dessous le code de la recherche. ça m'affichera également si la valeur de la dernière colonne a déjà été modifié ou non, cela en cherchant dans la 8ème colonne (si c'est pas renseigné c'est que la valeur de la dernière colonne n'a jamais été modifiée). ça m'indiquera également si la combinaison n'a pas été trouvé dans la base de donnée. Autre problème, j'obtiens bien ce que je veux si la combinaison existe mais à chaque fois le message "combinaison non trouvée dans registre" s'affiche quand même, pour quelle raison?

    Merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim search As Integer
    For search =0 To 2771
    If (T(search,1)=outsel And T(search,2)= matsel And T(search,3)= epsel And T(search,4)= lgsel And T(search,5)= angsel) Then
    MsgBox(T(search,8)) 
    SetUserLabel(3, T(search,6))
            If (T(search,7) ="") Then
            SetUserLabel(4, "non")
            Else
            SetUserLabel(4, "oui")
            End if
    Else
    message("combinaison non trouvée dans registre")
    End If
    Next search

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 537
    Par défaut
    Je ne comprends pas ta difficulté à modifier un élément de ton tableau, vu que tu arrives à l'initialiser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T(ligne,7) = nouvelle_valeur
    Dans ton code, réfléchis à quel moment tu vas dans le else pour afficher ton message : réponse: à chaque fois que la condition du if n'est pas remplie, donc tu va afficher ton message autant de fois que ta condition n'est pas remplie.
    Le plus simple (selon moi) est de sortir l'affichage de ta boucle et d'utiliser un booleen pour indiquer/tester si tu as bien eu ta combinaison
    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
    Dim IsCombiTrouve as Boolean
    IsCombiTrouve= false
    For search as integer =0 To 2771
        If (T(search,1)=outsel And T(search,2)= matsel And T(search,3)= epsel And T(search,4)= lgsel And T(search,5)= angsel) Then
            MsgBox(T(search,8)) 
            SetUserLabel(3, T(search,6))
            If (T(search,7) ="") Then
                SetUserLabel(4, "non")
            Else
                SetUserLabel(4, "oui")
            End if
           IsCombiTrouve=true 'on a trouvé au moins une fois la combinaison
        End If
    Next search
    If Not IsCOmbiTrouve Then
        message("combinaison non trouvée dans registre")
    End If

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2023
    Messages : 5
    Par défaut
    Merci pour ta réponse.

    Ok j'ai compris pour la boucle.

    Pour la modif d'un élément dans le tableau, c'est pas clair du tout pour moi. Oui j'ai pensé à faire comme tu l'a indiqué, mais le fait de l'avoir initialisé du style T(ligne,7) = 120 puis de la changer en variable et ensuite changer sa valeur, lorsque je vais relancer la macro elle va se remettre à 120 et perdre définitivement la nouvelle valeur?

    Ce que je souhaiterai faire pour mon application, c'est d'abord initialiser toutes les valeurs dans la dernière colonne. J'exécute cette macro via un bouton qui me sélectionne la bonne combinaison et me donne tous les paramètres pour que le pliage de la tôle s’exécute correctement. Mais entre la théorie et la pratique, il y a un écart significatif. Donc si je constate un écart, je mets un correcteur, j’exécute un nouveau pli qui devrait être conforme. Ensuite, j'appuis sur un autre bouton contenant une autre macro qui va venir remplacer l'ancienne valeur qui est erronée par la nouvelle, et ainsi la garder en mémoire.

    Je ne vois pas trop comment m'y prendre

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 537
    Par défaut
    Une base de données doit être sauvegardée quelque part, après tu peux la charger dans ta variable (c'est ça la phase d'initialisation si des valeurs existent dans la base) et la manipuler ainsi sans modifier la base initiale, avant de faire un enregistrement dans la base pour y stocker les nouvelles valeurs.

    Comme tu parles de macro, je suppose que ta "base de données" est un tableau excel, le principe que j'ai indiqué ci-dessus peut s'appliquer également.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2023
    Messages : 5
    Par défaut
    salut,

    Oui je suis parti dans cette direction avant même que tu ne poste ta réponse. J'étais retissant au départ car je pensais que ça serait difficile pour un débutant comme moi, mais je ne voyais par d'autre issu. Etant donné que seules les 2 dernières colonnes de mon tableau sont des variables, je suis parti sur 2 fichiers texte pour que ça soit plus simple à coder pour moi. Je suis parvenu à faire ce que je voulais, je ne pensais pas que j'arriverai à faire quelque chose d'assez abouti sans bug. ça passe très bien en simulation, restera à faire la partie mécanique de la machine et faire des essais. Je pense que ça devrais aller.
    A l'avenir je pense repasser sur un fichier excel pour la base de donné, car il se peut que j’investisse dans d'autres outillages, ce qui signifie une base de donnée plus importante et plus complexe.

    En tout cas je te remercie pour ton aide

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

Discussions similaires

  1. Utilisation de tableau en Transact-SQL
    Par Adi81 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/02/2011, 12h36
  2. conversion binaire-décimal sans utiliser le tableau
    Par ahmed doua dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 13/03/2006, 10h54
  3. [débutant] utiliser un tableau comme une frameset
    Par toudoux dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 09/02/2006, 09h16
  4. Réponses: 4
    Dernier message: 24/08/2005, 14h09
  5. [XHTML] Utilisation de Tableau en XHTML
    Par Kerod dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/04/2005, 11h23

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