RechercheV dans TextBox Concatener UserForm

Bonjour,

J'ai créé une feuille en RechercheV pour que les utilisateurs inscrivent une référence et un résultat y soit afficher.

Je souhaiterai que les utilisateur n'ai accès à l'ouverture que d'un fichier type "pop-up" sans avoir tout le classeur excel et la base de donnée. En gros, ils cliquent sur le fichier et ne s'ouvre que ça :

capture 55340bd

La partie A1:F7 est nommée en "Champ Nom"

Es-ce possible de n'ouvrir que ça ?

Merci d'avance.

Bonjour vobalex le forum

à l'ouverture de quoi de la feuille? du fichier contenant ta feuille?

à l'ouverture on peut ouvrir un userform avec tes valeurs dedans et à la fermeture on ferme le fichier

mais sans explications claires ?? pas simple

a+

Papou

C'est pas facile à expliquer ! C'est claire dans ma tête mais pas à l'écrit !!!

j'ai un classeur avec 2 feuilles, une base de donnée et une feuille en Fonction RECHERCHEV.

Je souhaiterais que les utilisateurs en ouvrant un fichier (excel ou autres) ne tombent que sur une "fenêtre" avec le petit tableau de A1 à F7 sans avoir tout le menu excel.

En gros en ouvrant le fichier il n'y a que ça qui apparaît à l'écran :

capture 55340bd

Je pense qu'il faut un userform mais je n'y suis pas encore !!!

Bonjour Vobalex le forum

Tu ouvres le fichier joint et tu me redis

on peut cacher l'application et n'avoir que l'userform mais je ne le fais pas sur le forum, par correction

a+

papou

80vobalex-v1.xlsm (16.20 Ko)

Merci à toi !

Entre temps et en farfouillant j'ai trouver ça et j'ai fait ça :

capture2 553423e

Qui s'affiche comme ça à l'ouverture.

Bouton "Retour Excel" configurer

Bouton "Masquer" configurer

Bouton "Quitter" configurer

Maintenant j'aimerais que quand je marque dans le UserForm mes infos dans "Année", "N°Marché", "Ligne", ça fasse le concaténer et en cliquant sur "Rechercher" ça affiche les infos de ce tableau en RECHERCHEV dans "Fournisseur" et "Mandat"

capture 5534245

Ca sera peut être plus parlant en joignant le fichier !

Merci d'avance

46mandat.xlsm (26.81 Ko)

Pfff je suis sur ce projet depuis 8h ce matin et ça avance !!! Mais je me tire les cheveux a cause de cette erreur :

capture3 553441f

Grace aux partages des uns et des autres sur le net j'ai pu avancé et j'arrive au but, si quelqu'un peut m’expliquer cette erreur ?

En vert dans le Code de l'UserForm

Le fichier est en PJ

Merci d'avance

39mandat2.xlsm (30.06 Ko)

Bonjour Vobalex le forum

Tu es d'une grande incorrection de ne pas prévenir de l'utilisation d'application.visible = false et surtout de ne pas être capable de prévoir la remise en place

Ton fichier en retour, mais tu ne vas rien comprendre c'est sur, car manifestement tu n'as pas le niveau!!!

a+

Papou

62vobalex-v2.xlsm (23.26 Ko)

Bonjour,

Je ne sais pas pourquoi la propriété "RowSource" apparaît dans l'intellisence pour un TextBox alors qu'elle n'est absolument pas géré par ce dernier ! Je pense que c'est lié au fait qu'un ComboBox est issu de la construction d'un TextBox et d'une ListBox.

Si tu veux lier un TextBox à une cellule, c'est la propriété "ControlSource" qu'il te faut utiliser mais pour une seule cellule. Une modification de la valeur de la cellule liée répercute cette modif dans le TextBox (UserForm en ShowModal = False) :

TextBox1.ControlSource = "Feuil1!A1"

Merci pour ces infos !

J'ai trouver une solution sans RowSource.

Je pense que le problème qui se pose est qu'avec un UserForm, on ne peux pas faire de rechercheV par rapport à un textbox Concatené.

Ma rechercheV fonctionne par rapport à un textBox non Concaténé.

Corrigez moi si je me trompe ?

Bonjour,

Après plusieurs jours de recherches, je suis dans l'impasse.

Je souhaite par rapport a une base de donnée avoir différents résultat de recherche.

Je souhaite utiliser VBA et UserForm et des TextBox.

Le problème est que la base de la recherche est sur 3 critères "une année", "un numéro", "une ligne".

Afin de facilité cette recherche j'ai concaténer dans ma base et dans mon UserForm mes 3 TextBox(1,2,3) afin d'avoir un résultat de la Concaténation dans le TextBox6.

J'ai l'impression qu'un VLookup ne fonctionne pas avec une Concaténation VBA (à l'inverse d'une rechercheV avec Concaténation).

La concaténation est obligatoire car d'année en année l'"année" et "numéro" peux changer mais les résultats recherché resterait le même.

Je mets en lien mon fichier qui a une base

Private Sub Workbook_Open()

ThisWorkbook.Application.Visible = True
Load Mandat
Mandat.Show 0

End Sub

en : Application.Visible = True

Merci d'avance.

64mandat3.xlsm (23.07 Ko)

Bonjour,

Comme tu veux avec VBA, utilises Find() :

Private Sub CommandButton4_Click()

    Dim Plage As Range
    Dim Cel As Range

    'défini la plage sur la colonne A à partir de A2
    With Worksheets("Feuil1"): Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With

    'recherche...
    Set Cel = Plage.Find(TextBox1.Text & TextBox2.Text & TextBox3.Text, , xlValues, xlWhole)

    '...et résultat situé en colonne E !
    If Not Cel Is Nothing Then MsgBox Cel.Offset(, 4).Value Else MsgBox "Valeurs non trouvées !"

End Sub

Maintenant, si tu ne veux plus de cellule avec concaténation, supprime la colonne A et utilise Find() avec FindNext() de façon à rechercher en premier l'année puis ensuite, les deux autres valeurs devant se trouver sur la même ligne :

Private Sub CommandButton4_Click()

    Dim Plage As Range
    Dim Cel As Range
    Dim Adr As String
    Dim Resultat As String

    'défini la plage sur la colonne A à partir de A2
    With Worksheets("Feuil1"): Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With

    'recherche en premier l'année
    Set Cel = Plage.Find(TextBox1.Text, , xlValues, xlWhole)

    'si trouvée...
    If Not Cel Is Nothing Then

        Adr = Cel.Address

        Do
            'recherche les deux autres valeurs dans les colonnes à coté et sur la même ligne
            If Cel.Offset(, 1).Value = TextBox2.Text And Cel.Offset(, 2).Value = TextBox3.Text Then

                'l'ensemble des trois valeurs étant sensé être unique, sortie de la recherche
                'comme la colonne de concaténation n'est plus, retourne la valeur en colonne D
                Resultat = Cel.Offset(, 3).Value: Exit Do

            End If

            'continu la recherche sur les années
            Set Cel = Plage.FindNext(Cel)

        Loop While Adr <> Cel.Address

        MsgBox Resultat

    Else

        MsgBox "Mots non trouvés !"

    End If

End Sub
Rechercher des sujets similaires à "recherchev textbox concatener userform"