Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
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 14/12/2011, 18h17   #1
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut Boucler sur les variables tableaux

Bonsoir le Forum,

J'ai beau lire, peut-être mal ou trop rapidement, les tutoriels de Michel et Didier,
je n'arrive pas à boucler sur les variables tableaux que j'ai déclarés dans mon code.

Exemple basique qui ressort en erreur

Si 2 tableaux Tableau1 et Tableau2

Code :
1
2
3
For I = 1 To 2
     Debug.Print Ubound(Tableau & i)
Next I
Par avance, je vous remercie
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 19h09   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonsoir Marcel
C'est comme si tu mettaisOn ne peut pas concaténer la lettre y et le chiffre 1 pour appeler la variable y1
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/12/2011, 19h11   #3
Membre chevronné
 
Avatar de defluc
 
Architecte
Inscription : mai 2002
Messages : 1 057
Détails du profil
Informations personnelles :
Âge : 62

Informations professionnelles :
Activité : Architecte

Informations forums :
Inscription : mai 2002
Messages : 1 057
Points : 745
Points : 745
Je ne vois pas la déclaration de "Tableau".
C'est une feuille, une Array, une chaine de caractère constituant le nom d'une feuille ou d'une Array ?
defluc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 20h57   #4
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 696
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 696
Points : 1 448
Points : 1 448
Bonsoir,

Une bidouille avec une collection
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Sub Test()
Dim Tableau1()
Dim Tableau2()
Dim Tablo As New Collection
    Tableau1 = Range("A1:B10")
    Tableau2 = Range("D1:H20")
        Tablo.Add Item:=Tableau1
        Tablo.Add Item:=Tableau2
        For i = 1 To 2
            MsgBox "Tableau" & i & "; Dimension 1 : " & UBound(Tablo(i), 1) & Chr(10) & _
            "Tableau" & i & "; Dimension 2 : " & UBound(Tablo(i), 2)
        Next i
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2011, 11h02   #5
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut collections

Bonjour le Forum,

Merci à vous trois pour vos réponses.

Mercatog

En effet, un tableau est avant tout un type de variable.
Je croyais utiliser la même méthode que celle concernant par exemple les contrôles dans un code Userform (Textbox1 peut se coder également Controls(« Textbox 1»), ce qui permet une concaténation)

Defluc

Ici, j’ai indiqué, dans cet extrait de code, la propriété Ubound. Dans mon esprit, et sachant que j’utilise la version 2003 d’Office, le terme « Tableau » s’affecte donc à une variable VBA Array.

Gfzt82

Bravo pour cette astuce! Elle permet une boucle sur les items de la collection, et donc sur les variables Tableau.
(Je faisais allusion au code proposé dans la discussion ouverte par l’ami potemkine.)


Bonne journée à tous.
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 18h33   #6
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonsoir,

Tant qu'à faire de travailler sur des tableaux, y rester

Donc utiliser un tableau de tableaux et la structure For Each faites pour...

Citation:
Envoyé par Aide VBA
For Each...Next, instruction

Répète un groupe d'instructions pour chaque élément d'un tableau ou d'une collection.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Soluce()
Dim varElement As Variant
Dim varElement2 As Variant
Dim tboMonTableauOne
Dim tboMonTableauTwo
Dim tboLeTout As Variant
 
tboMonTableauOne = Range("A1:B10")
tboMonTableauTwo = Range("E1:F12")
 
tboLeTout = Array(tboMonTableauOne, tboMonTableauTwo)
 
For Each varElement In tboLeTout
    For Each varElement2 In varElement
        Debug.Print varElement2
    Next varElement2
Next varElement
 
End Sub
Cordialement,

Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 14h24   #7
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
Par défaut Tableau dans Tableau

Bonjour Didier,

Mes excuses pour cette réponse tardive.

En effet, l'imbrication de Tableaux semble aussi intéressante. Je n'y avais d'ailleurs jamais pensé!

Merci donc. Et merci aussi pour les tutoriels (notamment ceux concernant les variables Tableau et les Dates).
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG 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 04h58.


 
 
 
 
Partenaires

Hébergement Web