bonjour à tous,
voilà mon problème : J'ai dans une feuille excel, sur une colonne, une
liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3
etc)
A cette liste dynamique (dynamique car le nombre d'enregistrements peut
varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va
bien pour l'ajuster dynamiquement au nombre d'enregistrement
(=DECALER($B$2;0;0;NBVAL($B:$B)-1) )
Jusque là rien de bien compliqué
maintenant je souhaiterais dans mon vba utiliser cette liste comme un
array. Pour être clair pouvoir extraire une des valeurs de la liste
suivant un index choisi.
Pour ce faire je n'ai trouvé que la solution suivante:
temp = [Nombres]
ReDim VNombres([Nombres].Count)
For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1): Next
autrement dit j'ai copié toutes les données de "Nombres" dans Vnombres
et maintenant je peux acceder à chacune de mes données
ainsi la première donnée = Vnombre(0) ainsi de suite
Ca marche mais je me demande s'il n'y avait pas plus simple pour accéder
à mes données.
bonjour à tous, voilà mon problème : J'ai dans une feuille excel, sur une colonne, un e liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3 etc) A cette liste dynamique (dynamique car le nombre d'enregistrements peut varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va bien pour l'ajuster dynamiquement au nombre d'enregistrement (CALER($B$2;0;0;NBVAL($B:$B)-1) )
Jusque là rien de bien compliqué
maintenant je souhaiterais dans mon vba utiliser cette liste comme un array. Pour être clair pouvoir extraire une des valeurs de la liste suivant un index choisi.
Pour ce faire je n'ai trouvé que la solution suivante:
temp = [Nombres] ReDim VNombres([Nombres].Count) For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1) : Next
autrement dit j'ai copié toutes les données de "Nombres" dans Vnombre s et maintenant je peux acceder à chacune de mes données ainsi la première donnée = Vnombre(0) ainsi de suite
Ca marche mais je me demande s'il n'y avait pas plus simple pour accéde r à mes données.
merci de vos avis d'expert
Bonjour,
temp = [Nombres] --> donne un Array Temp(n,1)
Pourquoi un autre Array Vnombres()?
JB
http://boisgontierjacques.free.fr/
On 20 juin, 10:01, Xavier <Xavierpow...@free.fr> wrote:
bonjour à tous,
voilà mon problème : J'ai dans une feuille excel, sur une colonne, un e
liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3
etc)
A cette liste dynamique (dynamique car le nombre d'enregistrements peut
varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va
bien pour l'ajuster dynamiquement au nombre d'enregistrement
(=DECALER($B$2;0;0;NBVAL($B:$B)-1) )
Jusque là rien de bien compliqué
maintenant je souhaiterais dans mon vba utiliser cette liste comme un
array. Pour être clair pouvoir extraire une des valeurs de la liste
suivant un index choisi.
Pour ce faire je n'ai trouvé que la solution suivante:
temp = [Nombres]
ReDim VNombres([Nombres].Count)
For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1) : Next
autrement dit j'ai copié toutes les données de "Nombres" dans Vnombre s
et maintenant je peux acceder à chacune de mes données
ainsi la première donnée = Vnombre(0) ainsi de suite
Ca marche mais je me demande s'il n'y avait pas plus simple pour accéde r
à mes données.
bonjour à tous, voilà mon problème : J'ai dans une feuille excel, sur une colonne, un e liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3 etc) A cette liste dynamique (dynamique car le nombre d'enregistrements peut varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va bien pour l'ajuster dynamiquement au nombre d'enregistrement (CALER($B$2;0;0;NBVAL($B:$B)-1) )
Jusque là rien de bien compliqué
maintenant je souhaiterais dans mon vba utiliser cette liste comme un array. Pour être clair pouvoir extraire une des valeurs de la liste suivant un index choisi.
Pour ce faire je n'ai trouvé que la solution suivante:
temp = [Nombres] ReDim VNombres([Nombres].Count) For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1) : Next
autrement dit j'ai copié toutes les données de "Nombres" dans Vnombre s et maintenant je peux acceder à chacune de mes données ainsi la première donnée = Vnombre(0) ainsi de suite
Ca marche mais je me demande s'il n'y avait pas plus simple pour accéde r à mes données.
merci de vos avis d'expert
Xavier
salut Jacques
effectivement, mais j'aurais souhaité (pour des raisons purement "esthétiques" le passer en une seule dimension (temp(1) au lieu de temp (1,1)
bonjour à tous, voilà mon problème : J'ai dans une feuille excel, sur une colonne, une liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3 etc) A cette liste dynamique (dynamique car le nombre d'enregistrements peut varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va bien pour l'ajuster dynamiquement au nombre d'enregistrement (ÞCALER($B$2;0;0;NBVAL($B:$B)-1) )
Jusque là rien de bien compliqué
maintenant je souhaiterais dans mon vba utiliser cette liste comme un array. Pour être clair pouvoir extraire une des valeurs de la liste suivant un index choisi.
Pour ce faire je n'ai trouvé que la solution suivante:
temp = [Nombres] ReDim VNombres([Nombres].Count) For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1): Next
autrement dit j'ai copié toutes les données de "Nombres" dans Vnombres et maintenant je peux acceder à chacune de mes données ainsi la première donnée = Vnombre(0) ainsi de suite
Ca marche mais je me demande s'il n'y avait pas plus simple pour accéder à mes données.
merci de vos avis d'expert
salut Jacques
effectivement, mais j'aurais souhaité (pour des raisons purement
"esthétiques" le passer en une seule dimension (temp(1) au lieu de temp
(1,1)
Xavier
JB a écrit :
Bonjour,
temp = [Nombres] --> donne un Array Temp(n,1)
Pourquoi un autre Array Vnombres()?
JB
http://boisgontierjacques.free.fr/
On 20 juin, 10:01, Xavier <Xavierpow...@free.fr> wrote:
bonjour à tous,
voilà mon problème : J'ai dans une feuille excel, sur une colonne, une
liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3
etc)
A cette liste dynamique (dynamique car le nombre d'enregistrements peut
varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va
bien pour l'ajuster dynamiquement au nombre d'enregistrement
(ÞCALER($B$2;0;0;NBVAL($B:$B)-1) )
Jusque là rien de bien compliqué
maintenant je souhaiterais dans mon vba utiliser cette liste comme un
array. Pour être clair pouvoir extraire une des valeurs de la liste
suivant un index choisi.
Pour ce faire je n'ai trouvé que la solution suivante:
temp = [Nombres]
ReDim VNombres([Nombres].Count)
For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1): Next
autrement dit j'ai copié toutes les données de "Nombres" dans Vnombres
et maintenant je peux acceder à chacune de mes données
ainsi la première donnée = Vnombre(0) ainsi de suite
Ca marche mais je me demande s'il n'y avait pas plus simple pour accéder
à mes données.
bonjour à tous, voilà mon problème : J'ai dans une feuille excel, sur une colonne, une liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3 etc) A cette liste dynamique (dynamique car le nombre d'enregistrements peut varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va bien pour l'ajuster dynamiquement au nombre d'enregistrement (ÞCALER($B$2;0;0;NBVAL($B:$B)-1) )
Jusque là rien de bien compliqué
maintenant je souhaiterais dans mon vba utiliser cette liste comme un array. Pour être clair pouvoir extraire une des valeurs de la liste suivant un index choisi.
Pour ce faire je n'ai trouvé que la solution suivante:
temp = [Nombres] ReDim VNombres([Nombres].Count) For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1): Next
autrement dit j'ai copié toutes les données de "Nombres" dans Vnombres et maintenant je peux acceder à chacune de mes données ainsi la première donnée = Vnombre(0) ainsi de suite
Ca marche mais je me demande s'il n'y avait pas plus simple pour accéder à mes données.
merci de vos avis d'expert
JB
a = [A1:H10] ' tableau à 2 dimensions b = Application.Index(a, 2) ' tableau à 1 dimension MsgBox b(1)
> On 20 juin, 10:01, Xavier wrote: >> bonjour à tous, >> voilà mon problème : J'ai dans une feuille excel, sur une colonne, une >> liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3 >> etc) >> A cette liste dynamique (dynamique car le nombre d'enregistrements peu t >> varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va >> bien pour l'ajuster dynamiquement au nombre d'enregistrement >> (CALER($B$2;0;0;NBVAL($B:$B)-1) )
>> Jusque là rien de bien compliqué
>> maintenant je souhaiterais dans mon vba utiliser cette liste comme un >> array. Pour être clair pouvoir extraire une des valeurs de la liste >> suivant un index choisi.
>> Pour ce faire je n'ai trouvé que la solution suivante:
>> temp = [Nombres] >> ReDim VNombres([Nombres].Count) >> For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1): Next
>> autrement dit j'ai copié toutes les données de "Nombres" dans Vnom bres >> et maintenant je peux acceder à chacune de mes données >> ainsi la première donnée = Vnombre(0) ainsi de suite
>> Ca marche mais je me demande s'il n'y avait pas plus simple pour acc éder >> à mes données.
>> merci de vos avis d'expert- Masquer le texte des messages précéden ts -
- Afficher le texte des messages précédents -
a = [A1:H10] ' tableau à 2 dimensions
b = Application.Index(a, 2) ' tableau à 1 dimension
MsgBox b(1)
On 20 juin, 17:09, Xavier <Xavierpow...@free.fr> wrote:
salut Jacques
effectivement, mais j'aurais souhaité (pour des raisons purement
"esthétiques" le passer en une seule dimension (temp(1) au lieu de temp
(1,1)
Xavier
JB a écrit :
> Bonjour,
> temp = [Nombres] --> donne un Array Temp(n,1)
> Pourquoi un autre Array Vnombres()?
> JB
>http://boisgontierjacques.free.fr/
> On 20 juin, 10:01, Xavier <Xavierpow...@free.fr> wrote:
>> bonjour à tous,
>> voilà mon problème : J'ai dans une feuille excel, sur une colonne, une
>> liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3
>> etc)
>> A cette liste dynamique (dynamique car le nombre d'enregistrements peu t
>> varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va
>> bien pour l'ajuster dynamiquement au nombre d'enregistrement
>> (=DECALER($B$2;0;0;NBVAL($B:$B)-1) )
>> Jusque là rien de bien compliqué
>> maintenant je souhaiterais dans mon vba utiliser cette liste comme un
>> array. Pour être clair pouvoir extraire une des valeurs de la liste
>> suivant un index choisi.
>> Pour ce faire je n'ai trouvé que la solution suivante:
>> temp = [Nombres]
>> ReDim VNombres([Nombres].Count)
>> For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1): Next
>> autrement dit j'ai copié toutes les données de "Nombres" dans Vnom bres
>> et maintenant je peux acceder à chacune de mes données
>> ainsi la première donnée = Vnombre(0) ainsi de suite
>> Ca marche mais je me demande s'il n'y avait pas plus simple pour acc éder
>> à mes données.
>> merci de vos avis d'expert- Masquer le texte des messages précéden ts -
> On 20 juin, 10:01, Xavier wrote: >> bonjour à tous, >> voilà mon problème : J'ai dans une feuille excel, sur une colonne, une >> liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3 >> etc) >> A cette liste dynamique (dynamique car le nombre d'enregistrements peu t >> varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va >> bien pour l'ajuster dynamiquement au nombre d'enregistrement >> (CALER($B$2;0;0;NBVAL($B:$B)-1) )
>> Jusque là rien de bien compliqué
>> maintenant je souhaiterais dans mon vba utiliser cette liste comme un >> array. Pour être clair pouvoir extraire une des valeurs de la liste >> suivant un index choisi.
>> Pour ce faire je n'ai trouvé que la solution suivante:
>> temp = [Nombres] >> ReDim VNombres([Nombres].Count) >> For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1): Next
>> autrement dit j'ai copié toutes les données de "Nombres" dans Vnom bres >> et maintenant je peux acceder à chacune de mes données >> ainsi la première donnée = Vnombre(0) ainsi de suite
>> Ca marche mais je me demande s'il n'y avait pas plus simple pour acc éder >> à mes données.
>> merci de vos avis d'expert- Masquer le texte des messages précéden ts -
- Afficher le texte des messages précédents -
Xavier
effectivement si les données sont sur plusieurs lignes et plusieurs colonne ça marche, hélas ce n'est pas mon cas puisque dans les faits mes données sont dans le range [G3:G9]
si je fais a = [G3:G9]
Avec G3=1 ; G4=2; G5=3 ; G6=4; G7=5 ; G8=6; G9=7
b = Application.Index(a, 2) je n'obtiens que la la valeur de G4 (donc B=2) alors que j'aurais souhaité avoir b=(1;2;3;4;5;6;7;8) et donc pouvoir choisir plus simplement l'élément à afficher
Par exemple pour afficher le deuxième élément de la liste j'aurais souhaité faire b(2) et non Application.Index(a, 2) ou a(2,1)
JB a écrit :
a = [A1:H10] ' tableau à 2 dimensions b = Application.Index(a, 2) ' tableau à 1 dimension MsgBox b(1)
effectivement, mais j'aurais souhaité (pour des raisons purement "esthétiques" le passer en une seule dimension (temp(1) au lieu de temp (1,1)
Xavier
JB a écrit :
Bonjour, temp = [Nombres] --> donne un Array Temp(n,1) Pourquoi un autre Array Vnombres()? JB http://boisgontierjacques.free.fr/ On 20 juin, 10:01, Xavier wrote:
bonjour à tous, voilà mon problème : J'ai dans une feuille excel, sur une colonne, une liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3 etc) A cette liste dynamique (dynamique car le nombre d'enregistrements peut varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va bien pour l'ajuster dynamiquement au nombre d'enregistrement (ÞCALER($B$2;0;0;NBVAL($B:$B)-1) ) Jusque là rien de bien compliqué maintenant je souhaiterais dans mon vba utiliser cette liste comme un array. Pour être clair pouvoir extraire une des valeurs de la liste suivant un index choisi. Pour ce faire je n'ai trouvé que la solution suivante: temp = [Nombres] ReDim VNombres([Nombres].Count) For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1): Next autrement dit j'ai copié toutes les données de "Nombres" dans Vnombres et maintenant je peux acceder à chacune de mes données ainsi la première donnée = Vnombre(0) ainsi de suite Ca marche mais je me demande s'il n'y avait pas plus simple pour accéder à mes données. merci de vos avis d'expert- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
effectivement si les données sont sur plusieurs lignes et plusieurs
colonne ça marche,
hélas ce n'est pas mon cas puisque dans les faits mes données sont dans
le range [G3:G9]
si je fais
a = [G3:G9]
Avec G3=1 ; G4=2; G5=3 ; G6=4; G7=5 ; G8=6; G9=7
b = Application.Index(a, 2)
je n'obtiens que la la valeur de G4 (donc B=2) alors que j'aurais
souhaité avoir b=(1;2;3;4;5;6;7;8) et donc pouvoir choisir plus
simplement l'élément à afficher
Par exemple pour afficher le deuxième élément de la liste j'aurais
souhaité faire b(2) et non Application.Index(a, 2) ou a(2,1)
JB a écrit :
a = [A1:H10] ' tableau à 2 dimensions
b = Application.Index(a, 2) ' tableau à 1 dimension
MsgBox b(1)
On 20 juin, 17:09, Xavier <Xavierpow...@free.fr> wrote:
salut Jacques
effectivement, mais j'aurais souhaité (pour des raisons purement
"esthétiques" le passer en une seule dimension (temp(1) au lieu de temp
(1,1)
Xavier
JB a écrit :
Bonjour,
temp = [Nombres] --> donne un Array Temp(n,1)
Pourquoi un autre Array Vnombres()?
JB
http://boisgontierjacques.free.fr/
On 20 juin, 10:01, Xavier <Xavierpow...@free.fr> wrote:
bonjour à tous,
voilà mon problème : J'ai dans une feuille excel, sur une colonne, une
liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3
etc)
A cette liste dynamique (dynamique car le nombre d'enregistrements peut
varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va
bien pour l'ajuster dynamiquement au nombre d'enregistrement
(ÞCALER($B$2;0;0;NBVAL($B:$B)-1) )
Jusque là rien de bien compliqué
maintenant je souhaiterais dans mon vba utiliser cette liste comme un
array. Pour être clair pouvoir extraire une des valeurs de la liste
suivant un index choisi.
Pour ce faire je n'ai trouvé que la solution suivante:
temp = [Nombres]
ReDim VNombres([Nombres].Count)
For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1): Next
autrement dit j'ai copié toutes les données de "Nombres" dans Vnombres
et maintenant je peux acceder à chacune de mes données
ainsi la première donnée = Vnombre(0) ainsi de suite
Ca marche mais je me demande s'il n'y avait pas plus simple pour accéder
à mes données.
merci de vos avis d'expert- Masquer le texte des messages précédents -
effectivement si les données sont sur plusieurs lignes et plusieurs colonne ça marche, hélas ce n'est pas mon cas puisque dans les faits mes données sont dans le range [G3:G9]
si je fais a = [G3:G9]
Avec G3=1 ; G4=2; G5=3 ; G6=4; G7=5 ; G8=6; G9=7
b = Application.Index(a, 2) je n'obtiens que la la valeur de G4 (donc B=2) alors que j'aurais souhaité avoir b=(1;2;3;4;5;6;7;8) et donc pouvoir choisir plus simplement l'élément à afficher
Par exemple pour afficher le deuxième élément de la liste j'aurais souhaité faire b(2) et non Application.Index(a, 2) ou a(2,1)
JB a écrit :
a = [A1:H10] ' tableau à 2 dimensions b = Application.Index(a, 2) ' tableau à 1 dimension MsgBox b(1)
effectivement, mais j'aurais souhaité (pour des raisons purement "esthétiques" le passer en une seule dimension (temp(1) au lieu de temp (1,1)
Xavier
JB a écrit :
Bonjour, temp = [Nombres] --> donne un Array Temp(n,1) Pourquoi un autre Array Vnombres()? JB http://boisgontierjacques.free.fr/ On 20 juin, 10:01, Xavier wrote:
bonjour à tous, voilà mon problème : J'ai dans une feuille excel, sur une colonne, une liste dynamique de valeur (ex: en B2 j'ai 1 , en B3 j'ai 2, en B4 j'ai 3 etc) A cette liste dynamique (dynamique car le nombre d'enregistrements peut varier)j'ai affectée affecté un nom "Nombres" avec la formule qui va bien pour l'ajuster dynamiquement au nombre d'enregistrement (ÞCALER($B$2;0;0;NBVAL($B:$B)-1) ) Jusque là rien de bien compliqué maintenant je souhaiterais dans mon vba utiliser cette liste comme un array. Pour être clair pouvoir extraire une des valeurs de la liste suivant un index choisi. Pour ce faire je n'ai trouvé que la solution suivante: temp = [Nombres] ReDim VNombres([Nombres].Count) For i = 0 To [Nombres].Count: VNombres(i) = temp(i + 1, 1): Next autrement dit j'ai copié toutes les données de "Nombres" dans Vnombres et maintenant je peux acceder à chacune de mes données ainsi la première donnée = Vnombre(0) ainsi de suite Ca marche mais je me demande s'il n'y avait pas plus simple pour accéder à mes données. merci de vos avis d'expert- Masquer le texte des messages précédents -