Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

adelaidetermote

XLDnaute Nouveau
Bonjour tout le monde,

Je sollicite votre aide concernant un petit problème que je rencontre pour la constitution de tableau et de renvoie de référence.
J'ai utilisé des fonctions mais je n'arrive pas à obtenir ce qu je souhaite car excel me renvoie des données qui ne correspondent pas à la base....

Enfin je pense que vous comprendrez mieux avec mon petit fichier explicatif du problème que j'ai réalisé. J'espère qu'il sera assez claire sinon n'hésitez pas à m'écire. Voili voilou. Je débute un peu dans excel, j'ai quelques notions mais je sais que parfois une virgule peut faire un différence énorme, le problème c'est que sous excel je ne maîtrise pas encore ces notions...:(


Je vous remercie d'avance et Bonne journée

Adé
 

Pièces jointes

  • Fichier explicatif 2.xls
    27.5 KB · Affichages: 92

JNP

XLDnaute Barbatruc
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Bonjour AdelaideTermote :),
Ton fichier en retour. J'ai juste interverti tes tableaux (1, 2 et 3) car RechercheV ne cherche que dans la première colonne. L'ordre croissant n'a pas d'importance quand il est demandé une correspondance exacte ;).
Bon courage :cool:
 

Pièces jointes

  • Fichier explicatif.xls
    47.5 KB · Affichages: 106
  • Fichier explicatif.xls
    47.5 KB · Affichages: 108
  • Fichier explicatif.xls
    47.5 KB · Affichages: 104

adelaidetermote

XLDnaute Nouveau
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Bonjour JNP,

J'ai bien lu ta réponse et ça correspond bien à ce que je voulais je te remercie beaucoup.
Cependant j'aimerai bien avoir des explications concernant les formules, je comprend pas pourquoi on répète dans le code plusieurs fois SI(ESTNA(....

Parce que le problème que je vais avoir c'est que je vais rajouter au fil du temps des tableau dans la feuille 2. Donc j'ai peur de devoir répéter la formule pas mal de fois. Si j'ai bien compris on répete la formule juska ce que excel ai parcouru les tableau. Pour 2 tableaux ca a l'air faisaible, mais lorsque j'aurai une 20aine de tablraux ca risque d' être compliqué?? :confused:Ou alors j'ai pas du tout compris la formule ^^

En VBA ca serait peut être plus simple non?? Je sais pas lol je me pose des questions

dans tout les cas je te remercie ta réponse ca me donne déjà les fonctions que je dois utiliser.:eek:

Adé
 

JNP

XLDnaute Barbatruc
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Re :),
Cependant j'aimerai bien avoir des explications concernant les formules, je comprend pas pourquoi on répète dans le code plusieurs fois SI(ESTNA(....
SI(ESTNA(... me permet de vérifier si la RechercheV a trouver un résultat ou pas. Donc si elle n'a rien trouvé, je vais chercher dans un autre tableau, et ainsi de suite. Si vraiment je ne trouve rien, je renvoie "", càd rien.
Effectivement, à chaque fois que tu vas ajouter un tableau, la formule s'agrandira :p... Mais le plus logique serait de travailler avec un unique tableau :D... Par exemple en ajoutant une colonne à droite avec le type de ton tableau (MonoMur, Plâtre, etc.) que tu recopierais à chaque ligne.
Passer par VBA, pourquoi pas, mais de même, si tu ajoutes des tableaux, il faudra toujours modifier le code :rolleyes:...
Bon courage :cool:
 

adelaidetermote

XLDnaute Nouveau
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Bonjour,

Oki j'ai reussi a comprendre le fonctionnement de la fonction. Néanmoins je n'arrive pas à l'utiliser en la rééecrivant sur mon fichier source. La feuille que j'ai envoyé était jsute pour expliquer le principe. Le problème c'est que je n'arrive aps a comprendre pour quelles raisons?:confused:

Voila ce que j'ai écris

=SI(ET(ESTNA(RECHERCHEV(LIGNE()-28;Tab1;2;FAUX));ESTNA(RECHERCHEV(LIGNE()-28;Tab2;2;FAUX));ESTNA(RECHERCHEV(LIGNE()-28;Tab3;2;FAUX)));"";SI(ESTNA(RECHERCHEV(LIGNE()-28;Tab1;2;FAUX));SI(ESTNA(RECHERCHEV(LIGNE()-28;Tab2;2;FAUX));RECHERCHEV(LIGNE()-28;Tab3;2;FAUX);RECHERCHEV(LIGNE()-28;Tab2;2;FAUX));RECHERCHEV(LIGNE()-28;Tab1;2;FAUX)))

A mon avis ce la doit se situer au niveau du ligne()-28 que je ne comprend pas trop. J'ai bine défini les tableau Tab1 Tab2 Tab3.

Il ne m'affiche rien dans la case why?:confused: Faut avouer que je débute un peu dans excel et il se trouve que j'en ai besoin pour une application et je rame je rame ....:)

Voici le fichier en pièce jointe

Je vous remercie déjà ppour les précédents réponses, parce que c'est bien ça que je cherchais a mettre en place:eek:

Voili Voilou

Bonne journée

Adé
 

Pièces jointes

  • Fichier Eplxicatif 2.xls
    42.5 KB · Affichages: 105

ROGER2327

XLDnaute Barbatruc
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Bonjour à tous
Vous pouvez parfaitement utiliser une procédure VisualBasic qui permet d'ajouter des tableaux dans les deux feuilles sans avoir à modifier le code. Par exemple :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim i, j, k, l, m
Dim oClass(1 To 12, 1 To 1), oRc(1 To 12, 1 To 1), oPuTu(1 To 12, 1 To 2), oDat(), oDat2()
  For i = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
    If Cells(1, i).Value Like "Tableau *" Then
      oDat = Range(Cells(3, i + 1), Cells(16, i + 2).End(xlUp)).Value
      For j = 2 To UBound(oDat, 1)
        If Not IsEmpty(oDat(j, 2)) Then
          If IsNumeric(oDat(j, 2)) Then
            oClass(oDat(j, 2), 1) = oDat(j, 1)
            With Feuil2
              For k = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column
                If Not IsEmpty(.Cells(1, k)) Then
                  oDat2 = .Range(.Cells(5, k), .Cells(.Rows.Count, k).End(xlUp)).Resize(, .Cells(3, k).MergeArea.Count).Value
                  For l = 1 To UBound(oDat2, 2)
                    If oDat2(1, l) = "R" Then Exit For
                  Next l
                  If l <= UBound(oDat2, 2) Then
                    For m = 2 To UBound(oDat2, 1)
                      If oDat2(m, 1) = oDat(j, 1) Then Exit For
                    Next m
                    If m <= UBound(oDat2, 1) Then
                      oRc(oDat(j, 2), 1) = oDat2(m, l)
                      For l = 1 To UBound(oDat2, 2)
                        If oDat2(1, l) = "PU" Then Exit For
                      Next l
                      If l <= UBound(oDat2, 2) Then
                        oPuTu(oDat(j, 2), 1) = oDat2(m, l)
                      End If
                      For l = 1 To UBound(oDat2, 2)
                        If oDat2(1, l) = "TU" Then Exit For
                      Next l
                      If l <= UBound(oDat2, 2) Then
                        oPuTu(oDat(j, 2), 2) = oDat2(m, l)
                      End If
                      Exit For
                    End If
                  End If
                End If
              Next k
            End With
          End If
        End If
      Next j
    End If
  Next i
  Range("B25:B36").Value = oClass
  Range("H25:H36").Value = oRc
  Range("K25:L36").Value = oPuTu
End Sub[/B][/COLOR]
Voyez l'application dans le classeur joint.​
ROGER2327
#4248


Vendredi 27 Absolu 138 (Saintes Gigolette et Gaufrette, dogaresses, SQ)
13 Vendémiaire An CCXIX
2010-W40-1T14:27:34Z
 

Pièces jointes

  • Copie de Fichier explicatif 2.xls
    32.5 KB · Affichages: 75

JNP

XLDnaute Barbatruc
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Bonjour Roger :),
Et bien, que dire d'autre que... Félicitation ;).
J'essayerai de l'analyser quand j'aurai un bout de temps de libre :rolleyes:.
Bonne soirée :cool:
 

adelaidetermote

XLDnaute Nouveau
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Merci ROGER c'est exactement le type de VBA que je recherchai...

Le seul souci c'est que je n'arrive pas du tout à l'utiliser sur mon fichier, je ne sais pas par ou commencer. Parce que j'ai des décalge de cellule et les tableaux sont réaliser autrement....Si vous pouviez m'eclairer sur les variable que l'on peut modifier.:confused:

En tout cas chapeau bas pour ce programme je l'ai test c'est impeccable!!!:eek:

Maintenant faudrait que j'arrive a l'utiliser avec d'autre donnée c'est pas dla tarte

Merci beaucoup

Adé
 

ROGER2327

XLDnaute Barbatruc
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Re...
Merci ROGER c'est exactement le type de VBA que je recherchai...

Le seul souci c'est que je n'arrive pas du tout à l'utiliser sur mon fichier, je ne sais pas par ou commencer. Parce que j'ai des décalge de cellule et les tableaux sont réaliser autrement....Si vous pouviez m'eclairer sur les variable que l'on peut modifier.:confused:

En tout cas chapeau bas pour ce programme je l'ai test c'est impeccable!!!:eek:

Maintenant faudrait que j'arrive a l'utiliser avec d'autre donnée c'est pas dla tarte

Merci beaucoup

Adé
Posez votre véritable problème si vous voulez avoir des réponses utiles. Je commence à me lasser de résoudre des problèmes qui ne se posent pas...
(J'écris mes réponses par plaisir, mais j'ai malgré tout l'impression de perdre mon temps...)​
ROGER2327
#4251


Vendredi 27 Absolu 138 (Saintes Gigolette et Gaufrette, dogaresses, SQ)
13 Vendémiaire An CCXIX
2010-W40-1T15:18:51Z
 

adelaidetermote

XLDnaute Nouveau
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Oki désolé, je vous donne direct le fichier exemple que j'ai je pense en effet ca sera plus simple :(

En fait c'est exactement le meme problème avec disposition différente des cellules...Et ca buguote

Voili voilou

Merci beaucoup

Adé
 

Pièces jointes

  • Fichier Determination.xls
    41.5 KB · Affichages: 86

ROGER2327

XLDnaute Barbatruc
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Re...
C'est effectivement tout autre chose ! La base de données est problématique : on trouve par exemple la référence P en O43, O48, AE43, AE48. Comment choisir ?
On pourrait imaginer de se référer aux intitulés Isolation Intérieure et Isolation Extérieure, mais ensuite ? Il n'y a rien dans les lignes43 et 48 qui permettent de choisir.
De plus, si on trouve bien les intitulés Isolation Intérieure et Isolation Extérieure dans la feuille Feuil1, on y trouve pas Matériau Porteur Pincipal.
C'est trop compliqué pour moi en l'état... Pour exploiter une base de données, j'ai besoin d'une clef unique, même si elle résulte de plusieurs champs.
Désolé.​
ROGER2327
#4254


Vendredi 27 Absolu 138 (Saintes Gigolette et Gaufrette, dogaresses, SQ)
13 Vendémiaire An CCXIX
2010-W40-1T16:27:58Z
 

ROGER2327

XLDnaute Barbatruc
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Suite...
Est-il possible d'apporter quelques modifications à l'agencement du classeur ?
Si oui, étudiez le classeur joint. Si les modifications (et les quelques contraintes) que je décris sont possibles, il sera relativement facile d'adapter le code proposé plus haut.
Si la réponse est non, il est inutile que je tente l'adaptation.
ROGER2327
#4259


Vendredi 27 Absolu 138 (Saintes Gigolette et Gaufrette, dogaresses, SQ)
13 Vendémiaire An CCXIX
2010-W40-1T23:35:11Z
 

Pièces jointes

  • adelaidetermote_4259.xls
    40.5 KB · Affichages: 93

adelaidetermote

XLDnaute Nouveau
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Bonjour Roger,

J'ai bien lu les modifications et les contraintes du fichier que vous avez envoyé en retour. En effet je ne vois pas de souci pour que le fichier suive les remarques que vous avez noté. :eek:
Voili voilou merci d'avoir résolu mon problème:) j'attend l'adaptation avec impatience alors peut être je comprenderai mieux comment ça fonctionne.

A bientot

Adé
 

ROGER2327

XLDnaute Barbatruc
Re : Fonction RECHERV et renvoi de données par ordre croissant dans un tableau

Re...
Je ferai ça, mais ne soyez pas trop impatient. Non que ce soit très long à faire : je vais devoir m'absenter quelques jours et je n'aurai peut-être pas le temps de le faire avant de partir. Ce sera donc soit dans la journée, soit dans quelques jours...​
ROGER2327
#4263


Samedi 28 Absolu 138 (Xylostomie, V)
14 Vendémiaire An CCXIX
2010-W40-2T06:57:28Z
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 323
Membres
102 862
dernier inscrit
Emma35400