× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 positionnement du retour ligne dans variable tableau en "matrice"
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Boogie Palace
  Posté le 06/12/2018 @ 18:01 
Aller en bas de la page 
Petit astucien

bonsoir le forum

désolé si j'ai utilisé le terme "matrice" à mauvais escient, mais c'est à cause des {}

grâce à cette syntaxe en VBA, on peut remplir une variable tableau 2D (ici 2 lignes et 3 colonnes) en une seule commande :

mavartab = [{"aa","bb","cc";"xx","yy","zz"}]


bien pratique, mais quand le nombre de valeurs augmente et/ou que les valeurs sont du texte un peu long, ça fait une très longue ligne.
je cherche donc à mettre un retour ligne ; j'ai naïvement tenté le tiret bas comme ceci :

mavartab = [{"aa","bb","cc"; _
"xx","yy","zz"}]

mais si ça avait fonctionné, je ne serais pas là ! ;-)
qqn connaît la bonne syntaxe ?
(Excel 2010)




Modifié par Boogie Palace le 06/12/2018 18:02
Publicité
Debrief
 Posté le 07/12/2018 à 08:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

C'est un truc infernal en VBA, je n'ai jamais trouvé de solution , à part utiliser les Array() multi-dimensions dont le système d'indices est spécifique (voir exemple ci-dessous).

Cordialement,
D.

Sub a()
Dim i, j As Integer
Dim mavartab As Variant
mavartab = Array(Array("aa", "bb", "cc", "dd"), _
Array("xx", "yy", "zz"))

'Affiche les limites des tableaux
MsgBox "LBound(mavartab) = " & LBound(mavartab) & " / UBound(mavartab) = " & UBound(mavartab)
For i = LBound(mavartab) To UBound(mavartab)
MsgBox "LBound(mavartab(" & i & ")) = " & LBound(mavartab(i)) & " / UBound((mavartab(" & i & ")) = " & UBound(mavartab(i))
Next i

'Affiche les valeurs des tableaux
For i = LBound(mavartab) To UBound(mavartab)
For j = LBound(mavartab(i)) To UBound(mavartab(i))
MsgBox "mavartab(" & i & ")(" & j & ") = " & mavartab(i)(j)
Next j
Next i

End Sub

Edit: Les initialisations à base d'Array() ont un LBound = 0 (sauf à utiliser Option Base 1 ou mettre une 1ère valeur bidon ("") pour simuler), celles à base de [{...}] ont un LBound = 1.



Modifié par Debrief le 07/12/2018 08:43
Boogie Palace
 Posté le 07/12/2018 à 17:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

merci Debrief pour cette solution des "sous-array", qui permettent en effet les retours lignes.

après ça complique un peu les appels des variables, faut s'y retrouver !

mais cette méthode que tu proposes me donne de nouvelles idées, c'est toujours ça de pris

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
159 €Ecran HP 32 pouces 32 (FullHD, 75 Hz) à 159 €
Valable jusqu'au 30 Octobre

Amazon propose actuellement l'écran HP 32 pouces à 159 € livré gratuitement alors qu'on le trouve ailleurs à partir de 200 €. Cet énorme écran de 32 pouces offre une résolution FHD de 1920x1080 pixels sur une dalle VA à 75 Hz.


> Voir l'offre
25,99 €Carte mémoire MicroSDXC UHS-I U3 SanDisk Extreme Pro 128 Go (170 Mo/s) à 25,99 €
Valable jusqu'au 30 Octobre

Amazon fait une vente flash sur la carte mémoire MicroSDXC UHS-I U3 SanDisk Extreme Pro d'une capacité de 128 Go qui passe à 25,99 € livrée gratuitement alors qu'on trouve la carte ailleurs à partir de 50 €. Cette carte mémoire offre des vitesses jusqu'à 170 Mo/s en lecture et 90 Mo/s en écriture et intègre des mécanismes afin de gérer l'usure des cellules de la carte et augmenter ainsi sa durée de vie. Une valeur sûre pour les plus exigeants en FullHD et 4K.


> Voir l'offre
99,99 €Ecran 23,6 pouces Acer KG241Q (1920x1080, 1ms, FreeSync) à 99,99 €
Valable jusqu'au 31 Octobre

Boulanger fait une promotion sur l'écran 23,6 pouces Acer KG241 qui passe à 99,99 € alors qu'on le trouve ailleurs à partir de 130 €. Cet écran dédié aux joueurs dispose d'une dalle TN Full HD de 1920x1080 pixels. Grâce à sa compatibilité Freesync (75 Hz) et son temps de réponse rapide de 1 ms, ce moniteur Acer offre une excellente fluidité d'affichage. Interfaces : 2 x HDMI, VGA, Sortie de ligne audio.


> Voir l'offre

Sujets relatifs
Ecrire plusieurs données sur une même ligne dans un tableau croisé dynamiqu
Application.Match dans variable tableau à 2 dimens
ajouter automatiquement une ligne dans tableau
insérer un retour ligne dans une formule excel
Retour à la ligne dans un userform
afficher l'index d'une ligne dans un tableau
Copie ligne d'un tableau dans colonne d'un autre
comment partager une ligne dans un tableau ?
[RESOLU] WORD Sauter une ligne dans tableau
selectionner 2 cellules dans une ligne active
Plus de sujets relatifs à positionnement du retour ligne dans variable tableau en "matrice"
 > Tous les forums > Forum Bureautique