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 :
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 :
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
Merci à toi !
Entre temps et en farfouillant j'ai trouver ça et j'ai fait ça :
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"
Ca sera peut être plus parlant en joignant le fichier !
Merci d'avance
Pfff je suis sur ce projet depuis 8h ce matin et ça avance !!! Mais je me tire les cheveux a cause de cette erreur :
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
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
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.
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