Vitesse d'affichage très lent

Le
MorMic
Bonsoir à tous

Mon environnement: Windows XP + Excel 2000 + VBA

J'affiche le contenu d'un tableau à 2 dimensions Tableau(160,3) sur une
feuille par 2 classiques boucles imbriquées:

For i = 1 to 160
For j = 1 to 3
sheets("Affichage").cells(i,j) = Tableau(i,j)
Next j
Next i

Le remplissage de la feuille se fait avec une lenteur qui me rappelle le
temps du GWBasic soit plus d'une minute !

Pensez-vous que cela est normal ? Si oui, connaissez-vous une astuce pour
aller plus vite ?

Merci

Michel
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4359161
Bonsoir,

[A1:C160] = tableau

Dans l'autre sens:

tableau=[A1:C160]

http://boisgontierj.free.fr/fichiers/jb-tableaux.zip

JB


On 1 mar, 19:52, "MorMic"
Bonsoir à tous

Mon environnement: Windows XP + Excel 2000 + VBA

J'affiche le contenu d'un tableau à 2 dimensions Tableau(160,3) sur une
feuille par 2 classiques boucles imbriquées:

For i = 1 to 160
For j = 1 to 3
sheets("Affichage").cells(i,j) = Tableau(i,j)
Next j
Next i

Le remplissage de la feuille se fait avec une lenteur qui me rappelle le
temps du GWBasic soit plus d'une minute !

Pensez-vous que cela est normal ? Si oui, connaissez-vous une astuce pour
aller plus vite ?

Merci

Michel


MorMic
Le #4358991
Merci de votre réponse

mais comment en VBA peut-on écrire qu'une plage = tableau

Range("A1:C160") = ???????

Cordialement

Michel

"JB"
Bonsoir,

[A1:C160] = tableau

Dans l'autre sens:

tableau=[A1:C160]

http://boisgontierj.free.fr/fichiers/jb-tableaux.zip

JB


On 1 mar, 19:52, "MorMic"
Bonsoir à tous

Mon environnement: Windows XP + Excel 2000 + VBA

J'affiche le contenu d'un tableau à 2 dimensions Tableau(160,3) sur une
feuille par 2 classiques boucles imbriquées:

For i = 1 to 160
For j = 1 to 3
sheets("Affichage").cells(i,j) = Tableau(i,j)
Next j
Next i

Le remplissage de la feuille se fait avec une lenteur qui me rappelle le
temps du GWBasic soit plus d'une minute !

Pensez-vous que cela est normal ? Si oui, connaissez-vous une astuce pour
aller plus vite ?

Merci

Michel


JB
Le #4358971
Cela s'écrit comme je l'ai écris:

http://cjoint.com/?dbxaDCVgyE

Sub essai()
tableau = Range("A1:B4")
MsgBox tableau(1, 1)
Range("A1:B4").ClearContents
tableau(1, 1) = 587
Range("A1:B4") = tableau
End Sub

JB


On 1 mar, 22:51, "MorMic"
Merci de votre réponse

mais comment en VBA peut-on écrire qu'une plage = tableau

Range("A1:C160") = ??? ????

Cordialement

Michel

"JB"
Bonsoir,

[A1:C160] = tableau

Dans l'autre sens:

tableau=[A1:C160]

http://boisgontierj.free.fr/fichiers/jb-tableaux.zip

JB

On 1 mar, 19:52, "MorMic"


Bonsoir à tous

Mon environnement: Windows XP + Excel 2000 + VBA

J'affiche le contenu d'un tableau à 2 dimensions Tableau(160,3) sur u ne
feuille par 2 classiques boucles imbriquées:

For i = 1 to 160
For j = 1 to 3
sheets("Affichage").cells(i,j) = Tableau(i,j)
Next j
Next i

Le remplissage de la feuille se fait avec une lenteur qui me rappelle le
temps du GWBasic soit plus d'une minute !

Pensez-vous que cela est normal ? Si oui, connaissez-vous une astuce po ur
aller plus vite ?

Merci

Michel- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



MorMic
Le #4358941
En lisant votre premier lien, j'ai découvert la méthode
Application.ScreenUpdating = False
Et là, cela a fait tilt. Maintenant ma feuille se remplit en moins d'une
seconde avec mes deux boucles imbriquées.
Par contre en écrivant Range("A1:C160") = Tableau j'ai une erreur
de compilation.
Je ne comprends pas comment le compilateur peut s'y retrouver.
Ce n'est pas grave, mon prog fonctionne bien. J'essaierai de comprendre plus
tard.

Merci encore

MM

"JB"
Cela s'écrit comme je l'ai écris:

http://cjoint.com/?dbxaDCVgyE

Sub essai()
tableau = Range("A1:B4")
MsgBox tableau(1, 1)
Range("A1:B4").ClearContents
tableau(1, 1) = 587
Range("A1:B4") = tableau
End Sub

JB


On 1 mar, 22:51, "MorMic"
Merci de votre réponse

mais comment en VBA peut-on écrire qu'une plage = tableau

Range("A1:C160") ???????

Cordialement

Michel

"JB"
Bonsoir,

[A1:C160] = tableau

Dans l'autre sens:

tableau=[A1:C160]

http://boisgontierj.free.fr/fichiers/jb-tableaux.zip

JB

On 1 mar, 19:52, "MorMic"


Bonsoir à tous

Mon environnement: Windows XP + Excel 2000 + VBA

J'affiche le contenu d'un tableau à 2 dimensions Tableau(160,3) sur une
feuille par 2 classiques boucles imbriquées:

For i = 1 to 160
For j = 1 to 3
sheets("Affichage").cells(i,j) = Tableau(i,j)
Next j
Next i

Le remplissage de la feuille se fait avec une lenteur qui me rappelle le
temps du GWBasic soit plus d'une minute !

Pensez-vous que cela est normal ? Si oui, connaissez-vous une astuce
pour


aller plus vite ?

Merci

Michel- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Publicité
Poster une réponse
Anonyme