Temps de lancement userform

Bonjour

je souhaite optimiser le temps de lancement d'un userform qui reprend dans une listbox l'integralité des données d'une feuille de calcul

(les colonnes vont de 1 à 14 et les lignes de 1 à 29970)

j'ai crée l'instruction suivante dans l'initialisation de mon formulaire :

dim t a variant 
redim t (1 to 29970) 
 for i = 1 to 22970 
   t(i)= cells(1,1).value &" "& cells(1,1).offset(0,1).value &" "& cells(1,1).offset(0,2).value & .......&" "& cells(1,1).offset(0,14).value
listbox1.additem t(i)
next
end sub

ca marche mais le petit soucis est le temps d'ouverture qui est d'enviton 12s , il y aurait il une autre facon d'optimiser ce bout

de code ?

Merci pour vos réponses

Cordialement .

bonjour,

cela ne me parait pas une bonne idée d'avoir autant de lignes dans une listbox, mais voici une suggestion de correction à tester

dim t a variant 
redim t (1 to 29970) 
 for i = 1 to 22970 
   t(i)= cells(1,1).value &" "& cells(1,1).offset(0,1).value &" "& cells(1,1).offset(0,2).value & .......&" "& cells(1,1).offset(0,14).value
next
listbox1.list= t
end sub

Un grand merci H2so4 , ca ameliore les choses nettement !! 6 secondes contre 12 , Merci !!

re-bonjour,

ceci devrait être encore plus rapide

  Dim c, t
    c = Range(Cells(1, 1), Cells(22970, 14))
    ReDim t(LBound(c, 1) To UBound(c, 1))
    For i = LBound(c, 1) To UBound(c, 1)
        sep = ""
        For j = LBound(c, 2) To UBound(c, 2)
            t(i) = t(i) & sep & c(i, j)
            If sep = "" Then sep = " "
        Next j
    Next
    listbox1.List = t
End Sub

Super !! merci pour ce complément c'est effectivement mieux !!!

Rechercher des sujets similaires à "temps lancement userform"