XL 2013 Suite à une liste mettre cette liste dans un tableau avec for To Next

Gribouille83

XLDnaute Nouveau
bonjour toutes et à tous

avant il existait l'instruction DATA, et c'était pratique.
après le mot DATA on mettait une liste de mots séparés par une virgule et on pouvait mette l'ensemble dans un tableau avec
bien sur l'instruction DIM
est-ce possible,
y a t'il une autre possibilité?

exemple : une lise des signes astrologiques et en fonction du choix sortir le bon signe

je vous remercie de m'aider

bonne journée à toutes et à tous
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Gribouille83

Gribouille83
Pour l'astrologie, voir la discussion ci-dessous

Sinon, peux-tu éditer le titre de ta discussion, stp?
Et le remplacer par un titre qui résume/illustre ta question.
Merci

NB: Pour ce faire, cliques en haut à droite, au début de ta discussion, sur les trois points bleus, et dans Plus d'options, et là choisir Editer la discussion
 

Gribouille83

XLDnaute Nouveau
Bonjour le fil, Gribouille83

Gribouille83
Pour l'astrologie, voir la discussion ci-dessous

Sinon, peux-tu éditer le titre de ta discussion, stp?
Et le remplacer par un titre qui résume/illustre ta question.
Merci

NB: Pour ce faire, cliques en haut à droite, au début de ta discussion, sur les trois points bleus, et dans Plus d'options, et là choisir Editer la discussion

un très grand merci à tous, votre rapidité, votre savoir vont m'aider
heureusement qu'il existe de l'aide, merci
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,

>avant il existait l'instruction DATA, et c'était pratique.

Il y a Array()

VB:
  a = Array(3, 4, 5, 6, 7, 8, 36, 10, 37, 38, 39, 14, 15)   ' tableau dimension 13
  For i = LBound(a) To UBound(a)   ' 0 à 12
     Cells(i + 1, 1) = a(i)
  Next i
End Sub

Code:
Sub TableauEmboités()
  Dim Tbl(1 To 3)
  a = Array("a", "b", "c", "d")
  b = Array("e", "f", "g", "h")
  c = Array(1, 2, 3, 4)
  Tbl(1) = a
  Tbl(2) = b
  Tbl(3) = c
  For lig = LBound(Tbl) To UBound(Tbl)
     For col = LBound(a) To UBound(a)
        Cells(lig, col + 1) = Tbl(lig)(col)
     Next col
   Next lig
End Sub

Boisgontier
 

Gribouille83

XLDnaute Nouveau
Magnifique, c'est trop super du coup j'ai appris d'autres fonctions
Lbound & Ubound en plus de Array
merci à tous
je vais pouvoir travailler
bon dimanche de Perpignan

ça marche pas comme je voudrais, si vous pouvez m'aider, voila le problème
la liste
Dim titre(11)
noms = Array("N? C", "Année", "N? T", "Type", "Valeur", "S/taxe", "Libell?", "Couleur", "Neuf", "Obli", "Ligne")
voila ma boucle
For i = LBound(noms) To UBound(noms): titre(i+1) = noms(i): Next
i+1 car j'ai remarqué que Lbound commence à Zéro
l'affectation à titre(i) ne se fait pas
Votre aide est précieuse
Merci
 

ChTi160

XLDnaute Barbatruc
Bonjour Gribouille83
une approche qui semble fonctionner ! à voir
VB:
Sub test()
Dim titre() As Variant
Dim noms()
Dim i As Byte
noms = Array("N? C", "Année", "N? T", "Type", "Valeur", "S/taxe", "Libell?", "Couleur", "Neuf", "Obli", "Ligne")
'voila ma boucle
For i = LBound(noms) To UBound(noms)
 ReDim Preserve titre(1 + i)
 titre(i) = noms(i): Next
Range("A1").Resize(UBound(titre, 1)) = Application.Transpose(titre)
End Sub
ou
VB:
Sub test()
Dim titre(11) As Variant
Dim noms()
Dim i As Byte
noms = Array("N? C", "Année", "N? T", "Type", "Valeur", "S/taxe", "Libell?", "Couleur", "Neuf", "Obli", "Ligne")
'voila ma boucle
For i = LBound(noms) To UBound(noms)
  titre(i) = noms(i): Next
Range("A1").Resize(UBound(titre, 1)) = Application.Transpose(titre)
End Sub
jean marie
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

Puisqu'on parle de titres, je présume que leur vocation première est d'être en première ligne, non ?
Dans ce cas, pourquoi boucler deux fois?
Et au final pourquoi boucler d'ailleurs ? ;)
Ci-dessous trois exemples sans boucles.
Bon dimanche.
VB:
Sub No_Loop_Baby()
Dim noms
noms = Array("N? C", "Année", "N? T", "Type", "Valeur", "S/taxe", "Libell?", "Couleur", "Neuf", "Obli", "Ligne")
Range("A1").Resize(, UBound(noms) + 1) = noms
End Sub
Sub No_Loop_Baby_Light()
[A1:K1] = Array("N? C", "Année", "N? T", "Type", "Valeur", "S/taxe", "Libell?", "Couleur", "Neuf", "Obli", "Ligne")
End Sub
Sub No_Loop_Baby_UltraLight()
[A1:K1] = Split("N? C²Année²N? T²Type²Valeur²S/taxe²Libell?²Couleur²Neuf²Obli²Ligne", "²")
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour Gribouille83

J'en déduis que tu préfères absolument passer par une boucle ;)
(A moins que tu ais zappé le message#9)
Ou alors je me suis trompé, tu ne veux pas mettre les titres sur la 1ère ligne?

Merci d'éclairer ma lanterne.
 

Staple1600

XLDnaute Barbatruc
Re,

Gribouill83
Au cas, où il faille mettre les titres en colonne
Ma dernière macro modifiée pour ce faire
VB:
Sub No_Loop_But_Vertically_Baby()
Dim tablo: tablo = Split("N? C²Année²N? T²Type²Valeur²S/taxe²Libell?²Couleur²Neuf²Obli²Ligne", "²")
[A1:A11] = Application.Transpose(tablo)
End Sub

PS: Si tu as des questions sur mes syntaxes, elles sont les bienvenues ;)
 

Gribouille83

XLDnaute Nouveau
Bonjour Gribouille83

J'en déduis que tu préfères absolument passer par une boucle ;)
(A moins que tu ais zappé le message#9)
Ou alors je me suis trompé, tu ne veux pas mettre les titres sur la 1ère ligne?

Merci d'éclairer ma lanterne.
mes titres irons en 1er ligne mais appelé par des prg différents
je vous remercie tous de toutes ces solutions qui me font évoluer
effectivement j'au zappé ton message mais je le retiens
vous avez été tous super gentil de vous occuper de mon problème
à tous merci, bon dimanche
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 347
Membres
102 868
dernier inscrit
JJV