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

Macros et VBA Excel Discussion :

Lire valeur dans un tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 96
    Par défaut Lire valeur dans un tableau
    Bonjour à tous
    Je viens vers vous pour un problème au niveau de la lecture d'un tableau je m'explique
    j'ai x fonction = x feuille excel
    dans ces feuilles j'ai des tableaus qui change en fonction de la fonction
    j'aimerai recuperer des info présente à un certain endroit d'un certain tableau
    comment puis - je faire
    je vous met un exemple de code que j'ai fait précédement qui fonctionnais car le tableau etait toujours de la meme sorte

    Probleme avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PARAM = Sheets(Nom).Range("Fct_Param").Cells(l + 19, 5)
    ici car le +19 me permet d'arriver dans le tableau au bon endroit voulu or ce tableau peut varier et du coup le 19 ne vas plus

    j'aimera savoir comment arriver au bon endroit directement

    Mon 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
    Windows("TestClasseurfinal").Activate 'Rend le fichier classeurtest1.0 actif
    Worksheets("FCT_1001_412").Activate 'Rend la feuille Nom active
              Do While l <> MaxPARAM Or m <> MaxPARAM 'faire tant que j different de MaxIC
                     If Cells(c, 2).Text Like "*PARAM\DEC*" And l <> MaxPARAM Then ' est active si \IC\ existe dans la colonne B
                              Windows("HEM-AF-6300-001").Activate 'Rend le fichier GénérateurSV_v2.10 actif
                              Worksheets(Nom).Activate 'Rend la feuille Templet SV active
                              PARAM = Sheets(Nom).Range("Fct_Param").Cells(l + 19, 5) 'IC prend la valeur de la premiere description de la première IC  
                              Range("Fct_Param").Cells(l + 20, 5).Activate
                                ValPARAM = Val(Split(PARAM, "(")(1)) ' ici ValPARAM prend la valeur comprise entre parenthèse
                              Windows("classeurtest2.0").Activate 'Rend le fichier classeurtest1.0 actif
                              Worksheets(Nom & "Section").Activate 'Rend la feuille Nom active
                              Cells(c, 12).Activate
                                ActiveCell = ValPARAM
                                l = l + 1
                       End If
                       c = c + 1
    et ci joint le fichier en question avec comme exemple une fonction
    http://www.cjoint.com/c/FCFo0iibiXn 'fichier excel

    alors j'aimerai prendre les information présente dans la case Unité
    affecter l'unité (bar °C ect ect) à une variable
    affecter les décimales (bar(2) à une autre variable
    affecter le nom de la variable (Pression de stabilisation par exemple ) à une variable

    je fais comme cela pour l'instant avec mes tableaux statique :

    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
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            'Ici nous allons remplacer les unites des mesures
            Windows("HEM-AF-6300-001").Activate 'Rend le fichier GénérateurSV_v2.10 actif
          Worksheets("General").Activate 'Rend la feuille Templet SV active
     
           c = 5
           d = 5
           l = 0
           m = 0
           MaxPARAM = Sheets(Nom).Range("Fct_Param").Rows.Count - 19 'Ici on compte le nombre de ligne dans le tableau mesure
     
          Windows("classeurtest2.0").Activate 'Rend le fichier classeurtest1.0 actif
     Worksheets(Nom & "Section").Activate 'Rend la feuille Nom active
               Do While l <> MaxPARAM Or m <> MaxPARAM 'faire tant que j different de MaxIC
                      If Cells(c, 2).Text Like "*PARAM\DEC*" And l <> MaxPARAM Then ' est active si \IC\ existe dans la colonne B
                               Windows("HEM-AF-6300-001").Activate 'Rend le fichier GénérateurSV_v2.10 actif
                               Worksheets(Nom).Activate 'Rend la feuille Templet SV active
                               PARAM = Sheets(Nom).Range("Fct_Param").Cells(l + 19, 5) 'IC prend la valeur de la premiere description de la première IC
                               Range("Fct_Param").Cells(l + 20, 5).Activate
                                ValPARAM = Val(Split(PARAM, "(")(1)) ' ici ValPARAM prend la valeur comprise entre parenthèse
                               Windows("classeurtest2.0").Activate 'Rend le fichier classeurtest1.0 actif
                               Worksheets(Nom & "Section").Activate 'Rend la feuille Nom active
                               Cells(c, 12).Activate
                                ActiveCell = ValPARAM
                                l = l + 1
                       End If
                       c = c + 1
     
                       If Cells(d, 2).Text Like "*PARAM\PARAM*" Then ' est active si \IC\ existe dans la colonne B
                               Windows("HEM-AF-6300-001").Activate 'Rend le fichier GénérateurSV_v2.10 actif
                               Worksheets(Nom).Activate 'Rend la feuille Templet SV active
                               Unite = Sheets(Nom).Range("Fct_Param").Cells(m + 19, 5).Value
                                Unite = Split(maVariable, "(")(0) 'ici unite prend la valeur du texte avant les parenthèses
                               NOMPARAM = Sheets(Nom).Range("Fct_Param").Cells(m + 19, 6) 'IC prend la valeur de la premiere description de la première IC
                               'ValPARAM = Val(Split(IA, "(")(1))
                               Windows("classeurtest2.0").Activate 'Rend le fichier GénérateurSV_v2.10 actif
                               Worksheets(Nom & "Section").Activate 'Rend la feuille Templet SV active
                               Cells(d, 16).Activate
                                ActiveCell = Unite
                                Cells(d, 3).Activate
                                ActiveCell = NOMPARAM
                                m = m + 1
                        End If
                        d = d + 1
     
                        Windows("classeurtest2.0").Activate 'Rend le fichier GénérateurSV_v2.10 actif
                       Worksheets(Nom & "Section").Activate 'Rend la feuille Templet SV active
               Loop
                'Sheets(Nom & "Section").Columns(16).Replace "UNITE", ""
           'Sheets(Nom & "Section").Columns(21).Replace "DESCRIPTION", ""
           Windows("HEM-AF-6300-001").Activate
            Worksheets("General").Activate 'Rend la feuille Templet SV active
    MERCI A VOUS POUR VOTRE aide j'y suis depuis 4 jours la dessus et je ne sais vraiment pas comment faire

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Salut,

    stp, met tes extraits de code dans la balise code(le # à droite)
    car sans cela, c'est plutôt difficile à lire!
    ( tu es le seul à pouvoir modifier ton message!)
    Cordialement,

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Ok si je comprend bien ton 2ième lien, ton problème c'est de lire des données dans un secteur bien spécifique.
    Alors d'abord, on dit pas secteur, on dit plage, ou plage de cellule.
    (le vocabulaire, c'est important, si on veut se comprendre)

    Pour bien gérer plusieurs plages, il faut essayer de les isoler.
    Une plage est entourée de lignes et de colonnes vides.
    Pourquoi?
    Car si tu connais l'adresse d'une cellule de la plage, ex: A10, il suffit
    de faire Range("A10").CurrentRegion pour avoir une référence sur la totalité de
    la plage, que tu peux ensuite parcourir à ta guise.

    Si tu as plusieurs plages, il faut pouvoir les repérer.
    Une solution: donner un nom à la première cellule en haut à gauche de la plage.
    Sur ton exemple, ta cellule Consigne de réglage, tu l'appelle CONSIGNE_REGLAGE
    et tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("CONSIGNE_REGLAGE").CurrentRegion
    Cordialement,

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 96
    Par défaut
    merci pour ta réponse je regarde tous cela mais je pense avoir compris ce que tu m'as dit

Discussions similaires

  1. Lire une valeur dans un tableau croisé dynamique
    Par hugues03 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 09/06/2010, 18h57
  2. [LG] Valeur dans un tableau
    Par hunter dans le forum Langage
    Réponses: 3
    Dernier message: 16/06/2005, 13h59
  3. [tableau]Valeur dans un tableau
    Par kisscool31 dans le forum Collection et Stream
    Réponses: 30
    Dernier message: 17/05/2005, 09h45
  4. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41
  5. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 16h01

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