J'ai une petite question concernant les tableaux variable.
Est-il possible svp, dans un souci de rapidit=E9 d'ex=E9cution, de copier
dans une plage les enregistrements d'un tableau par exemple de
l'enregistrement 20000 =E0 30000, tout ceci sans passer par une boucle ?
Dans le code suivant, je r=E9cup=E8re l'int=E9gralit=E9 des enregistrements=
.
Merci
St=E9phane D.
Option Explicit
Sub MonTEST()
Dim MesDONNEES
MesDONNEES =3D Range("A1:B40000")
[C1].Resize(UBound(MesDONNEES, 1), UBound(MesDONNEES, 2)) =3D
MesDONNEES
End Sub
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
michdenis
Bonjour,
Pour redimensionner un tableau en conservant ses valeurs il faut utiliser "Redim Preserve MonTableau(). Sauf que dans ce cas, il n'y a que la dernière dimension du tableau qui est redimensionnable. En conséquence non applicable dans ton cas.
2 façons de faire : '--------------------------------- Sub MonTEST() Dim MesDONNEES(), T()
MesDONNEES = Range("A1:B40000")
'Si tu tiens à utiliser un tableau T = Range(Range("A1:B40000").Item(20000, 1), _ Range("A1:B40000").Item(40000, 2)) [C1].Resize(UBound(T, 1), UBound(T, 2)) = T
'Tu peux effectuer la copie directement comme ceci : Range(Range("A1:B40000").Item(20000, 1), _ Range("A1:B40000").Item(40000, 2)).Copy [C1] End Sub '---------------------------------
"DesseJ" a écrit dans le message de groupe de discussion :
Bonjour à tous,
J'ai une petite question concernant les tableaux variable.
Est-il possible svp, dans un souci de rapidité d'exécution, de copier dans une plage les enregistrements d'un tableau par exemple de l'enregistrement 20000 à 30000, tout ceci sans passer par une boucle ? Dans le code suivant, je récupère l'intégralité des enregistrements.
Merci Stéphane D.
Option Explicit
Sub MonTEST() Dim MesDONNEES MesDONNEES = Range("A1:B40000") [C1].Resize(UBound(MesDONNEES, 1), UBound(MesDONNEES, 2)) MesDONNEES End Sub
Bonjour,
Pour redimensionner un tableau en conservant ses valeurs
il faut utiliser "Redim Preserve MonTableau(). Sauf que dans
ce cas, il n'y a que la dernière dimension du tableau qui est
redimensionnable. En conséquence non applicable dans ton cas.
2 façons de faire :
'---------------------------------
Sub MonTEST()
Dim MesDONNEES(), T()
MesDONNEES = Range("A1:B40000")
'Si tu tiens à utiliser un tableau
T = Range(Range("A1:B40000").Item(20000, 1), _
Range("A1:B40000").Item(40000, 2))
[C1].Resize(UBound(T, 1), UBound(T, 2)) = T
'Tu peux effectuer la copie directement comme ceci :
Range(Range("A1:B40000").Item(20000, 1), _
Range("A1:B40000").Item(40000, 2)).Copy [C1]
End Sub
'---------------------------------
"DesseJ" <DesseJ@caramail.com> a écrit dans le message de groupe de discussion :
25bbd7a7-2893-48ab-aec7-fa4f95cceaba@c36g2000yqm.googlegroups.com...
Bonjour à tous,
J'ai une petite question concernant les tableaux variable.
Est-il possible svp, dans un souci de rapidité d'exécution, de copier
dans une plage les enregistrements d'un tableau par exemple de
l'enregistrement 20000 à 30000, tout ceci sans passer par une boucle ?
Dans le code suivant, je récupère l'intégralité des enregistrements.
Merci
Stéphane D.
Option Explicit
Sub MonTEST()
Dim MesDONNEES
MesDONNEES = Range("A1:B40000")
[C1].Resize(UBound(MesDONNEES, 1), UBound(MesDONNEES, 2)) MesDONNEES
End Sub
Pour redimensionner un tableau en conservant ses valeurs il faut utiliser "Redim Preserve MonTableau(). Sauf que dans ce cas, il n'y a que la dernière dimension du tableau qui est redimensionnable. En conséquence non applicable dans ton cas.
2 façons de faire : '--------------------------------- Sub MonTEST() Dim MesDONNEES(), T()
MesDONNEES = Range("A1:B40000")
'Si tu tiens à utiliser un tableau T = Range(Range("A1:B40000").Item(20000, 1), _ Range("A1:B40000").Item(40000, 2)) [C1].Resize(UBound(T, 1), UBound(T, 2)) = T
'Tu peux effectuer la copie directement comme ceci : Range(Range("A1:B40000").Item(20000, 1), _ Range("A1:B40000").Item(40000, 2)).Copy [C1] End Sub '---------------------------------
"DesseJ" a écrit dans le message de groupe de discussion :
Bonjour à tous,
J'ai une petite question concernant les tableaux variable.
Est-il possible svp, dans un souci de rapidité d'exécution, de copier dans une plage les enregistrements d'un tableau par exemple de l'enregistrement 20000 à 30000, tout ceci sans passer par une boucle ? Dans le code suivant, je récupère l'intégralité des enregistrements.
Merci Stéphane D.
Option Explicit
Sub MonTEST() Dim MesDONNEES MesDONNEES = Range("A1:B40000") [C1].Resize(UBound(MesDONNEES, 1), UBound(MesDONNEES, 2)) MesDONNEES End Sub
DesseJ
Merci MichDenis !
Je cherchais une alternative dans le cas où j'ai un tableau en mémoire qui dépasse les 65536 lignes pour coller le résultat sur plusieurs feuilles, car tous nos clients ne sont pas en 2007.
Merci encore bonne journée StephD
Merci MichDenis !
Je cherchais une alternative dans le cas où j'ai un tableau en mémoire
qui dépasse les 65536 lignes pour coller le résultat sur plusieurs
feuilles, car tous nos clients ne sont pas en 2007.
Je cherchais une alternative dans le cas où j'ai un tableau en mémoire qui dépasse les 65536 lignes pour coller le résultat sur plusieurs feuilles, car tous nos clients ne sont pas en 2007.