Vba : tableau vers Range sans boucle "For ... next"
Résolu/Fermé
ClaudeDordogne
Messages postés
47
Date d'inscription
mardi 13 janvier 2015
Statut
Membre
Dernière intervention
7 mars 2015
-
Modifié par jordane45 le 13/01/2015 à 01:00
claudedordogne - 14 janv. 2015 à 17:12
claudedordogne - 14 janv. 2015 à 17:12
A voir également:
- Vba : tableau vers Range sans boucle "For ... next"
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
8 réponses
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
Modifié par f894009 le 13/01/2015 à 11:40
Modifié par f894009 le 13/01/2015 à 11:40
Bonjour Jordane45 et ClaudeDordogne
tab ne peut pas etre utililise en variable, mot reserve VBA, VB et autre
declarer un tableau et pour le resize si meme ligne, pas de nombre a mettre pour ligne
tab ne peut pas etre utililise en variable, mot reserve VBA, VB et autre
declarer un tableau et pour le resize si meme ligne, pas de nombre a mettre pour ligne
Sub test() Dim tabl(4) tabl(0) = 5 tabl(1) = 18 tabl(2) = 12 tabl(3) = 42 With ActiveSheet .Range("C3").Resize(, UBound(tabl)) = tabl End With End Sub
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
Modifié par f894009 le 14/01/2015 à 16:14
Modifié par f894009 le 14/01/2015 à 16:14
Re,
pour le resize, il faut tenir compte aussi des dimensions du tableau: tableau simple ex
tableau deux dimensions ex
pour le resize, il faut tenir compte aussi des dimensions du tableau: tableau simple ex
tabl(4)
tableau deux dimensions ex
ReDim tabl(NbLignes, NbColonnes)
Sub tableau_LC() Dim tabl() As Double NbLignes = 24 'exemple, en fait varie à chaque appel de cette Sub NbColonnes = 10 'exemple, en fait varie à chaque appel de cette Sub ReDim tabl(NbLignes, NbColonnes) ' ici on rempli le tableau Tabl For x = 0 To 23 For y = 0 To 9 tabl(x, y) = x + 1 Next y, x With ActiveSheet .Cells(1, 1).Resize(UBound(tabl, 1), UBound(tabl, 2)).Value = tabl End With End Sub
jordane45
Messages postés
38289
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2024
4 703
13 janv. 2015 à 00:59
13 janv. 2015 à 00:59
Bonjour,
Déjà... lorsque tu postes du code sur le forum, merci de penser à utiliser la coloration syntaxique.
Explications ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Quelque chose de ce genre devrait pouvoir fonctionner
Déjà... lorsque tu postes du code sur le forum, merci de penser à utiliser la coloration syntaxique.
Explications ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Quelque chose de ce genre devrait pouvoir fonctionner
With activesheet .Range("C3").Resize(3,UBound(Tab)) = Tab End With
ClaudeDordogne
Messages postés
47
Date d'inscription
mardi 13 janvier 2015
Statut
Membre
Dernière intervention
7 mars 2015
13 janv. 2015 à 14:22
13 janv. 2015 à 14:22
Bonjour Jordane45
pour la coloration syntaxique, il n'y a pas le choix VBA lorsque l'on clique la flèche du 4eme bouton, et je n'arrive pas à mettre la coloration syntaxique ici dans :
Dim tabl(4)
tabl(4) = 42
il ne fait que rajouter
merci pour ton aide
de plus, je suis particulièrement agréablement surpris de l'EFFICACITE et de la promptitude des réponses sur ce forum
encore MERCI
Claude
pour la coloration syntaxique, il n'y a pas le choix VBA lorsque l'on clique la flèche du 4eme bouton, et je n'arrive pas à mettre la coloration syntaxique ici dans :
Dim tabl(4)
tabl(4) = 42
il ne fait que rajouter
Dim tabl(4)
tabl(4) = 42
merci pour ton aide
de plus, je suis particulièrement agréablement surpris de l'EFFICACITE et de la promptitude des réponses sur ce forum
encore MERCI
Claude
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
13 janv. 2015 à 14:40
13 janv. 2015 à 14:40
Salut,
La bonne couleur, pour le VBA, comme pour tous les VB est le choix : basic dans la liste déroulante de coloration syntaxique.
A+
La bonne couleur, pour le VBA, comme pour tous les VB est le choix : basic dans la liste déroulante de coloration syntaxique.
A+
ClaudeDordogne
Messages postés
47
Date d'inscription
mardi 13 janvier 2015
Statut
Membre
Dernière intervention
7 mars 2015
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
13 janv. 2015 à 15:50
13 janv. 2015 à 15:50
Salut,
j' essaie à nouveau:
j'ai fait
Dim tabl(4)
tabl(4) = 42
je choisi "basic" et...
cela a donné
et Cela MARCHE!
l'erreur que j'ai faite était de mettre des espaces avant tabl(4)=42 pour essayer de "tabuler"!
donc ici je n'ai pas mis d'espace ... et cela fonctionne!
merci encore, et cela me confirme dans l'efficacité de ce forum!!! :))
Claude de Dordogne
j' essaie à nouveau:
j'ai fait
Dim tabl(4)
tabl(4) = 42
je choisi "basic" et...
cela a donné
Dim tabl(4) tabl(4) = 42
et Cela MARCHE!
l'erreur que j'ai faite était de mettre des espaces avant tabl(4)=42 pour essayer de "tabuler"!
donc ici je n'ai pas mis d'espace ... et cela fonctionne!
merci encore, et cela me confirme dans l'efficacité de ce forum!!! :))
Claude de Dordogne
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ClaudeDordogne
Messages postés
47
Date d'inscription
mardi 13 janvier 2015
Statut
Membre
Dernière intervention
7 mars 2015
13 janv. 2015 à 14:24
13 janv. 2015 à 14:24
Bonjour Jordane45 et f894009
Génial, cela fonctionne :)
juste un point
Dim tabl(4)
tabl(4) = 42
42 (soit tabl(4)) n'apparait pas, on a que les 3 premiers (5,18,12)
si on met tabl(5) meme si on ne défini pas tabl(5) : on a tout
le dernier element de tab n'est il pas pris en compte?
en ce qui concerne la coloration syntaxique, étant donné que c'est ma premiere question sur le forum je ne savais pas que cela existait, maintenant je l'utiliserai.
on se sent VRAIMENT moins seul... :))
TRES CORDIALEMENT
Claude
Génial, cela fonctionne :)
juste un point
Dim tabl(4)
tabl(4) = 42
42 (soit tabl(4)) n'apparait pas, on a que les 3 premiers (5,18,12)
si on met tabl(5) meme si on ne défini pas tabl(5) : on a tout
le dernier element de tab n'est il pas pris en compte?
en ce qui concerne la coloration syntaxique, étant donné que c'est ma premiere question sur le forum je ne savais pas que cela existait, maintenant je l'utiliserai.
on se sent VRAIMENT moins seul... :))
TRES CORDIALEMENT
Claude
ClaudeDordogne
Messages postés
47
Date d'inscription
mardi 13 janvier 2015
Statut
Membre
Dernière intervention
7 mars 2015
13 janv. 2015 à 16:16
13 janv. 2015 à 16:16
rebonjour,
je viens de m'apercevoir que les données sont mises en ligne
ici en c3, d3, e3...
en fait, je voudrais les mettre en colonne
c3 ,c4,c5....
Merci de votre aide ... si précieuse :))
Claude
je viens de m'apercevoir que les données sont mises en ligne
ici en c3, d3, e3...
en fait, je voudrais les mettre en colonne
c3 ,c4,c5....
Merci de votre aide ... si précieuse :))
Claude
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
Modifié par f894009 le 13/01/2015 à 17:05
Modifié par f894009 le 13/01/2015 à 17:05
Re,
ceci doit le faire, si meme colonne pas de nombre pour les colonnes
ceci doit le faire, si meme colonne pas de nombre pour les colonnes
With activesheet .Range("C3").Resize(UBound(Tab)) = Tab End With
ClaudeDordogne
Messages postés
47
Date d'inscription
mardi 13 janvier 2015
Statut
Membre
Dernière intervention
7 mars 2015
13 janv. 2015 à 17:17
13 janv. 2015 à 17:17
bonjour,
Merci,
mais cela ne fonctionne pas,
en effet, rien n'est afficher.
cordialement
Claude
Merci,
mais cela ne fonctionne pas,
en effet, rien n'est afficher.
cordialement
Claude
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
Modifié par f894009 le 13/01/2015 à 17:25
Modifié par f894009 le 13/01/2015 à 17:25
Re
autant pour moi (copier/coller sans modifie le Tab
autant pour moi (copier/coller sans modifie le Tab
With activesheet .Range("C3").Resize(UBound(tabl)) = tabl End With
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
13 janv. 2015 à 17:27
13 janv. 2015 à 17:27
Re,
aurait ete mieux si j'avais pris le temps de tester
aurait ete mieux si j'avais pris le temps de tester
With ActiveSheet .Range("C3").Resize(UBound(tabl)) = Application.Transpose(tabl) End With
ClaudeDordogne
Messages postés
47
Date d'inscription
mardi 13 janvier 2015
Statut
Membre
Dernière intervention
7 mars 2015
>
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
13 janv. 2015 à 21:16
13 janv. 2015 à 21:16
bonsoir
Super , cela fonctionne
juste un petit truc:
ne permet d'afficher que 5,18,12 (c'est à dire qu'il manque le dernier élément du tableau)
en mettant :
on affiche 5,18,12,42 (c'est à dire tout le tableau, y compris le dernier élément)
je ne sais pas pourquoi ....
En tout cas Mille Merci
Très Cordialement
Claude
Super , cela fonctionne
juste un petit truc:
Resize(UBound(tabl) )
ne permet d'afficher que 5,18,12 (c'est à dire qu'il manque le dernier élément du tableau)
en mettant :
Resize(UBound(tabl) + 1)
on affiche 5,18,12,42 (c'est à dire tout le tableau, y compris le dernier élément)
je ne sais pas pourquoi ....
Dim tabl(4) tabl(1) = 5 tabl(2) = 18 tabl(3) = 12 tabl(4) = 42 With ActiveSheet .Range("C3").Resize(UBound(tabl) + 1) = Application.Transpose(tabl) End With
En tout cas Mille Merci
Très Cordialement
Claude
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
>
ClaudeDordogne
Messages postés
47
Date d'inscription
mardi 13 janvier 2015
Statut
Membre
Dernière intervention
7 mars 2015
Modifié par f894009 le 14/01/2015 à 11:06
Modifié par f894009 le 14/01/2015 à 11:06
Bonjour,
ce que j'ai ecrit le 13/01/2015 a 11:37, avec petite rectification ensuite sur l'ecriture des cellules
Dim tabl(4) cela va de tabl(0) a tabl(3) donc 4 elements
ce que j'ai ecrit le 13/01/2015 a 11:37, avec petite rectification ensuite sur l'ecriture des cellules
Dim tabl(4) cela va de tabl(0) a tabl(3) donc 4 elements
Sub test() Dim tabl(4) tabl(0) = 5 tabl(1) = 18 tabl(2) = 12 tabl(3) = 42 With ActiveSheet .Range("C3").Resize(, UBound(tabl)) = tabl End With End Sub
With ActiveSheet .Range("C3").Resize(UBound(tabl)) = Application.Transpose(tabl) End With