OVH Cloud OVH Cloud

valeur de cellule

6 réponses
Avatar
Laurent M
Bonjour,

j'ai un numéro de ligne et de colonne, quels sont les différents moyens pour
récupérer la valeur contenu dans la cellule correspondante?

merci !

6 réponses

Avatar
RaMa
Bonjour
=INDIRECT(ADRESSE(N°Ligne;N°colonne))
Salutations
RaMa

"Laurent M" a écrit dans le message de
news:
Bonjour,

j'ai un numéro de ligne et de colonne, quels sont les différents moyens
pour
récupérer la valeur contenu dans la cellule correspondante?

merci !


Avatar
GVentre
Bonjour laurent,

En VBA, tu peux récupérer la valeur de cellule comme suit:

Si ligne = 4 et Colonne = 1
Cells(4, 1).Value

Cordialement,

GVentre



Bonjour,

j'ai un numéro de ligne et de colonne, quels sont les différents moyens pour
récupérer la valeur contenu dans la cellule correspondante?

merci !




Avatar
Laurent M
d'accord je vous remercie

Pourriez vous jeter un coup d'oeil à ceci :

J'ai déclaré une fonction GetValue qui me permet de rechercher la valeur
d'une cellule en fonction d'une abscisse et d'une ordonné
De même SetValue permet de donner une valeur à une cellule selon l'ordonné
ou l'abscisse choisie

-----------------------------------
Function GetValue(S_Fond As String, S_Valeur As String)

Dim Adresse
Adresse = Cells(Range("A:A").Find(S_Valeur).Row,
Range("1:1").Find(S_Fond).Column).Address(False, False)

GetValue = Range(Adresse).value
End Function
-----------------------------------
Function SetValue(S_Fond As String, S_Valeur As String, D_Value)

Dim Adresse As Range
Adresse = Cells(Range("A:A").Find(S_Valeur).Row,
Range("1:1").Find(S_Fond).Column).Address(False, False)
Range(Adresse).value = D_Value
End Function
-----------------------------------

J'essaie ensuite d'appeler ces fonction avec une macro (pour les tester) :

-----------------------------------
Sub GetNumberOfFund()

Dim ad
ad = GetValue("f1c1", "first")

Call SetValue("sec", "InsertData", ad)

End Sub
-----------------------------------

sachant que les chaînes de caractères "f1c1", "sec" se situe dans la
première ligne de ma feuille; "first" et "InsertData" se situent dans la
première colonne de ma feuille.

Lorsque j'exécute la macro je reçois cette erreur

"Variable Objet ou variable de bloc with non définie au niveau de la ligne
en rouge"


Je ne comprends vraiment pas d'où cela vient et cela m'irrite beaucoup !

merci par avance
Avatar
LSteph
Bonjour Laurent,
Ce getvalue ressemble curieusement à la fonction index:
=index(matrice,numlig,numcol)
ou bien en vba plus simplement exemple:
cells(1,4)
renvoie déjà la cellule ligne 1 colonne4

de même pour le SetValue, il me semble que
cells(2,3)="ceci"
met ceci dans la cellule en question.

Ou bien , pas vraiment compris la finalité ?§...

'lSteph


"Laurent M" a écrit dans le message de
news:
d'accord je vous remercie

Pourriez vous jeter un coup d'oeil à ceci :

J'ai déclaré une fonction GetValue qui me permet de rechercher la valeur
d'une cellule en fonction d'une abscisse et d'une ordonné
De même SetValue permet de donner une valeur à une cellule selon l'ordonné
ou l'abscisse choisie

-----------------------------------
Function GetValue(S_Fond As String, S_Valeur As String)

Dim Adresse
Adresse = Cells(Range("A:A").Find(S_Valeur).Row,
Range("1:1").Find(S_Fond).Column).Address(False, False)

GetValue = Range(Adresse).value
End Function
-----------------------------------
Function SetValue(S_Fond As String, S_Valeur As String, D_Value)

Dim Adresse As Range
Adresse = Cells(Range("A:A").Find(S_Valeur).Row,
Range("1:1").Find(S_Fond).Column).Address(False, False)
Range(Adresse).value = D_Value
End Function
-----------------------------------

J'essaie ensuite d'appeler ces fonction avec une macro (pour les tester) :

-----------------------------------
Sub GetNumberOfFund()

Dim ad
ad = GetValue("f1c1", "first")

Call SetValue("sec", "InsertData", ad)

End Sub
-----------------------------------

sachant que les chaînes de caractères "f1c1", "sec" se situe dans la
première ligne de ma feuille; "first" et "InsertData" se situent dans la
première colonne de ma feuille.

Lorsque j'exécute la macro je reçois cette erreur

"Variable Objet ou variable de bloc with non définie au niveau de la ligne
en rouge"


Je ne comprends vraiment pas d'où cela vient et cela m'irrite beaucoup !

merci par avance



Avatar
Jean-François Aubert
Salut Laurent,

la faute est ici:

Dim Adresse As Range


ne déclare pas la dim Adresse en Range, parce que :

Adresse = Cells(Range("A:A").Find(S_Valeur).Row, _
Range("1:1").Find(S_Fond).Column).Address(False, False)

renvoie un String


--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Laurent M" a écrit dans le message de
news:
d'accord je vous remercie

Pourriez vous jeter un coup d'oeil à ceci :

J'ai déclaré une fonction GetValue qui me permet de rechercher la valeur
d'une cellule en fonction d'une abscisse et d'une ordonné
De même SetValue permet de donner une valeur à une cellule selon l'ordonné
ou l'abscisse choisie

-----------------------------------
Function GetValue(S_Fond As String, S_Valeur As String)

Dim Adresse
Adresse = Cells(Range("A:A").Find(S_Valeur).Row,
Range("1:1").Find(S_Fond).Column).Address(False, False)

GetValue = Range(Adresse).value
End Function
-----------------------------------
Function SetValue(S_Fond As String, S_Valeur As String, D_Value)

Dim Adresse As Range
Adresse = Cells(Range("A:A").Find(S_Valeur).Row,
Range("1:1").Find(S_Fond).Column).Address(False, False)
Range(Adresse).value = D_Value
End Function
-----------------------------------

J'essaie ensuite d'appeler ces fonction avec une macro (pour les tester) :

-----------------------------------
Sub GetNumberOfFund()

Dim ad
ad = GetValue("f1c1", "first")

Call SetValue("sec", "InsertData", ad)

End Sub
-----------------------------------

sachant que les chaînes de caractères "f1c1", "sec" se situe dans la
première ligne de ma feuille; "first" et "InsertData" se situent dans la
première colonne de ma feuille.

Lorsque j'exécute la macro je reçois cette erreur

"Variable Objet ou variable de bloc with non définie au niveau de la ligne
en rouge"


Je ne comprends vraiment pas d'où cela vient et cela m'irrite beaucoup !

merci par avance



Avatar
Laurent M
Merci Jean-François tout marche à présent


Salut Laurent,

la faute est ici:

Dim Adresse As Range


ne déclare pas la dim Adresse en Range, parce que :

Adresse = Cells(Range("A:A").Find(S_Valeur).Row, _
Range("1:1").Find(S_Fond).Column).Address(False, False)

renvoie un String


--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Laurent M" a écrit dans le message de
news:
d'accord je vous remercie

Pourriez vous jeter un coup d'oeil à ceci :

J'ai déclaré une fonction GetValue qui me permet de rechercher la valeur
d'une cellule en fonction d'une abscisse et d'une ordonné
De même SetValue permet de donner une valeur à une cellule selon l'ordonné
ou l'abscisse choisie

-----------------------------------
Function GetValue(S_Fond As String, S_Valeur As String)

Dim Adresse
Adresse = Cells(Range("A:A").Find(S_Valeur).Row,
Range("1:1").Find(S_Fond).Column).Address(False, False)

GetValue = Range(Adresse).value
End Function
-----------------------------------
Function SetValue(S_Fond As String, S_Valeur As String, D_Value)

Dim Adresse As Range
Adresse = Cells(Range("A:A").Find(S_Valeur).Row,
Range("1:1").Find(S_Fond).Column).Address(False, False)
Range(Adresse).value = D_Value
End Function
-----------------------------------

J'essaie ensuite d'appeler ces fonction avec une macro (pour les tester) :

-----------------------------------
Sub GetNumberOfFund()

Dim ad
ad = GetValue("f1c1", "first")

Call SetValue("sec", "InsertData", ad)

End Sub
-----------------------------------

sachant que les chaînes de caractères "f1c1", "sec" se situe dans la
première ligne de ma feuille; "first" et "InsertData" se situent dans la
première colonne de ma feuille.

Lorsque j'exécute la macro je reçois cette erreur

"Variable Objet ou variable de bloc with non définie au niveau de la ligne
en rouge"


Je ne comprends vraiment pas d'où cela vient et cela m'irrite beaucoup !

merci par avance