Chargement Lisbox ralenti par format heure

nice

XLDnaute Nouveau
Bonjour à tous

A la sélection d'une valeur de ma Combo, j'ai un ralentissement considérable de mon code ci dessous quand je veux imposer un format heure à 2 colonnes de ma ListBox ( dernière boucle du code ci dessous )
N' y t' il pas une solution plus rapide ou ai je fait une erreur ?

Je transfère un gros tableau
La listbox se charge extrêmement rapidement avant le formatage

Je vous remercie infiniment de votre aide


Private Sub ComboBox1_Change()

Me.ListBox1.Clear
If Me.ComboBox1.Value <> "" Then

nbcol = Sheets(Me.ComboBox1.Value).[B5].CurrentRegion.Columns.Count
Me.ListBox1.ColumnCount = nbcol

Set plage = Sheets(Me.ComboBox1.Value).[B5].CurrentRegion
Set plage = plage.Offset(1).Resize(plage.Rows.Count - 1)

Me.ListBox1.List = plage.Value

For I = 0 To Me.ListBox1.ListCount - 1
Me.ListBox1.List(I, 1) = Format(Me.ListBox1.List(I, 1), "hh:mm")
Me.ListBox1.List(I, 3) = Format(Me.ListBox1.List(I, 3), "hh:mm")
Next I

End If

End Sub
 

job75

XLDnaute Barbatruc
Re : Chargement Lisbox ralenti par format heure

Bonsoir nice,

Pourquoi modifier le format des 2 colonnes dans la ListBox ?

Si les colonnes C et E des feuilles de calcul sont au format "hh:mm", la ListBox affiche les heures formatées...

A+
 

nice

XLDnaute Nouveau
Re : Chargement Lisbox ralenti par format heure

Bonsoir job

Mes colonnes C et E sont bien formatées "hh:mm" et j'ai bizarrement un résultat en décimales dans la LisBox, voilà pourquoi j'ai rajouté cette boucle, mais cette boucle alourdit le transfert....d' ou ma question
 

nice

XLDnaute Nouveau
Re : Chargement Lisbox ralenti par format heure

Bonjour job

Voici le fichier
Dans chacune des feuilles que la combo récupère j'ai un gros tableau
13 colonnes, et qui peut augmenter jusqu'à environ 3000, 4000 lignes en " B6"

Merci
 

Pièces jointes

  • exempleA.xls
    182.5 KB · Affichages: 46
  • exempleA.xls
    182.5 KB · Affichages: 47
  • exempleA.xls
    182.5 KB · Affichages: 45

job75

XLDnaute Barbatruc
Re : Chargement Lisbox ralenti par format heure

Bonjour nice,

Effectivement sur votre fichier avec la propriété List la ListBox ne prend pas les formats.

Je ne comprends pas pourquoi :confused:

Mais en utilisant la propriété RowSource aucun problème :

Code:
ListBox1.RowSource = sh.Name & "!" & plage.Address
J'ai revu le code de l'USF dans le fichier joint, ajouté On Error Resume Next...

PS : curieux le look de votre USF...

A+
 

Pièces jointes

  • exempleA(1).xls
    146.5 KB · Affichages: 43

nice

XLDnaute Nouveau
Re : Chargement Lisbox ralenti par format heure

Re job
et merci
Pouvez vous m'indiquer à quoi sert la ligne
ListBox1.RowSource = ""

L' USF est en cours de construction (pour info, j'ai un projet peut être trop ambitieux eu égard à mes connaissances élémentaires en VBA)
Alors je me développe sur VBA en même temps
J'aurais par ailleurs probablement besoin de ce forum génial pour la suite de ce projet
Une question
Selon vous quelle est la méthode la plus rapide pour remplir une combo ou listbox avec beaucoup de données

Merci infiniment
 

job75

XLDnaute Barbatruc
Re : Chargement Lisbox ralenti par format heure

Re,

Pouvez vous m'indiquer à quoi sert la ligne
ListBox1.RowSource = ""

Quand la valeur de la ComboBox n'est pas le nom d'une feuille, cette instruction est la seule exécutée, la ListBox est donc vidée.

Selon vous quelle est la méthode la plus rapide pour remplir une combo ou listbox avec beaucoup de données

La méthode AddItem est bien plus lente que les 2 autres.

J'avais oublié le point qui me chagrine
Y a t'il une raison selon vous pour que l'usf ne prenne pas en compte le format?

Il me chagrine aussi car je n'en ai aucune idée.

A+
 

job75

XLDnaute Barbatruc
Re : Chargement Lisbox ralenti par format heure

Re,

Quand la valeur de la ComboBox n'est pas le nom d'une feuille, cette instruction est la seule exécutée, la ListBox est donc vidée.

Je n'avais pas testé, en fait cette instruction semble inutile !

Edit : j'ai enfin compris pourquoi ListBox1.RowSource = "" est inutile.

Quand la valeur de la ComboBox n'est pas le nom d'une feuille, nbcol garde la valeur d'origine donc 0.

Donc rien ne s'affiche dans la ListBox, même si ListBox1.RowSource n'est pas modifiée.

A+
 
Dernière édition:

Discussions similaires

Réponses
12
Affichages
2 K

Statistiques des forums

Discussions
312 677
Messages
2 090 820
Membres
104 676
dernier inscrit
akram1619