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 03/07/2009, 15h24   #1 (permalink)
Membre actif
 
Date d'inscription: novembre 2005
Messages: 184
Par défaut structure association clé - valeur

Bonjour,

Est-ce qu'il existe une structure en VBA, où je pourrais avoir une association clé - valeur?

Parce que par exemple avec un tableau déclaré de cette manière:

Code :
Dim ListeNumColonnes As Variant
ListeNumColonnes = Array(-1, -2, 4, -3, 5, 1)
Je sais que ListeNumColonnes(0) = -1.....etc....

mais j'aimerais pouvoir par exemple avec un tableau de la forme
ListeNumColonnes2(12) = 13
ListeNumColonnes2(3) = 4

par exemple pour faire une correspondance entre une clé et une valeur.

Je vous remercie :-)
thierry_b est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 20h00   #2 (permalink)
Expert Confirmé
 
Avatar de Krovax
 
Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
Par défaut

Je ne voi pas du tout ce que tu cherche a faire, visiblement tu sais un peu près te servire des tableau, au cas ou un lien ici
http://silkyroad.developpez.com/vba/tableaux/

Après ta deuxième parti je ne vois pas du tout
esaye ca
Code :
 
'etc....
'et pour lire une valeur
msgbox ListeNumColonnes2(12)+ListeNumColonnes2(3)
 
Sinon tu peux essayer un tableau a deux dimention

Code :
Dim ListeNumColonnes() As integer 
redim ListeNumColonnes2(1to2,1 to 12)
ListeNumColonnes2(1,12) = 13
ListeNumColonnes2(1,12) = 4
La valeur ListeNumColonnes2(1,n) corespond a la valeur ListeNumColonnes2(2,n)

Je ne sais pas si cela t'aide si ce n'est pas le cas il faudra être un peu plus précis
(au passage en faisant 1 to N tu na pas de tableau(0) les indice commence a 1, tu peu commencer a 5 si ca t'amuse
Krovax est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2009, 23h02   #3 (permalink)
Membre régulier
 
Date d'inscription: janvier 2009
Localisation: Fontenay aux roses
Messages: 123
Envoyer un message via MSN à Lynx92260
Par défaut Collection

Bonjour

Il suffit de créer une collection pour pourvoir associer une cle et une valeur.
L'exemple est tire de l'aide de vba permettra facilement de répondre au besoin de thierry_b !

Code :
 
Sub ClassNamer()
    Dim MyClasses As New Collection    ' Crée un objet Collection.
    Dim Num    ' Compteur permettant d'individualiser les clés.
    Dim Msg As String    ' Variable devant contenir  la chaîne d'invite.
    Dim TheName, MyObject, NameList    ' Variants devant contenir les données.
    Do
        Dim Inst As New Class1    ' Crée une nouvelle instance de Class1.
        Num = Num + 1    ' Incrémente d'une unité la valeur de Num, puis
                            ' obtient un nom.
        Msg = "Veuillez affecter un nom à cet objet." & Chr(13) _
        & "Appuyez sur Annuler pour afficher les noms présents" _
        & "dans la collection."
        TheName = InputBox(Msg, "Nommez les éléments de Collection")
        Inst.InstanceName = TheName    ' Place le nom dans l'instance de
                                                ' l'objet.
        ' Si l'utilisateur a saisi un nom, ajoute  celui-ci à la 
        ' collection.
        If Inst.InstanceName <> "" Then
            ' Ajoute l'objet nommé à la collection.
            MyClasses.Add item := Inst, key := CStr(Num)
        End If
        ' Efface la référence en cours en prévision de la suivante.
        Set Inst = Nothing
    Loop Until TheName = ""
    For Each MyObject In MyClasses    ' Crée une liste des noms.
        NameList = NameList & MyObject.InstanceName & Chr (13)
    Next MyObject
    ' Affiche la liste des noms dans une zone de message.
    MsgBox NameList, , "Noms des instances présentes dans la" _
     & "collection MyClasses"
 
    For Num = 1 To MyClasses.Count    ' Supprime le nom de la collection.
        MyClasses.Remove 1                ' Puisque les collections sont
                                                ' réindexées automatiquement,
                                                ' supprime le premier membre à
    Next                                        ' chaque itération.
End Sub
 
 
Lynx92260 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 04h18.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.