sancho12345
Messages postés131Date d'inscriptionjeudi 21 mai 2009StatutMembreDernière intervention18 mars 2012
-
18 janv. 2011 à 11:18
sancho12345
Messages postés131Date d'inscriptionjeudi 21 mai 2009StatutMembreDernière intervention18 mars 2012
-
20 janv. 2011 à 09:29
Bonjour à vous,
J'ai un souci de rapidité entre VB6 et Excel, je m?explique.
J'ai un fichier Excel avec plusieurs colonnes et environ 300 lignes. La premier ligne d'Excel correspond a l'entête des colonnes (Noms des colonnes).
Le but et de trouver dans la première ligne Excel l'entête nommée « Liste » puis remplir un list5 avec les 300 lignes (tant que c'est différent de vide) de la colonne « Liste » et des 6 colonnes qui suivent colonne « Liste ».
Si par exemple l'entête « Liste » et en M1 alors on remplit la list5 avec M,N,O,P,Q,R de la ligne 2 à la ligne 300 ( tant que c'est différent de vide).
Voici mon code qui fonctionne mais dont le temps de traitement est extrêmement long.
' Permet de rapatriement du fichier excel vers la List5
Dim i As Integer
Dim a As Integer
Dim r As Integer
For i = 2 To 290
For a = 1 To 36
For r = a To 36
sTemp = Trim(classeur_excel.Cells(i, r).Value)
sTemp5 = Trim(classeur_excel.Cells(1, a).Value)
If sTemp5 = "Liste" And sTemp <> "" Then List5.AddItem sTemp
Next
Next
Next
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 18 janv. 2011 à 14:31
Salut,
Essaie de lire par range, c'est plus rapide
avec
.Range("A1:C10")
Ca doit gérer plusieurs lignes
Exemple
Dim xlRange As Excel.Range = xlWSheet.Range("A1:A10")
Dim xlCell As Excel.Range = Nothing
Dim arrlist As New ArrayList
With xlApp
For Each xlCell In xlRange
If CBool(xlCell.HasFormula) Then
arrlist.Add(xlCell.Formula.ToString)
Else
arrlist.Add(xlCell.Value)
End If
Next
End With