j'ai d=E9fini dans un module une fonction en VBA qui =E9quivaut =E0 un INDEX
- EQUIV dans un tableau "valeurs" :
Public Function tauxA(Col, Lig As String) As Double
tauxA =3D Application.Index(Range("valeurs"), Application.Match(Col,
Range("colonne"), 0), Application.Match(Lig, Range("ligne"), 0))
End Function
malheureusement, quand j'utilise cette fonction dans une cellule et
qu'ensuite les donn=E9es du tableau changent, la valeur de la cellule
n'est pas rafraichie ...
il me fa
Sub RafraichirFormules()
For Each cell In ActiveSheet.UsedRange
cell.Formula =3D cell.Formula
Next cell
-Je suis pas sûr que cette fonction soit très utile. Elle doit être équivalente à Recherchev() tout en étant moins performante. -C'est Application.Volatile en début de fonction qui provoque la Maj automatique
JB On 20 août, 21:19, Mat wrote:
bonjour à tous,
j'ai défini dans un module une fonction en VBA qui équivaut à un IN DEX - EQUIV dans un tableau "valeurs" :
Public Function tauxA(Col, Lig As String) As Double tauxA = Application.Index(Range("valeurs"), Application.Match(Col, Range("colonne"), 0), Application.Match(Lig, Range("ligne"), 0)) End Function
malheureusement, quand j'utilise cette fonction dans une cellule et qu'ensuite les données du tableau changent, la valeur de la cellule n'est pas rafraichie ... il me fa
Sub RafraichirFormules() For Each cell In ActiveSheet.UsedRange cell.Formula = cell.Formula Next cell
End Sub
Bonsoir,
-Je suis pas sûr que cette fonction soit très utile. Elle doit être
équivalente à Recherchev() tout en étant moins performante.
-C'est Application.Volatile en début de fonction qui provoque la Maj
automatique
JB
On 20 août, 21:19, Mat <goo.10.mathi...@spamgourmet.com> wrote:
bonjour à tous,
j'ai défini dans un module une fonction en VBA qui équivaut à un IN DEX
- EQUIV dans un tableau "valeurs" :
Public Function tauxA(Col, Lig As String) As Double
tauxA = Application.Index(Range("valeurs"), Application.Match(Col,
Range("colonne"), 0), Application.Match(Lig, Range("ligne"), 0))
End Function
malheureusement, quand j'utilise cette fonction dans une cellule et
qu'ensuite les données du tableau changent, la valeur de la cellule
n'est pas rafraichie ...
il me fa
Sub RafraichirFormules()
For Each cell In ActiveSheet.UsedRange
cell.Formula = cell.Formula
Next cell
-Je suis pas sûr que cette fonction soit très utile. Elle doit être équivalente à Recherchev() tout en étant moins performante. -C'est Application.Volatile en début de fonction qui provoque la Maj automatique
JB On 20 août, 21:19, Mat wrote:
bonjour à tous,
j'ai défini dans un module une fonction en VBA qui équivaut à un IN DEX - EQUIV dans un tableau "valeurs" :
Public Function tauxA(Col, Lig As String) As Double tauxA = Application.Index(Range("valeurs"), Application.Match(Col, Range("colonne"), 0), Application.Match(Lig, Range("ligne"), 0)) End Function
malheureusement, quand j'utilise cette fonction dans une cellule et qu'ensuite les données du tableau changent, la valeur de la cellule n'est pas rafraichie ... il me fa
Sub RafraichirFormules() For Each cell In ActiveSheet.UsedRange cell.Formula = cell.Formula Next cell
End Sub
Mat
bonsoir JB,
-C'est Application.Volatile en début de fonction qui provoque la Maj automatique merci pour ta réponse ! ça marche impeccable !
(je n'avais pas réussi à trouver dans les archives mais avec le mot clef maintenant je trouve les messages ...)
-Je suis pas sûr que cette fonction soit très utile. Elle doit être équivalente à Recherchev() tout en étant moins performante.
non, en fait c'est une rechercheVH ! pour remonter une valeur d'un tableau alors que mes paramètres sont les noms des colonnes et ligne (pas leur indice) as-tu là aussi une solution élégante ?
Mat
bonsoir JB,
-C'est Application.Volatile en début de fonction qui provoque la Maj
automatique
merci pour ta réponse ! ça marche impeccable !
(je n'avais pas réussi à trouver dans les archives
mais avec le mot clef maintenant je trouve les messages ...)
-Je suis pas sûr que cette fonction soit très utile. Elle doit être
équivalente à Recherchev() tout en étant moins performante.
non, en fait c'est une rechercheVH ! pour remonter une valeur d'un
tableau alors que mes paramètres sont les noms des colonnes et ligne
(pas leur indice)
as-tu là aussi une solution élégante ?
-C'est Application.Volatile en début de fonction qui provoque la Maj automatique merci pour ta réponse ! ça marche impeccable !
(je n'avais pas réussi à trouver dans les archives mais avec le mot clef maintenant je trouve les messages ...)
-Je suis pas sûr que cette fonction soit très utile. Elle doit être équivalente à Recherchev() tout en étant moins performante.
non, en fait c'est une rechercheVH ! pour remonter une valeur d'un tableau alors que mes paramètres sont les noms des colonnes et ligne (pas leur indice) as-tu là aussi une solution élégante ?
Mat
Trirème
Bonsoir,
as-tu là aussi une solution élégante ? Rassure toi, je fais pareil mais sans VBA. La formule est donc plus longue
Avec "valeurs" étant un nom dynamique et "colonne" et "ligne" des noms dynamiques basés sur "valeurs" : colonneÞCALER(valeurs;;;;1) et ligneÞCALER(valeurs;;;1;)
À l'usage il faut éviter les doublons dans ces marges définies.
Dans : Public Function tauxA(Col, Lig As String) As Double ne devrais-tu pas définir Col as String ?
Cordialement, Trirème
bonsoir JB,
-C'est Application.Volatile en début de fonction qui provoque la Maj automatique merci pour ta réponse ! ça marche impeccable !
(je n'avais pas réussi à trouver dans les archives mais avec le mot clef maintenant je trouve les messages ...)
-Je suis pas sûr que cette fonction soit très utile. Elle doit être équivalente à Recherchev() tout en étant moins performante.
non, en fait c'est une rechercheVH ! pour remonter une valeur d'un tableau alors que mes paramètres sont les noms des colonnes et ligne (pas leur indice)
Mat
Bonsoir,
as-tu là aussi une solution élégante ?
Rassure toi, je fais pareil mais sans VBA. La formule est donc plus longue
Avec "valeurs" étant un nom dynamique et "colonne" et "ligne" des noms dynamiques basés
sur "valeurs" : colonneÞCALER(valeurs;;;;1) et ligneÞCALER(valeurs;;;1;)
À l'usage il faut éviter les doublons dans ces marges définies.
Dans : Public Function tauxA(Col, Lig As String) As Double
ne devrais-tu pas définir Col as String ?
Cordialement,
Trirème
bonsoir JB,
-C'est Application.Volatile en début de fonction qui provoque la Maj
automatique
merci pour ta réponse ! ça marche impeccable !
(je n'avais pas réussi à trouver dans les archives
mais avec le mot clef maintenant je trouve les messages ...)
-Je suis pas sûr que cette fonction soit très utile. Elle doit être
équivalente à Recherchev() tout en étant moins performante.
non, en fait c'est une rechercheVH ! pour remonter une valeur d'un
tableau alors que mes paramètres sont les noms des colonnes et ligne
(pas leur indice)
as-tu là aussi une solution élégante ? Rassure toi, je fais pareil mais sans VBA. La formule est donc plus longue
Avec "valeurs" étant un nom dynamique et "colonne" et "ligne" des noms dynamiques basés sur "valeurs" : colonneÞCALER(valeurs;;;;1) et ligneÞCALER(valeurs;;;1;)
À l'usage il faut éviter les doublons dans ces marges définies.
Dans : Public Function tauxA(Col, Lig As String) As Double ne devrais-tu pas définir Col as String ?
Cordialement, Trirème
bonsoir JB,
-C'est Application.Volatile en début de fonction qui provoque la Maj automatique merci pour ta réponse ! ça marche impeccable !
(je n'avais pas réussi à trouver dans les archives mais avec le mot clef maintenant je trouve les messages ...)
-Je suis pas sûr que cette fonction soit très utile. Elle doit être équivalente à Recherchev() tout en étant moins performante.
non, en fait c'est une rechercheVH ! pour remonter une valeur d'un tableau alors que mes paramètres sont les noms des colonnes et ligne (pas leur indice)
Mat
Mat
bonjour Trirème,
as-tu là aussi une solution élégante ? Rassure toi, je fais pareil mais sans VBA. La formule est donc plus longue
Avec "valeurs" étant un nom dynamique et "colonne" et "ligne" des noms dynamiques basés sur "valeurs" : colonneÞCALER(valeurs;;;;1) et ligneÞCALER(valeur s;;;1;)
À l'usage il faut éviter les doublons dans ces marges définies. oui, c'est obligé
Dans : Public Function tauxA(Col, Lig As String) As Double ne devrais-tu pas définir Col as String ? cette syntaxe ne déclare pas Col dans la foulée ?
Mat
bonjour Trirème,
as-tu là aussi une solution élégante ?
Rassure toi, je fais pareil mais sans VBA. La formule est donc plus longue
Avec "valeurs" étant un nom dynamique et "colonne" et "ligne" des noms dynamiques basés
sur "valeurs" : colonne=DECALER(valeurs;;;;1) et ligne=DECALER(valeur s;;;1;)
À l'usage il faut éviter les doublons dans ces marges définies.
oui, c'est obligé
Dans : Public Function tauxA(Col, Lig As String) As Double
ne devrais-tu pas définir Col as String ?
cette syntaxe ne déclare pas Col dans la foulée ?
as-tu là aussi une solution élégante ? Rassure toi, je fais pareil mais sans VBA. La formule est donc plus longue
Avec "valeurs" étant un nom dynamique et "colonne" et "ligne" des noms dynamiques basés sur "valeurs" : colonneÞCALER(valeurs;;;;1) et ligneÞCALER(valeur s;;;1;)
À l'usage il faut éviter les doublons dans ces marges définies. oui, c'est obligé
Dans : Public Function tauxA(Col, Lig As String) As Double ne devrais-tu pas définir Col as String ? cette syntaxe ne déclare pas Col dans la foulée ?
Mat
papou
Bonjour Mat Je me permets de répondre pour Trirème ;-)
Dans : Public Function tauxA(Col, Lig As String) As Double ne devrais-tu pas définir Col as String ? cette syntaxe ne déclare pas Col dans la foulée ?
Non, en VBA la syntaxe telle quelle déclare Col en tant que Variant par défaut. Il te faut donc stipuler : Public Function taux(Col As String,Lig As String) As Double
Cordialement Pascal
"Mat" a écrit dans le message de news:
bonjour Trirème,
as-tu là aussi une solution élégante ? Rassure toi, je fais pareil mais sans VBA. La formule est donc plus longue
Avec "valeurs" étant un nom dynamique et "colonne" et "ligne" des noms dynamiques basés sur "valeurs" : colonneÞCALER(valeurs;;;;1) et ligneÞCALER(valeurs;;;1;)
À l'usage il faut éviter les doublons dans ces marges définies. oui, c'est obligé
Dans : Public Function tauxA(Col, Lig As String) As Double ne devrais-tu pas définir Col as String ? cette syntaxe ne déclare pas Col dans la foulée ?
Mat
Bonjour Mat
Je me permets de répondre pour Trirème ;-)
Dans : Public Function tauxA(Col, Lig As String) As Double
ne devrais-tu pas définir Col as String ?
cette syntaxe ne déclare pas Col dans la foulée ?
Non, en VBA la syntaxe telle quelle déclare Col en tant que Variant par
défaut.
Il te faut donc stipuler :
Public Function taux(Col As String,Lig As String) As Double
Cordialement
Pascal
"Mat" <goo.10.mathieur@spamgourmet.com> a écrit dans le message de news:
1187674239.091236.105830@w3g2000hsg.googlegroups.com...
bonjour Trirème,
as-tu là aussi une solution élégante ?
Rassure toi, je fais pareil mais sans VBA. La formule est donc plus longue
Avec "valeurs" étant un nom dynamique et "colonne" et "ligne" des noms
dynamiques basés
sur "valeurs" : colonneÞCALER(valeurs;;;;1) et
ligneÞCALER(valeurs;;;1;)
À l'usage il faut éviter les doublons dans ces marges définies.
oui, c'est obligé
Dans : Public Function tauxA(Col, Lig As String) As Double
ne devrais-tu pas définir Col as String ?
cette syntaxe ne déclare pas Col dans la foulée ?
Bonjour Mat Je me permets de répondre pour Trirème ;-)
Dans : Public Function tauxA(Col, Lig As String) As Double ne devrais-tu pas définir Col as String ? cette syntaxe ne déclare pas Col dans la foulée ?
Non, en VBA la syntaxe telle quelle déclare Col en tant que Variant par défaut. Il te faut donc stipuler : Public Function taux(Col As String,Lig As String) As Double
Cordialement Pascal
"Mat" a écrit dans le message de news:
bonjour Trirème,
as-tu là aussi une solution élégante ? Rassure toi, je fais pareil mais sans VBA. La formule est donc plus longue
Avec "valeurs" étant un nom dynamique et "colonne" et "ligne" des noms dynamiques basés sur "valeurs" : colonneÞCALER(valeurs;;;;1) et ligneÞCALER(valeurs;;;1;)
À l'usage il faut éviter les doublons dans ces marges définies. oui, c'est obligé
Dans : Public Function tauxA(Col, Lig As String) As Double ne devrais-tu pas définir Col as String ? cette syntaxe ne déclare pas Col dans la foulée ?