Problème de sélection de plage de données

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 !

sky_bilout

XLDnaute Nouveau
Bonjour à tous!
J'ai des petits soucis pour définir une plage de données avec des cellules non voisines. Je voulais tout simplement dans ma formule séparer les cellules d'un point virgule mais du coup à l'intérieur de ma formule, Excel crois que je passe au paramètre suivant et tombe en erreur.
Explication: en réalité je veux utliser la fonction bdlire qui est comme suit:
=bdlire(plage_de_donnée; champs; critères)

Ma plage de données A1:B6 du feuillet "SOURCE":
Champs1 - Champs2
a - 1
b - 2
c - 3
d - 4
e - 5

A partir de cette liste je voudrais remplir la liste suivante A1:B2 du feuillet "RESULTAT":

Champs1 - Champs2
b - ???

j'ai donc fait dans la case "???":
=bdlire(SOURCE!A1:B6; SOURCE!B1; RESULTAT!A1:A2)

et donc à la place de ???? apparaît 2, jusqu'ici pas de soucis!!

j'en arrive au problème: en fait je veux le résultat sur plusieurs lignes:
Champs1 - Champs2
a - ???
c - ???
e - ???

Pour la première ligne >> toujours aucun souci puisque la plage de données est Feuill2!A1:A2 donnée pour le paramètre "critère" (désolé pour la confusion, à ne pas confondre avec le premier paramètre qui s'appelle "plage de données"...)

En revanche, pour saisir le paramètre "critère" des 2 lignes suivantes, j'ai voulu mettre:
=bdlire(SOURCE!A1:B6; SOURCE!B2; RESULTAT!A1;A3)
=bdlire(SOURCE!A1:B6; SOURCE!B2; RESULTAT!A1;A4)

parcequ'à chaque fois je ne dois sélectionner pour le paramètre "champs" de bdlire que le nom de la colonne et la valeur que je veux lui donner(soit a soit c soit e)

quelqu'un peut me dire commet dans la formule lui donner ses 2 cellules le nom du champs et sa valeur, autrement que par le ";"?

Merci beaucoup!!
 
Re : Problème de sélection de plage de données

Bonjour,

Il semblerait que cette fonction ne fonctionne pas sur des critères en ligne avec un seul nom de champ en en-tête
comme vous le spécifiez dans votre message. En revanche cela fonctionne si on met les critères en colonne chacun
avec un en-tête (nom du champ). Mais je ne suis pas spécialiste de cette formule et, peut être, la solution existe.

Je vous propose l'emploi d'une fonction personnalisée qui comporte 4 arguments
DataBase : correspond à l'entièreté de votre base de données (titres des champs inclus)
NomChampEquivalence : adresse du champ dans lequel on doit trouver une équivalence
NomChampReponse : adresse du champ dans lequel on désire trouver la cible à afficher
Critere : critere de recherche dans le ChampEquivalence pour trouver la cible dans le ChampReponse

Il faudra inclure dans l'usage de cette fonction les $ pour obtenir des références absolues selon le cas.

Code à copier dans un module standard

Code:
Function BDLIRE_pmo( _
    DataBase As Range, _
    NomChampEquivalence As Range, _
    NomChampReponse As Range, _
    Critere As Range) As Variant
Dim var
Dim i&
Dim j&
Dim ChampDBCol&
Dim ChampCritCol&
var = DataBase
For j& = 1 To UBound(var, 2)
    If NomChampEquivalence = var(1, j&) Then
      ChampDBCol& = j&
    ElseIf NomChampReponse = var(1, j&) Then
      ChampCritCol& = j&
    End If
Next j&
For i& = 1 To UBound(var, 1)
  If var(i&, ChampDBCol&) = Critere Then
    BDLIRE_pmo = var(i&, ChampCritCol&)
  End If
Next i&
End Function

Voir les exemples d'utilisation dans la feuille "test" du classeur joint.

Bon courage.

Cordialement.

PMO
Patrick Morange
 
- 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

  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
447
Retour