Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Cherche une valeur dans un Array multi-colonne

  • Initiateur de la discussion Initiateur de la discussion Zdz16
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Zdz16

XLDnaute Occasionnel
Bonjour A tous;

J'ai déclaré dans une procédure VBA un Array avec un type que j'ai défini comme suit :

Code:
Public Type DataField
   FieldName As String
   FieldType As string
   FieldDesc As String
   FieldValeu As String
   FieldNum As Integer
end Type

Dim MonTab(10) as DataField                               '10 est à titre d'exemple

Le chargement du tableau ne pose pas de souci. Mais je voudrai trouver une solution simple pour cherche une valeur dans le tableau. Par exemple cherche une valeur dans l'élement 'MonTab.FieldName' de tout le tableau 'MonTab'.

Bien sur il y a la solution via les boucles. Mais y aura-t-il une solution plus économique ?

Merci a vous
 
Re : Cherche une valeur dans un Array multi-colonne

Bonsoir,
regarde peut-être du côté de Find. Comme ton exemple ne comporte aucun Array diffcile de tester (tu parles d'un Array multicolonne mais tu présentes un array à une dimension (MonTab(10))...
A+
 
Re : Cherche une valeur dans un Array multi-colonne

Bonsoir,

Ce n'est pas un Array multi-colonnes. C'est un Array de structures 1D.

Code:
Type Personne
  Nom As String
  age As Integer
End Type

Sub essai()
  Set d = CreateObject("Scripting.Dictionary")
  n = 5
  Dim a() As Personne: ReDim a(1 To n)
  Dim temp As Personne
  a(1).Nom = "Dupont": a(1).age = 40
  a(2).Nom = "Balu": a(2).age = 30
  a(3).Nom = "Charlie": a(3).age = 20
  a(4).Nom = "Durand": a(4).age = 25
  a(5).Nom = "Campas": a(5).age = 35
  '--- indexation de la table avec un dico
  For i = 1 To n
    d(a(i).Nom) = i
  Next i
  '----  Recherche
  NomCherché = "Balu"
  MsgBox a(d(NomCherché)).age
End Sub

Avec un tableau classique 2D:

Code:
Sub RecherchePositionElement2()
  a = [{"aa",11;"bb",22;"cc",33;"dd",44}]
  clé= "cc"
  p = Application.Match(clé, Application.Index(a, , 1), 0)
  MsgBox a(p, 2)
End Sub

On obtient 33

Un tableau de structures peut être remplacé par une classe BD: Classe Base de données

JB
 
Dernière édition:
Re : Cherche une valeur dans un Array multi-colonne

Merci les amis,
Effectivement, c'est une erreur de ma part de dire 'Multi-Colonnes'. C'est plutôt à une dimension dont chaque élement suit une structure bien definit.

Merci à JB : L'idée me parait parfaite, je vais essayer de la tester.

Enfin et pour information, je cherche à mapper des colonnes d'un fichier texte (avec séparateur) et la structure d'une table BD (Access) afin de réaliser l'importation avec VBA avec conversion des données selon le type des données dans la table et affectation des valeurs au bonnes zones et enfin un compte rendu de l'importation.

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

E
Réponses
6
Affichages
1 K
erictran
E
J
Réponses
22
Affichages
3 K
jui42
J
B
Réponses
6
Affichages
1 K
Benoit72
B
Y
Réponses
3
Affichages
885
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…