Lire valeur tableau

Grevious88

XLDnaute Nouveau
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 "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 " 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
Document Cjoint 'fichier excel

Page Not Found :(

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 :

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'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 :mad:
 

CPk

XLDnaute Impliqué
Re : Lire valeur tableau

Bonjour , je n'ai pas tout compris et vous m'avez perdu dès le début dans vos lignes de code.
Pour récupérer les paramètres dans des variables, regardez l'imprim écran et dite moi si c'est ce que vous voulez (regarder en bas de la photo, les informations sont stockées dans des variables)
 

Fichiers joints

Grevious88

XLDnaute Nouveau
Re : Lire valeur tableau

oui voila je veut récuperer les valeurs comme tu fais mais sans les vide et je voudrais les classer en fonction de la collone dans laquelle les valeurs se trouve
variable nom prend la valeur de la case PARAM_01 par exemple
Variable Unité prend la valeur bar
et variable decimaleUnit prend la valeur 2 (bar(2))
 

CPk

XLDnaute Impliqué
Re : Lire valeur tableau

Pardon mais dans votre fichier je ne vois nul part bar et bar(2) donc je ne peux réellement vous aidez si vous ne m'aidez pas dans la compréhension.

Les données que vous voulez récupérer, vous voulez en faire quoi ensuite ? Essayez d'être factuel et concis afin que toutes les personnes exterieur à votre fichier puissent comprendre.


Edit : Mince ! J'ai vu après les valeurs bar(2) ! Pardon...
 
Dernière édition par un modérateur:

Grevious88

XLDnaute Nouveau
Re : Lire valeur tableau

je vous met ci joint un imprim écran du tableau contenu dans le fichier joint plus haut Capture.jpg

alors les données récupéré je vais aller les écrire dans une feuille excel dans un champ particulier par exemple en U25
 

Fichiers joints

CPk

XLDnaute Impliqué
Re : Lire valeur tableau

Vu que les valeurs sont dans un tableau virtuel (a) au lieu de transmettre chacune des valeurs individuellement dans une variable nommée pour après reporter cette variable dans une case excel, peut-être que l'on peut aller chercher directement cette variable dans le tableau A.

Exemple
a(1,1) = PARAM_1
a(2,1) = PARAM_2
a(3,1) = PARAM_3

Donc selon la forme de la destination, c'est possible aussi de faire une boucle qui ira directement chercher l'information dans le tableau a.

Vous comprenez ma logique ?
 

Grevious88

XLDnaute Nouveau
Re : Lire valeur tableau

non je comprend pas enoremement :(
je suis désolé je débute en VBA
mon soucis est que le tableau ou est présent PARAM ect ect change de taille pour chaque fonction (chaque feuille excel que je vais créer) du coup je ne sais pas comment faire
 

CPk

XLDnaute Impliqué
Re : Lire valeur tableau

S'il change de taille en nombre de ligne ou en colonne ce n'est pas gênant s'il a des entêtes (sauf vraiment cas particulier). Déplacer des données ce n'est pas ce qu'il y a de plus compliqué, on a juste besoin de savoir d'où les prendre (ca c'est fait) et ou les mettre (?)
 

Grevious88

XLDnaute Nouveau
Re : Lire valeur tableau

alors il faut les mettre dans Cells(d, 16) pour les unites (bar rpm ect ect) de la page active
Cells(d, 3).Activate pour les nom des param
Cells(c, 12).Activate pour la valeur du chifffre présent entre parenthèse
 

CPk

XLDnaute Impliqué
Re : Lire valeur tableau

Essayez
Code:
cells(d,3) = A(1,1)
Bonne continuation.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas