Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Vitesse d'affichage très lent

4 réponses
Avatar
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

4 réponses

Avatar
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" wrote:
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


Avatar
MorMic
Merci de votre réponse

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

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

Cordialement

Michel

"JB" a écrit dans le message de news:

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" wrote:
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


Avatar
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" wrote:
Merci de votre réponse

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

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

Cordialement

Michel

"JB" a écrit dans le message de news:

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" wrote:



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 -



Avatar
MorMic
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" a écrit dans le message de news:

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" wrote:
Merci de votre réponse

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

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

Cordialement

Michel

"JB" a écrit dans le message de news:

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" wrote:



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 -