Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/07/2011, 20h31   #1
Membre du Club
 
Inscription : juin 2008
Messages : 126
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 126
Points : 54
Points : 54
Par défaut transformer X tableaux à 1 dimension en 1 tableau à X dimensions

Bonjour le forum,

La question est posée dans le forum PwP parce que le problème se pose dans la gestion d’une liste déroulante dans une dia ; mais je pense qu’elle vaut aussi pour Excel, Word voire Outlook.
But : transformer X tableaux à 1 dimension en 1 tableau à X dimensions
Tableaux à 1 dimension
Code :
1
2
3
4
Dim question1(), question2(), question3()
question1 = Array("Quel est la couleur du cheval blanc de Napoléon ?",  "Isabelle", "Blanc ", " Noir",  " Le cheval était blanc.", "3")
question2 = Array("Dans quelle ville se trouve Notre-Dame de Paris?", " Paris", " Lyon", " Marseille", "Elle se trouve à Paris", "2")
question3 = Array("Combien y a-t-il de départements en France?",  "100", "101", "102 ", « Il y a 101 départements. Le dernier est Mayotte", "3")
Tableau à X dimensions
Transformation efficace mais peu élégante et fastidieuse (j’ai 50 questions)
Code :
1
2
3
4
5
6
7
8
9
For I = 1 To 6
question(1, I) = question1(I)
Next
For I = 1 To 6
question(2, I) = question2(I)
Next
For I = 1 To 6
 question(3, I) = question3(I)
Next
Je voudrais arriver à une structure en double boucle semblable à ce qui suit:
Code :
1
2
3
4
5
For i = 1 To 3
    For j = 1 To 6
    question(i, j) = "question" & j & "(" & i & ")"
    Next j
Next i
Mais, hélas, cela ne fonctionne pas; le résultat donne par exemple:“question2(2)”, guillemets compris.
Mon souhait est-il irréalisable ou est-ce simplement une question de syntaxe ?
Je voudrais préciser que pour diverses raisons, je ne veux pas - actuellement - utiliser de base de données externes (SQL, Excel, …)
Merci pour vos avis éclairés

Harry
Harry Covair est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2011, 12h45   #2
Membre éclairé
 
Inscription : mai 2006
Messages : 335
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2006
Messages : 335
Points : 326
Points : 326
Bonjour

Je ne sais pas si j'ai bien compris où tu voulais en venir, mais je te propose ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
Sub test()
 
Dim Montab()
Dim question1(), question2(), question3()
question1 = Array("Quel est la couleur du cheval blanc de Napoléon ?", "Isabelle", "Blanc ", " Noir", " Le cheval était blanc.", "3")
question2 = Array("Dans quelle ville se trouve Notre-Dame de Paris?", " Paris", " Lyon", " Marseille", "Elle se trouve à Paris", "2")
question3 = Array("Combien y a-t-il de départements en France?", "100", "101", "102 ", "Il y a 101 départements. Le dernier est Mayotte", "3")
Montab = Array(question1, question2, question3)
MsgBox Montab(1)(3)
 
End Sub
Eric
edelweisseric est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/07/2011, 13h35   #3
Membre du Club
 
Inscription : juin 2008
Messages : 126
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 126
Points : 54
Points : 54
Bonjour Eric,
La solution proposée a été testée et convient parfaitement avec un minimum de modifications; par ignorance de cette possibilité, je me compliquais la vie.
Pour information,
Par question, le premier élément est la question qui s'affiche dans une zone de texte;
Les 2ème, 3ème et 4ème sont des propositions qui alimentent une combobox;
le 5ème est un commentaire qui apparaît dans une zone de texte;
le 6ème est le rang de la bonne réponse.

Grand merci pour la pertinence et la rapidité de la réponse.

Harry
Harry Covair est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h08.


 
 
 
 
Partenaires

Hébergement Web