VBA - Variable tableau - PB de Valeur
Fermé
StellaG
Messages postés
5
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
28 janvier 2011
-
18 juin 2009 à 11:36
StellaG Messages postés 5 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 28 janvier 2011 - 18 juin 2009 à 14:46
StellaG Messages postés 5 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 28 janvier 2011 - 18 juin 2009 à 14:46
A voir également:
- VBA - Variable tableau - PB de Valeur
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
2 réponses
Utilisateur anonyme
18 juin 2009 à 13:13
18 juin 2009 à 13:13
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 304
18 juin 2009 à 13:58
18 juin 2009 à 13:58
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!... ;-)
StellaG
Messages postés
5
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
28 janvier 2011
18 juin 2009 à 14:46
18 juin 2009 à 14:46
Bonjour Michel,
Merci beaucoup, c'est exactement ce que je recherchais.
Pour ce qui est du prof, je m'auto-form.
Je ne "grugerais" donc personne sur mes compétances ;-)
Cordialement,
Stella
Merci beaucoup, c'est exactement ce que je recherchais.
Pour ce qui est du prof, je m'auto-form.
Je ne "grugerais" donc personne sur mes compétances ;-)
Cordialement,
Stella
18 juin 2009 à 14:36