Recherche d'information à résultat multiple

fets95

XLDnaute Junior
Bonjour, je suis en train d emettre en place un fichier (piece jointe)

Le principe est le suivant , via des userform je remplie le tableau avec pour la premiere page une incrémentation sur le numéro du devis, et d'autre part sur la 2eme feuille j'incrémente le numéro du plan.
J'aimerai que le premier tableau ai un remplissage automatique de la colonne numéro de plan ( si plusieur mettre une séparation entre les resultat comme une virgule ou autre peu importe :) ).
J'ai pensé a une simple recherche V du numéro de devis et en sortir le numéro du plan mais ce n'est pas possible car un devis peut posseder plusieur numéro de plan ( 1 2 3 10...20....)

Merci pour votre aide en esperant avoir été clair
Cordialement
 
C

Compte Supprimé 979

Guest
Re : Recherche d'information à résultat multiple

Salut Fets95,

Avec la création d'une petite fonction en VBA :D

Voir fichier joint (ALT+F11 pour l'éditeur VBA)

A+
 

Pièces jointes

  • Fets95_Classeur1.xls
    33.5 KB · Affichages: 108
  • Fets95_Classeur1.xls
    33.5 KB · Affichages: 105
  • Fets95_Classeur1.xls
    33.5 KB · Affichages: 106

fets95

XLDnaute Junior
Re : Recherche d'information à résultat multiple

Salut Fets95,

Avec la création d'une petite fonction en VBA :D

Voir fichier joint (ALT+F11 pour l'éditeur VBA)

A+

Merci beaucoup c'est exactement ce que je voulais je vais étudier la formule car je voudrai l'utiliser pour d'autre critere pourrais tu la décrires rapidement car je n'ai quasi aucune conaissance en vba :p je vais faire mes recherche de mon coté
merci encore
 
C

Compte Supprimé 979

Guest
Re : Recherche d'information à résultat multiple

Re,

Tout est écrit dans le code, à part peut-être
Code:
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
Qui va rechercher la dernière ligne remplie de la colonne "A"

L'instruction : CStr(.Range("B" & Lig))
Tranforme un nombre en texte, car dans ta première feuille les numéros de devis sont au format "Texte", dans ta 2ème feuille ils sont aur format "Standard"

L'instruction FindPlan = FindPlan & VPlan & ","
Concatène l'ensemble des plans trouvés

Voilà, j'espère que ce sera plus clair pour toi ;)
 

fets95

XLDnaute Junior
Re : Recherche d'information à résultat multiple

Salut Fets95,

Avec la création d'une petite fonction en VBA :D

Voir fichier joint (ALT+F11 pour l'éditeur VBA)

A+

Merci beaucoup c'est exactement ce que je voulais je vais étudier la formule car je voudrai l'utiliser pour d'autre critere pourrais tu la décrires rapidement car je n'ai quasi aucune conaissance en vba :p je vais faire mes recherche de mon coté
merci encore
 

fets95

XLDnaute Junior
Re : Recherche d'information à résultat multiple

Re,

Tout est écrit dans le code, à part peut-être
Code:
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
Qui va rechercher la dernière ligne remplie de la colonne "A"

L'instruction : CStr(.Range("B" & Lig))
Tranforme un nombre en texte, car dans ta première feuille les numéros de devis sont au format "Texte", dans ta 2ème feuille ils sont aur format "Standard"

L'instruction FindPlan = FindPlan & VPlan & ","
Concatène l'ensemble des plans trouvés

Voilà, j'espère que ce sera plus clair pour toi ;)

jE PASSE SUR AUTRE CHOSE EN ATTENDANT JE REPASSE DESSUS DES QUE J4AI LE TEMPS SI JE NE COMPRENDS PAS QUELQUE CHOSE JE POSERAI MA PETITE QUESTION MERCI BIEN
++
 

fets95

XLDnaute Junior
Re : Recherche d'information à résultat multiple

Re,
Je n'arrive pas a mettre la focntion qui a été ecrite précedement dans mon fichier original lorsque que je le met il ne se passe rien, y a t'il des chose a faire avant ou dois je le placer a un endroit particulier ?

merci
 
C

Compte Supprimé 979

Guest
Re : Recherche d'information à résultat multiple

Salut Fets95,

Est-ce que ta feuille originale est en calcul automatique !?

Ensuite dans la fonction rajoute peut-être l'instruction en bleue
Code:
Function FindPlan(NumDevis)
  Dim DerLig As Long, Lig As Long, VPlan As String
[COLOR=blue][B] Application.Volatile[/B][/COLOR]
  FindPlan = ""
  With Sheets("Feuil2")
    DerLig = .Range("A" & Rows.Count).End(xlUp).Row
    For Lig = 2 To DerLig
      VPlan = .Range("A" & Lig).Value
      ' Vérifier si le devis du plan correspond à la recherche
      If CStr(.Range("B" & Lig)) = NumDevis Then
        FindPlan = FindPlan & VPlan & ","
      End If
    Next Lig
  End With
  If Len(FindPlan) > 0 Then
    ' Enlever la dernière virgule
    FindPlan = Left(FindPlan, Len(FindPlan) - 1)
  End If
End Function

Dans tes cellules de recherche tu as bien mis la formule : =Findplan(A4) par exemple

A+
 

Discussions similaires

Réponses
20
Affichages
2 K

Statistiques des forums

Discussions
312 793
Messages
2 092 157
Membres
105 241
dernier inscrit
Mixlsm