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
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
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 -
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" <boisgontier@hotmail.com> a écrit dans le message de news:
1172786515.211888.128000@t69g2000cwt.googlegroups.com...
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" <mor....@wanadoo.fr> wrote:
Merci de votre réponse
mais comment en VBA peut-on écrire qu'une plage = tableau
Range("A1:C160") ???????
Cordialement
Michel
"JB" <boisgont...@hotmail.com> a écrit dans le message de news:
1172775677.698231.322...@s48g2000cws.googlegroups.com...
Bonsoir,
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