bonjour,
je ne suis pas familier des tableaux, voici mon problème:
j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de
lignes sont remplies, nombre variable (p.ex. 1000).
Je veux récupérer dans un tableau les valeurs contenues dans cette plage.
J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma
fonction est employée une fois sur chacune des 1000 lignes.... Je pense qu'il
y a moyen de le faire en une seule instruction du genre: monTableau =
maPlage, mais je ne trouve pas la syntaxe.
Qui peut m'aider? D'avance merci.
Bourby
Voici mon code:
Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long
Set rgREF = [numéro]
nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1
ReDim Tableau(nbLignes)
For i = 1 To nbLignes
Tableau(i) = CStr(rgREF(i).Value)
Next i
(ces 3 dernières lignes marchent, mais ça prend trop de temps et je voudrais
les remplacer par quelque chose du genre:
Set rgREF = Range(rgREF(1), rgREF(nbLignes))
Tableau() = rgREF()
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
Pierre Fauconnier
Bonjour
y a moyen de le faire en une seule instruction du genre: monTableau > maPlage, mais je ne trouve pas la syntaxe.
ET pourtant ... Dim Tableau Tableau = range("a1:a65536")
Cela étant, tu aurais intérêt à trouver une plage plus petite, car je suppose que ta feuille n'est pas remplie jusqu'à la ligne 65536... Dès lors, je suggère plutôt Tableau = range("a1:&" & range("a65536").end(xlup).row)
Cela convient-il?
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Bourby" a écrit dans le message de news:
bonjour, je ne suis pas familier des tableaux, voici mon problème: j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de lignes sont remplies, nombre variable (p.ex. 1000). Je veux récupérer dans un tableau les valeurs contenues dans cette plage. J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma fonction est employée une fois sur chacune des 1000 lignes.... Je pense qu'il
y a moyen de le faire en une seule instruction du genre: monTableau > maPlage, mais je ne trouve pas la syntaxe. Qui peut m'aider? D'avance merci.
Bourby
Voici mon code: Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long Set rgREF = [numéro] nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1 ReDim Tableau(nbLignes) For i = 1 To nbLignes Tableau(i) = CStr(rgREF(i).Value) Next i (ces 3 dernières lignes marchent, mais ça prend trop de temps et je voudrais
les remplacer par quelque chose du genre: Set rgREF = Range(rgREF(1), rgREF(nbLignes)) Tableau() = rgREF()
Bonjour
y a moyen de le faire en une seule instruction du genre: monTableau > maPlage, mais je ne trouve pas la syntaxe.
ET pourtant ...
Dim Tableau
Tableau = range("a1:a65536")
Cela étant, tu aurais intérêt à trouver une plage plus petite, car je
suppose que ta feuille n'est pas remplie jusqu'à la ligne 65536...
Dès lors, je suggère plutôt
Tableau = range("a1:&" & range("a65536").end(xlup).row)
Cela convient-il?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Bourby" <Bourby@discussions.microsoft.com> a écrit dans le message de
news:E5864E71-C36D-462B-9F61-023A9E28F88C@microsoft.com...
bonjour,
je ne suis pas familier des tableaux, voici mon problème:
j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de
lignes sont remplies, nombre variable (p.ex. 1000).
Je veux récupérer dans un tableau les valeurs contenues dans cette plage.
J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma
fonction est employée une fois sur chacune des 1000 lignes.... Je pense
qu'il
y a moyen de le faire en une seule instruction du genre: monTableau > maPlage, mais je ne trouve pas la syntaxe.
Qui peut m'aider? D'avance merci.
Bourby
Voici mon code:
Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long
Set rgREF = [numéro]
nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1
ReDim Tableau(nbLignes)
For i = 1 To nbLignes
Tableau(i) = CStr(rgREF(i).Value)
Next i
(ces 3 dernières lignes marchent, mais ça prend trop de temps et je
voudrais
les remplacer par quelque chose du genre:
Set rgREF = Range(rgREF(1), rgREF(nbLignes))
Tableau() = rgREF()
y a moyen de le faire en une seule instruction du genre: monTableau > maPlage, mais je ne trouve pas la syntaxe.
ET pourtant ... Dim Tableau Tableau = range("a1:a65536")
Cela étant, tu aurais intérêt à trouver une plage plus petite, car je suppose que ta feuille n'est pas remplie jusqu'à la ligne 65536... Dès lors, je suggère plutôt Tableau = range("a1:&" & range("a65536").end(xlup).row)
Cela convient-il?
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Bourby" a écrit dans le message de news:
bonjour, je ne suis pas familier des tableaux, voici mon problème: j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de lignes sont remplies, nombre variable (p.ex. 1000). Je veux récupérer dans un tableau les valeurs contenues dans cette plage. J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma fonction est employée une fois sur chacune des 1000 lignes.... Je pense qu'il
y a moyen de le faire en une seule instruction du genre: monTableau > maPlage, mais je ne trouve pas la syntaxe. Qui peut m'aider? D'avance merci.
Bourby
Voici mon code: Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long Set rgREF = [numéro] nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1 ReDim Tableau(nbLignes) For i = 1 To nbLignes Tableau(i) = CStr(rgREF(i).Value) Next i (ces 3 dernières lignes marchent, mais ça prend trop de temps et je voudrais
les remplacer par quelque chose du genre: Set rgREF = Range(rgREF(1), rgREF(nbLignes)) Tableau() = rgREF()
Bourby
bonjour Pierre et merci de m'avoir consacré du temps;
ce qu'il me faut exactement, c'est, pour i = 1 à ...End(xlUp).Row : Tableau(i) = CStr(rgREF(i).Value)
Et justement, comme dans ta suggestion, avec une seule instruction,j'arrive uniquement à récupérer une plage; tandis qu'il me faudrait un tableau de strings....
Que puis-je faire?
D'avance merci
Bourby
"Pierre Fauconnier" wrote:
Bonjour
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe.
ET pourtant ... Dim Tableau Tableau = range("a1:a65536")
Cela étant, tu aurais intérêt à trouver une plage plus petite, car je suppose que ta feuille n'est pas remplie jusqu'à la ligne 65536... Dès lors, je suggère plutôt Tableau = range("a1:&" & range("a65536").end(xlup).row)
Cela convient-il?
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Bourby" a écrit dans le message de news:
bonjour, je ne suis pas familier des tableaux, voici mon problème: j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de lignes sont remplies, nombre variable (p.ex. 1000). Je veux récupérer dans un tableau les valeurs contenues dans cette plage. J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma fonction est employée une fois sur chacune des 1000 lignes.... Je pense qu'il
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe. Qui peut m'aider? D'avance merci.
Bourby
Voici mon code: Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long Set rgREF = [numéro] nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1 ReDim Tableau(nbLignes) For i = 1 To nbLignes Tableau(i) = CStr(rgREF(i).Value) Next i (ces 3 dernières lignes marchent, mais ça prend trop de temps et je voudrais
les remplacer par quelque chose du genre: Set rgREF = Range(rgREF(1), rgREF(nbLignes)) Tableau() = rgREF()
bonjour Pierre et merci de m'avoir consacré du temps;
ce qu'il me faut exactement, c'est, pour i = 1 à ...End(xlUp).Row :
Tableau(i) = CStr(rgREF(i).Value)
Et justement, comme dans ta suggestion, avec une seule instruction,j'arrive
uniquement à récupérer une plage; tandis qu'il me faudrait un tableau de
strings....
Que puis-je faire?
D'avance merci
Bourby
"Pierre Fauconnier" wrote:
Bonjour
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe.
ET pourtant ...
Dim Tableau
Tableau = range("a1:a65536")
Cela étant, tu aurais intérêt à trouver une plage plus petite, car je
suppose que ta feuille n'est pas remplie jusqu'à la ligne 65536...
Dès lors, je suggère plutôt
Tableau = range("a1:&" & range("a65536").end(xlup).row)
Cela convient-il?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Bourby" <Bourby@discussions.microsoft.com> a écrit dans le message de
news:E5864E71-C36D-462B-9F61-023A9E28F88C@microsoft.com...
bonjour,
je ne suis pas familier des tableaux, voici mon problème:
j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de
lignes sont remplies, nombre variable (p.ex. 1000).
Je veux récupérer dans un tableau les valeurs contenues dans cette plage.
J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma
fonction est employée une fois sur chacune des 1000 lignes.... Je pense
qu'il
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe.
Qui peut m'aider? D'avance merci.
Bourby
Voici mon code:
Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long
Set rgREF = [numéro]
nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1
ReDim Tableau(nbLignes)
For i = 1 To nbLignes
Tableau(i) = CStr(rgREF(i).Value)
Next i
(ces 3 dernières lignes marchent, mais ça prend trop de temps et je
voudrais
les remplacer par quelque chose du genre:
Set rgREF = Range(rgREF(1), rgREF(nbLignes))
Tableau() = rgREF()
bonjour Pierre et merci de m'avoir consacré du temps;
ce qu'il me faut exactement, c'est, pour i = 1 à ...End(xlUp).Row : Tableau(i) = CStr(rgREF(i).Value)
Et justement, comme dans ta suggestion, avec une seule instruction,j'arrive uniquement à récupérer une plage; tandis qu'il me faudrait un tableau de strings....
Que puis-je faire?
D'avance merci
Bourby
"Pierre Fauconnier" wrote:
Bonjour
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe.
ET pourtant ... Dim Tableau Tableau = range("a1:a65536")
Cela étant, tu aurais intérêt à trouver une plage plus petite, car je suppose que ta feuille n'est pas remplie jusqu'à la ligne 65536... Dès lors, je suggère plutôt Tableau = range("a1:&" & range("a65536").end(xlup).row)
Cela convient-il?
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Bourby" a écrit dans le message de news:
bonjour, je ne suis pas familier des tableaux, voici mon problème: j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de lignes sont remplies, nombre variable (p.ex. 1000). Je veux récupérer dans un tableau les valeurs contenues dans cette plage. J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma fonction est employée une fois sur chacune des 1000 lignes.... Je pense qu'il
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe. Qui peut m'aider? D'avance merci.
Bourby
Voici mon code: Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long Set rgREF = [numéro] nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1 ReDim Tableau(nbLignes) For i = 1 To nbLignes Tableau(i) = CStr(rgREF(i).Value) Next i (ces 3 dernières lignes marchent, mais ça prend trop de temps et je voudrais
les remplacer par quelque chose du genre: Set rgREF = Range(rgREF(1), rgREF(nbLignes)) Tableau() = rgREF()
michdenis
Bonjour Bourby,
Si tu écris :
Dim RgRef as range Dim Tblo as variant
set RgRef = range("A1:A50") Tblo = rgRef
Pour une valeur de i = 1 à N
tu peux utiliser l'une de ces manières :
For i =1 ton ubound(tblo) Msgbox tblo(i,1) next
OU
For i = 1 to RgRef.rows.count msgbox RgRef(1) next
Salutations!
"Bourby" a écrit dans le message de news:
bonjour Pierre et merci de m'avoir consacré du temps;
ce qu'il me faut exactement, c'est, pour i = 1 à ...End(xlUp).Row : Tableau(i) = CStr(rgREF(i).Value)
Et justement, comme dans ta suggestion, avec une seule instruction,j'arrive uniquement à récupérer une plage; tandis qu'il me faudrait un tableau de strings....
Que puis-je faire?
D'avance merci
Bourby
"Pierre Fauconnier" wrote:
Bonjour
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe.
ET pourtant ... Dim Tableau Tableau = range("a1:a65536")
Cela étant, tu aurais intérêt à trouver une plage plus petite, car je suppose que ta feuille n'est pas remplie jusqu'à la ligne 65536... Dès lors, je suggère plutôt Tableau = range("a1:&" & range("a65536").end(xlup).row)
Cela convient-il?
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Bourby" a écrit dans le message de news:
bonjour, je ne suis pas familier des tableaux, voici mon problème: j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de lignes sont remplies, nombre variable (p.ex. 1000). Je veux récupérer dans un tableau les valeurs contenues dans cette plage. J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma fonction est employée une fois sur chacune des 1000 lignes.... Je pense qu'il
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe. Qui peut m'aider? D'avance merci.
Bourby
Voici mon code: Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long Set rgREF = [numéro] nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1 ReDim Tableau(nbLignes) For i = 1 To nbLignes Tableau(i) = CStr(rgREF(i).Value) Next i (ces 3 dernières lignes marchent, mais ça prend trop de temps et je voudrais
les remplacer par quelque chose du genre: Set rgREF = Range(rgREF(1), rgREF(nbLignes)) Tableau() = rgREF()
Bonjour Bourby,
Si tu écris :
Dim RgRef as range
Dim Tblo as variant
set RgRef = range("A1:A50")
Tblo = rgRef
Pour une valeur de i = 1 à N
tu peux utiliser l'une de ces manières :
For i =1 ton ubound(tblo)
Msgbox tblo(i,1)
next
OU
For i = 1 to RgRef.rows.count
msgbox RgRef(1)
next
Salutations!
"Bourby" <Bourby@discussions.microsoft.com> a écrit dans le message de news:
6521A6EC-CFA5-4B91-A013-6073273DD34B@microsoft.com...
bonjour Pierre et merci de m'avoir consacré du temps;
ce qu'il me faut exactement, c'est, pour i = 1 à ...End(xlUp).Row :
Tableau(i) = CStr(rgREF(i).Value)
Et justement, comme dans ta suggestion, avec une seule instruction,j'arrive
uniquement à récupérer une plage; tandis qu'il me faudrait un tableau de
strings....
Que puis-je faire?
D'avance merci
Bourby
"Pierre Fauconnier" wrote:
Bonjour
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe.
ET pourtant ...
Dim Tableau
Tableau = range("a1:a65536")
Cela étant, tu aurais intérêt à trouver une plage plus petite, car je
suppose que ta feuille n'est pas remplie jusqu'à la ligne 65536...
Dès lors, je suggère plutôt
Tableau = range("a1:&" & range("a65536").end(xlup).row)
Cela convient-il?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Bourby" <Bourby@discussions.microsoft.com> a écrit dans le message de
news:E5864E71-C36D-462B-9F61-023A9E28F88C@microsoft.com...
bonjour,
je ne suis pas familier des tableaux, voici mon problème:
j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de
lignes sont remplies, nombre variable (p.ex. 1000).
Je veux récupérer dans un tableau les valeurs contenues dans cette plage.
J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma
fonction est employée une fois sur chacune des 1000 lignes.... Je pense
qu'il
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe.
Qui peut m'aider? D'avance merci.
Bourby
Voici mon code:
Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long
Set rgREF = [numéro]
nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1
ReDim Tableau(nbLignes)
For i = 1 To nbLignes
Tableau(i) = CStr(rgREF(i).Value)
Next i
(ces 3 dernières lignes marchent, mais ça prend trop de temps et je
voudrais
les remplacer par quelque chose du genre:
Set rgREF = Range(rgREF(1), rgREF(nbLignes))
Tableau() = rgREF()
For i = 1 to RgRef.rows.count msgbox RgRef(1) next
Salutations!
"Bourby" a écrit dans le message de news:
bonjour Pierre et merci de m'avoir consacré du temps;
ce qu'il me faut exactement, c'est, pour i = 1 à ...End(xlUp).Row : Tableau(i) = CStr(rgREF(i).Value)
Et justement, comme dans ta suggestion, avec une seule instruction,j'arrive uniquement à récupérer une plage; tandis qu'il me faudrait un tableau de strings....
Que puis-je faire?
D'avance merci
Bourby
"Pierre Fauconnier" wrote:
Bonjour
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe.
ET pourtant ... Dim Tableau Tableau = range("a1:a65536")
Cela étant, tu aurais intérêt à trouver une plage plus petite, car je suppose que ta feuille n'est pas remplie jusqu'à la ligne 65536... Dès lors, je suggère plutôt Tableau = range("a1:&" & range("a65536").end(xlup).row)
Cela convient-il?
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Bourby" a écrit dans le message de news:
bonjour, je ne suis pas familier des tableaux, voici mon problème: j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de lignes sont remplies, nombre variable (p.ex. 1000). Je veux récupérer dans un tableau les valeurs contenues dans cette plage. J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma fonction est employée une fois sur chacune des 1000 lignes.... Je pense qu'il
y a moyen de le faire en une seule instruction du genre: monTableau > > maPlage, mais je ne trouve pas la syntaxe. Qui peut m'aider? D'avance merci.
Bourby
Voici mon code: Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long Set rgREF = [numéro] nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1 ReDim Tableau(nbLignes) For i = 1 To nbLignes Tableau(i) = CStr(rgREF(i).Value) Next i (ces 3 dernières lignes marchent, mais ça prend trop de temps et je voudrais
les remplacer par quelque chose du genre: Set rgREF = Range(rgREF(1), rgREF(nbLignes)) Tableau() = rgREF()
PMO
Bonjour,
Voici la technique Lucky Luke (qui tire plus vite que son ombre) avec l'exemple de code ci-dessous.
'****************************** Option Explicit Sub VariantTableau() Dim var As Variant Dim i& 'boucle les lignes Dim j& 'boucle les colonnes Dim nbLig& Dim nbCol& '---- Emulation d'un tableau dans un variant ---- '---- Récupère toute la feuille d'un seul coup ---- var = ActiveSheet.UsedRange '---- Nombre de lignes ---- nbLig& = UBound(var, 1) '---- Nombre de colonnes ---- nbCol& = UBound(var, 2) '---- Voir les 10 premières lignes ---- For i& = 1 To 10 '10 ou pour toutes nbLig& For j& = 1 To nbCol& Debug.Print var(i&, j&) Next j& Next i& End Sub '******************************
Cordialement.
PMO Patrick Morange
bonjour, je ne suis pas familier des tableaux, voici mon problème: j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de lignes sont remplies, nombre variable (p.ex. 1000). Je veux récupérer dans un tableau les valeurs contenues dans cette plage. J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma fonction est employée une fois sur chacune des 1000 lignes.... Je pense qu'il y a moyen de le faire en une seule instruction du genre: monTableau = maPlage, mais je ne trouve pas la syntaxe. Qui peut m'aider? D'avance merci.
Bourby
Voici mon code: Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long Set rgREF = [numéro] nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1 ReDim Tableau(nbLignes) For i = 1 To nbLignes Tableau(i) = CStr(rgREF(i).Value) Next i (ces 3 dernières lignes marchent, mais ça prend trop de temps et je voudrais les remplacer par quelque chose du genre: Set rgREF = Range(rgREF(1), rgREF(nbLignes)) Tableau() = rgREF()
Bonjour,
Voici la technique Lucky Luke (qui tire plus vite que son ombre) avec
l'exemple de code ci-dessous.
'******************************
Option Explicit
Sub VariantTableau()
Dim var As Variant
Dim i& 'boucle les lignes
Dim j& 'boucle les colonnes
Dim nbLig&
Dim nbCol&
'---- Emulation d'un tableau dans un variant ----
'---- Récupère toute la feuille d'un seul coup ----
var = ActiveSheet.UsedRange
'---- Nombre de lignes ----
nbLig& = UBound(var, 1)
'---- Nombre de colonnes ----
nbCol& = UBound(var, 2)
'---- Voir les 10 premières lignes ----
For i& = 1 To 10 '10 ou pour toutes nbLig&
For j& = 1 To nbCol&
Debug.Print var(i&, j&)
Next j&
Next i&
End Sub
'******************************
Cordialement.
PMO
Patrick Morange
bonjour,
je ne suis pas familier des tableaux, voici mon problème:
j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de
lignes sont remplies, nombre variable (p.ex. 1000).
Je veux récupérer dans un tableau les valeurs contenues dans cette plage.
J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma
fonction est employée une fois sur chacune des 1000 lignes.... Je pense qu'il
y a moyen de le faire en une seule instruction du genre: monTableau =
maPlage, mais je ne trouve pas la syntaxe.
Qui peut m'aider? D'avance merci.
Bourby
Voici mon code:
Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long
Set rgREF = [numéro]
nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1
ReDim Tableau(nbLignes)
For i = 1 To nbLignes
Tableau(i) = CStr(rgREF(i).Value)
Next i
(ces 3 dernières lignes marchent, mais ça prend trop de temps et je voudrais
les remplacer par quelque chose du genre:
Set rgREF = Range(rgREF(1), rgREF(nbLignes))
Tableau() = rgREF()
Voici la technique Lucky Luke (qui tire plus vite que son ombre) avec l'exemple de code ci-dessous.
'****************************** Option Explicit Sub VariantTableau() Dim var As Variant Dim i& 'boucle les lignes Dim j& 'boucle les colonnes Dim nbLig& Dim nbCol& '---- Emulation d'un tableau dans un variant ---- '---- Récupère toute la feuille d'un seul coup ---- var = ActiveSheet.UsedRange '---- Nombre de lignes ---- nbLig& = UBound(var, 1) '---- Nombre de colonnes ---- nbCol& = UBound(var, 2) '---- Voir les 10 premières lignes ---- For i& = 1 To 10 '10 ou pour toutes nbLig& For j& = 1 To nbCol& Debug.Print var(i&, j&) Next j& Next i& End Sub '******************************
Cordialement.
PMO Patrick Morange
bonjour, je ne suis pas familier des tableaux, voici mon problème: j'ai une plage nommée "numéro" (A2:A65536), dont un assez grand nombre de lignes sont remplies, nombre variable (p.ex. 1000). Je veux récupérer dans un tableau les valeurs contenues dans cette plage. J'y arrive avec une boucle, mais c'est trop long à l'exécution, car ma fonction est employée une fois sur chacune des 1000 lignes.... Je pense qu'il y a moyen de le faire en une seule instruction du genre: monTableau = maPlage, mais je ne trouve pas la syntaxe. Qui peut m'aider? D'avance merci.
Bourby
Voici mon code: Sub essai()
Dim Tableau(), rgREF As Range, nbLignes As Long Set rgREF = [numéro] nbLignes = rgREF.Cells(rgREF.Rows.Count, 1).End(xlUp).Row - rgREF.Row + 1 ReDim Tableau(nbLignes) For i = 1 To nbLignes Tableau(i) = CStr(rgREF(i).Value) Next i (ces 3 dernières lignes marchent, mais ça prend trop de temps et je voudrais les remplacer par quelque chose du genre: Set rgREF = Range(rgREF(1), rgREF(nbLignes)) Tableau() = rgREF()