A voir également:
- VBA - Variable tableau - PB de Valeur
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
2 réponses
Bonjour,
Exemple type :
Lupin
Exemple type :
Option Explicit Sub autre_immo() Dim Tabl As Range, Cellule As Range Set Tabl = Range("A1:A100") For Each Cellule In Tabl Cellule.Value = Cellule.Value * 2 Next Boite Application.ScreenUpdating = False Range("O1:O100").Value = Tabl.Value Application.ScreenUpdating = True End Sub '
Lupin
StellaG
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
Merci Lupin pour votre réponse, mais comme l'a si bien dit Michel, je souhaitais utiliser le système avec des tableaux pour un gain de temps.
Bonjour,
Ton pb vient surtout du fait que lorsque tu écris
Range("A1:A100")=tabl
tabl a 2 dimensions Tabl(N,N)
pour t'en convaincre installe un espion sur tabl (déboguage-ajouter un espion)
d'autre part, le but d'utiliser les tableaux est le gain de temps important par rapport à
la manipulation de cellules (for each cellule...) sur de grandes plages ( pour A1:A65536, gain de temps:20 fois + vite; source:developpez.com magazine N°12)
Voici une démo (source FAQ Excel de developpez.com ou magazine cité + haut)
edit: si par hasard, c'était pour un exercice de formation à VBA, tu connais maintenant les sources des exos de ton prof et de ses corrigés,mais chut!... ;-)
Ton pb vient surtout du fait que lorsque tu écris
Range("A1:A100")=tabl
tabl a 2 dimensions Tabl(N,N)
pour t'en convaincre installe un espion sur tabl (déboguage-ajouter un espion)
d'autre part, le but d'utiliser les tableaux est le gain de temps important par rapport à
la manipulation de cellules (for each cellule...) sur de grandes plages ( pour A1:A65536, gain de temps:20 fois + vite; source:developpez.com magazine N°12)
Voici une démo (source FAQ Excel de developpez.com ou magazine cité + haut)
Sub autre_immo() Dim Tabl As Variant Dim cptr1 As Byte, cptr2 As Byte Tabl = Range("A1:A100").Value For cptr1 = LBound(Tabl, 1) To UBound(Tabl, 1) For cptr2 = LBound(Tabl, 2) To UBound(Tabl, 2) Tabl(cptr1, cptr2) = Tabl(cptr1, cptr2) * 2 Next Next Application.ScreenUpdating = False Range("O1:O100").Value = Tabl End Sub
edit: si par hasard, c'était pour un exercice de formation à VBA, tu connais maintenant les sources des exos de ton prof et de ses corrigés,mais chut!... ;-)