Affecter une valeur présente dans un tableau à une variable

bonjour à vous

je viens vers vous j'ai un soucis pour l'affectation d'une variable.

j'aimerai que ma variable IA prenne la valeur présente entre parenthèse

le tableau fait parti d'un tableau appelé Fct_Mesure

j'ai déjà codé ceci :

Windows("HEM-AF-6300-001").Activate 'Rend le fichier GénérateurSV_v2.10 actif
          Worksheets("General").Activate 'Rend la feuille Templet SV active
        b = 5
        k = 0
        MaxIA = Sheets(Nom).Range("Fct_Mesure").Rows.Count - 4 'Ici on compte le nombre de IC

        Windows("classeurtest1.0").Activate 'Rend le fichier classeurtest1.0 actif
        Worksheets(Nom & "Section").Activate 'Rend la feuille Nom active
                    Do While k <> MaxIA 'faire tant que j different de MaxIC
                        If Cells(b, 2).Text Like "*\DEC_MEAS\*" 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
                            IA = Sheets(Nom).Range("Fct_Mesure").Cells(k + 4, 3) 'IA prend la valeur de la case unité
                            Windows("classeurtest1.0").Activate 'Rend le fichier GénérateurSV_v2.10 actif
                            Worksheets(Nom & "Section").Activate 'Rend la feuille Templet SV active
                            'MsgBox "Le mot ""FUNCTION"" existe dans la colonne."
                            Cells(a, 21).Activate
                            ActiveCell = IC
                            k = k + 1

                        End If
                    a = a + 1
                    Windows("classeurtest1.0").Activate 'Rend le fichier GénérateurSV_v2.10 actif
                    Worksheets(Nom & "Section").Activate 'Rend la feuille Templet SV active

merci à vous pour votre aide et le temps que vous passerez à m'aider

capture capture1
Grevious88 a écrit :

j'aimerai que ma variable IA prenne la valeur présente entre parenthèse

Tu veux récupérer le contenu de Unité (virgule) c'est bien ça?

Si c'est bien ça

Supposons que dans une variable tu aies stocké bar(2) (avec des captures d'écran je peux pas te proposer mieux)

Dim maVariable As String
Dim maValeur As Integer
maVariable = "bar(2)"
maVariable = Split(maVariable, "(")(1)
maVariable = Split(maVariable, ")")(0)
maValeur = IIf(IsNumeric(maVariable), CInt(maVariable), 0)

oui voila je veut récuperer la valeur présente entre les parenthèses je testerais ton code demain merci en tous cas

j'ai tester ce que tu m'as donner le soucis c'est que j'aimerai que le programme balaye l'ensemble des cases du tableau et écrive la valeur entre parenthèse dans une variable (la même variable à chaque fois)

Sans fichier tu n'auras pas vraiment beaucoup plus d'aide.

Supposons que tu ais une boucle qui balaye tes lignes, et que les données sont stockées dans la colonne B

Dim maVariable As String
Dim maValeur As Integer
For ligne = 5 to 10
   maVariable = Range("B" & ligne)
   maVariable = Split(maVariable, "(")(1)
   maVariable = Split(maVariable, ")")(0)
   maValeur = IIf(IsNumeric(maVariable), CInt(maVariable), 0)
Next ligne

ne pourais - je pas utiliser :

IA = Sheets(Nom).Range("Fct_Mesure").Cells(k + 4, 3) 'IA prend la valeur de la Ligne N°x du tableau

Val (IA) = ValIA 'ici j'utilise la fonction VAL

?

'--------- en haut de la procédure
Dim maVariable As String
Dim IA As Integer

'dans ta boucle
maVariable = Sheets(Nom).Range("Fct_Mesure").Cells(k + 4, 3).Value
maVariable = Split(maVariable, "(")(1)
maVariable = Split(maVariable, ")")(0)
IA = IIf(IsNumeric(maVariable), CInt(maVariable), 0)

pour le deuxième post excuse moi mais j'ai pensé que reformuler la question plus clairement pourrais permettre plus de réponse et ensuite je l'ai fait avant ta réponse je suis désolé

en tous cas je te remercie pour ta solution qui fonctionne bien mais une question sir il y avait par exmple des choses apres genre bar(2)cars ? comment tu aurais pu faire ?

Excuses considérées et en phase d'acceptation.

La formule que je te propose fait la chose suivante:

je découpe mon texte à chaque "(" trouvé grâce au code Split(maVariable, "(")

montexte(12452)abc) sera découpé de la manière suivante:

  • montexte
  1. 12452)abc)

Split(maVariable, "(")(0) = montexte

Split(maVariable, "(")(1) = 12452)abc)

Ce qui nous intéresse c'est 12452, on travaille donc pour la suite avec Split(maVariable, "(")(1)

maVariable = Split(maVariable, "(")(1)

Maintenant on veux faire la même chose, mais en gardant ce qui est à gauche du ")" grâce au code Split(maVariable, ")")

  • 12452
  1. abc

Split(maVariable, "(")(0) = 12452

Split(maVariable, "(")(1) = abc

Le résultat souhaité est contenu dans Split(maVariable, "(")(0) d'où

maVariable = Split(maVariable, ")")(0)

Plus qu'à vérifier qu'on a bien extrait un nombre

IA = IIf(IsNumeric(maVariable), CInt(maVariable), 0)

En somme, tant que ta donnée à extraire est contenue dans les premières parenthèses, ça fonctionnera

blabla(indice)(blabla) -> extraira indice

blabla(blabla)(indice) -> extraira blabla

d'accord merci pour tes explications très censés et concrètes

en tous cas cela fonctionne très bien c'est super je vous remercie et je pense avoir besoin de vous encore de temps en temps vu que je suis un débutant en VB et que mon projet de stage est très complexe et en VB


d3d9x a écrit :

Excuses considérées et en phase d'acceptation.

La formule que je te propose fait la chose suivante:

je découpe mon texte à chaque "(" trouvé grâce au code Split(maVariable, "(")

montexte(12452)abc) sera découpé de la manière suivante:

  • montexte
  1. 12452)abc)

Split(maVariable, "(")(0) = montexte

Split(maVariable, "(")(1) = 12452)abc)

Ce qui nous intéresse c'est 12452, on travaille donc pour la suite avec Split(maVariable, "(")(1)

maVariable = Split(maVariable, "(")(1)

Maintenant on veux faire la même chose, mais en gardant ce qui est à gauche du ")" grâce au code Split(maVariable, ")")

  • 12452
  1. abc

Split(maVariable, "(")(0) = 12452

Split(maVariable, "(")(1) = abc

Le résultat souhaité est contenu dans Split(maVariable, "(")(0) d'où

maVariable = Split(maVariable, ")")(0)

Plus qu'à vérifier qu'on a bien extrait un nombre

IA = IIf(IsNumeric(maVariable), CInt(maVariable), 0)

En somme, tant que ta donnée à extraire est contenue dans les premières parenthèses, ça fonctionnera

blabla(indice)(blabla) -> extraira indice

blabla(blabla)(indice) -> extraira blabla

et du coup si je veut recuperer seulement n'unité (genre bar °C rpm ect ect ) ?? comment je dois procceder ?

Rechercher des sujets similaires à "affecter valeur presente tableau variable"