Pour une fonction appel=E9e =E0 partir d'une feuille de calcul avec
comme argument une plage de cellules, est il possible de recevoir
directement cette plage dans un tableau (d'entier par exemple) sans
passer par le type variant.
Je m'explique :
Function zaza(UnePlage)
.=2E.
Ici UnePlage est un variant/object/range. Pour l'avoir sous la forme
d'un tableau (variant) je peux faire
Dim UnTableau
UnTableau=3DUnePlage
J'aimerai pouvoir dimensionner UnTableau ou UnePlage directement en
tableau d'entier, sans avoir =E0 balayer UnePlage avec une boucle.
Function zaza(UnePlage() as integer)
Ou
Function zaza(UnePlage)
Dim UnTableau() as integer
UnTableau=3DUnePlage
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JB
Bonjour,
http://cjoint.com/?gCnGEATlTN
Function RechTous(v, champRech As Range, ChampRetour As Range) a = champRech ' transfert de la plage dans le tableau a temp = "" For i = 1 To champRech.Count If a(i, 1) = v Then temp = temp & ChampRetour(i) & " " End If Next i RechTous = temp End Function
Cordialement JB
Bonjour,
Pour une fonction appelée à partir d'une feuille de calcul avec comme argument une plage de cellules, est il possible de recevoir directement cette plage dans un tableau (d'entier par exemple) sans passer par le type variant.
Je m'explique :
Function zaza(UnePlage) ... Ici UnePlage est un variant/object/range. Pour l'avoir sous la forme d'un tableau (variant) je peux faire
Dim UnTableau UnTableau=UnePlage
J'aimerai pouvoir dimensionner UnTableau ou UnePlage directement en tableau d'entier, sans avoir à balayer UnePlage avec une boucle.
Function zaza(UnePlage() as integer) Ou Function zaza(UnePlage) Dim UnTableau() as integer UnTableau=UnePlage
Aucun des 2 ne fonctionnent.
Merci de votre aide.
Bonjour,
http://cjoint.com/?gCnGEATlTN
Function RechTous(v, champRech As Range, ChampRetour As Range)
a = champRech ' transfert de la plage dans le tableau a
temp = ""
For i = 1 To champRech.Count
If a(i, 1) = v Then
temp = temp & ChampRetour(i) & " "
End If
Next i
RechTous = temp
End Function
Cordialement JB
Bonjour,
Pour une fonction appelée à partir d'une feuille de calcul avec
comme argument une plage de cellules, est il possible de recevoir
directement cette plage dans un tableau (d'entier par exemple) sans
passer par le type variant.
Je m'explique :
Function zaza(UnePlage)
...
Ici UnePlage est un variant/object/range. Pour l'avoir sous la forme
d'un tableau (variant) je peux faire
Dim UnTableau
UnTableau=UnePlage
J'aimerai pouvoir dimensionner UnTableau ou UnePlage directement en
tableau d'entier, sans avoir à balayer UnePlage avec une boucle.
Function zaza(UnePlage() as integer)
Ou
Function zaza(UnePlage)
Dim UnTableau() as integer
UnTableau=UnePlage
Function RechTous(v, champRech As Range, ChampRetour As Range) a = champRech ' transfert de la plage dans le tableau a temp = "" For i = 1 To champRech.Count If a(i, 1) = v Then temp = temp & ChampRetour(i) & " " End If Next i RechTous = temp End Function
Cordialement JB
Bonjour,
Pour une fonction appelée à partir d'une feuille de calcul avec comme argument une plage de cellules, est il possible de recevoir directement cette plage dans un tableau (d'entier par exemple) sans passer par le type variant.
Je m'explique :
Function zaza(UnePlage) ... Ici UnePlage est un variant/object/range. Pour l'avoir sous la forme d'un tableau (variant) je peux faire
Dim UnTableau UnTableau=UnePlage
J'aimerai pouvoir dimensionner UnTableau ou UnePlage directement en tableau d'entier, sans avoir à balayer UnePlage avec une boucle.
Function zaza(UnePlage() as integer) Ou Function zaza(UnePlage) Dim UnTableau() as integer UnTableau=UnePlage
Aucun des 2 ne fonctionnent.
Merci de votre aide.
Sylfanie
Bonjour,
...
Merci, mais n'existe-il pas de solution directe, sans avoir a balayé le range avec une boucle ?
Bonjour,
...
Merci, mais n'existe-il pas de solution directe, sans avoir a balayé
le range avec une boucle ?
a = champRech transfère le champ ChampRech directement dans le tableau a()
JB
Bonjour,
...
Merci, mais n'existe-il pas de solution directe, sans avoir a balayé le range avec une boucle ?
Sylfanie
a = champRech transfère le champ ChampRech directement dans le tableau a()
Encore une fois merci.
Mais il semble que vous ne prenez pas le temps de lire les messages. J'indique dans mon premier post que je connais ces solutions, d'affectation de ou de boucle.
Ma question est champRech peut-il être directement un tableau d'entier ou de double, plutôt qu'un objet Range ?
Merci de votre aide.
a = champRech transfère le champ ChampRech directement dans le
tableau a()
Encore une fois merci.
Mais il semble que vous ne prenez pas le temps de lire les messages.
J'indique dans mon premier post que je connais ces solutions,
d'affectation de ou de boucle.
Ma question est champRech peut-il être directement un tableau d'entier
ou de double, plutôt qu'un objet Range ?
a = champRech transfère le champ ChampRech directement dans le tableau a()
Encore une fois merci.
Mais il semble que vous ne prenez pas le temps de lire les messages. J'indique dans mon premier post que je connais ces solutions, d'affectation de ou de boucle.
Ma question est champRech peut-il être directement un tableau d'entier ou de double, plutôt qu'un objet Range ?
Merci de votre aide.
JB
Sub essai() Dim temp(10) As Double For i = 1 To 10 temp(i) = Rnd Next i Call tri(temp, 1, 10) For i = 1 To 10: MsgBox temp(i): Next End Sub
Sub tri(a() As Double, gauc, droi) ' Quick sort ref = a((gauc + droi) 2) g = gauc: d = droi Do Do While a(g) < ref: g = g + 1: Loop Do While ref < a(d): d = d - 1: Loop If g <= d Then temp = a(g): a(g) = a(d): a(d) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call tri(a, g, droi) If gauc < d Then Call tri(a, gauc, d) End Sub
JB
a = champRech transfère le champ ChampRech directement dans le tableau a()
Encore une fois merci.
Mais il semble que vous ne prenez pas le temps de lire les messages. J'indique dans mon premier post que je connais ces solutions, d'affectation de ou de boucle.
Ma question est champRech peut-il être directement un tableau d'entier ou de double, plutôt qu'un objet Range ?
Merci de votre aide.
Sub essai()
Dim temp(10) As Double
For i = 1 To 10
temp(i) = Rnd
Next i
Call tri(temp, 1, 10)
For i = 1 To 10: MsgBox temp(i): Next
End Sub
Sub tri(a() As Double, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
a = champRech transfère le champ ChampRech directement dans le
tableau a()
Encore une fois merci.
Mais il semble que vous ne prenez pas le temps de lire les messages.
J'indique dans mon premier post que je connais ces solutions,
d'affectation de ou de boucle.
Ma question est champRech peut-il être directement un tableau d'entier
ou de double, plutôt qu'un objet Range ?
Sub essai() Dim temp(10) As Double For i = 1 To 10 temp(i) = Rnd Next i Call tri(temp, 1, 10) For i = 1 To 10: MsgBox temp(i): Next End Sub
Sub tri(a() As Double, gauc, droi) ' Quick sort ref = a((gauc + droi) 2) g = gauc: d = droi Do Do While a(g) < ref: g = g + 1: Loop Do While ref < a(d): d = d - 1: Loop If g <= d Then temp = a(g): a(g) = a(d): a(d) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call tri(a, g, droi) If gauc < d Then Call tri(a, gauc, d) End Sub
JB
a = champRech transfère le champ ChampRech directement dans le tableau a()
Encore une fois merci.
Mais il semble que vous ne prenez pas le temps de lire les messages. J'indique dans mon premier post que je connais ces solutions, d'affectation de ou de boucle.
Ma question est champRech peut-il être directement un tableau d'entier ou de double, plutôt qu'un objet Range ?
Merci de votre aide.
Sylfanie
Sub essai()
Merci de votre réponse.
Ma question, comme je l'ai précisé dans mon premier post porte sur l'appel dune fonction à partir d'une feuille de calcul pas d'une macro.
Est-il possible de recevoir en argument d'une fonction appelée à partir d'une feuille de calcul une plage de cellule dans un tableau d'entier ou de double ?
Merci de votre aide.
Sub essai()
Merci de votre réponse.
Ma question, comme je l'ai précisé dans mon premier post porte sur
l'appel dune fonction à partir d'une feuille de calcul pas d'une
macro.
Est-il possible de recevoir en argument d'une fonction appelée à
partir d'une feuille de calcul une plage de cellule dans un tableau
d'entier ou de double ?
Ma question, comme je l'ai précisé dans mon premier post porte sur l'appel dune fonction à partir d'une feuille de calcul pas d'une macro.
Est-il possible de recevoir en argument d'une fonction appelée à partir d'une feuille de calcul une plage de cellule dans un tableau d'entier ou de double ?
Merci de votre aide.
JB
Le champ reçu en argument peut être traité directement comme un tableau (peu performant).Il est préférable de transférer dans un tableau en MC.
http://cjoint.com/?gDtRtaVxdO.
Function TotalChamp(champ As Range) temp = 0 For i = 1 To champ.Count temp = temp + champ(i) Next i TotalChamp = temp End Function
JB
Sub essai()
Merci de votre réponse.
Ma question, comme je l'ai précisé dans mon premier post porte sur l'appel dune fonction à partir d'une feuille de calcul pas d'une macro.
Est-il possible de recevoir en argument d'une fonction appelée à partir d'une feuille de calcul une plage de cellule dans un tableau d'entier ou de double ?
Merci de votre aide.
Le champ reçu en argument peut être traité directement comme un
tableau (peu performant).Il est préférable de transférer dans un
tableau en MC.
http://cjoint.com/?gDtRtaVxdO.
Function TotalChamp(champ As Range)
temp = 0
For i = 1 To champ.Count
temp = temp + champ(i)
Next i
TotalChamp = temp
End Function
JB
Sub essai()
Merci de votre réponse.
Ma question, comme je l'ai précisé dans mon premier post porte sur
l'appel dune fonction à partir d'une feuille de calcul pas d'une
macro.
Est-il possible de recevoir en argument d'une fonction appelée à
partir d'une feuille de calcul une plage de cellule dans un tableau
d'entier ou de double ?
Le champ reçu en argument peut être traité directement comme un tableau (peu performant).Il est préférable de transférer dans un tableau en MC.
http://cjoint.com/?gDtRtaVxdO.
Function TotalChamp(champ As Range) temp = 0 For i = 1 To champ.Count temp = temp + champ(i) Next i TotalChamp = temp End Function
JB
Sub essai()
Merci de votre réponse.
Ma question, comme je l'ai précisé dans mon premier post porte sur l'appel dune fonction à partir d'une feuille de calcul pas d'une macro.
Est-il possible de recevoir en argument d'une fonction appelée à partir d'une feuille de calcul une plage de cellule dans un tableau d'entier ou de double ?
Merci de votre aide.
Sylfanie
Le champ reçu en argument peut être traité directement comme un tableau (peu performant).Il est préférable de transférer dans un tableau en MC.
Oui effectivement car ce n'est pas un tableau mais un objet range. Pour être plus performant, il faudrait le recevoir en format d'entier ou de double.
Est-ce possible ?
Le champ reçu en argument peut être traité directement comme un
tableau (peu performant).Il est préférable de transférer dans un
tableau en MC.
Oui effectivement car ce n'est pas un tableau mais un objet range. Pour
être plus performant, il faudrait le recevoir en format d'entier ou de
double.