Visualiser une Box d'inforamation à partir d'une recherche

  • Initiateur de la discussion Initiateur de la discussion Chri8Ed
  • Date de début Date de début

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 !

Chri8Ed

XLDnaute Occasionnel
Bonjour

J’ai une feuille assez volumineuse,

J’ai essayé de réaliser une macro, mais sans grands résultats, faute de connaissances suffisantes

Le but de cette macro comprend en fait 2 choses :

1) Faire apparaitre une Box qui reprend certaines informations de ma feuille

2) L’article sélectionné se ferait à partir d’une recherche intuitive dans ma feuille
(à Partir de colonne A)

Ex : A2 = Télévision TFT et A3 = Télévision Cathodique
Je tape Télévision, la recherche me liste tous les articles comportant ce mot
Dans le cas présent, il m’indique « Télévision TFT »
« Télévision Cathodique »

Je clique sur l’un d’eux pour faire apparaitre la fiche concernant ce produit.

Pour être plus compréhensif, j’ai réalisé une feuille d’exemple avec des
articles imaginatifs que je joins à ma discussion.

Merci d’avance si une personne est en mesure de m’apporter une aide.
 

Pièces jointes

Dernière édition:
Re : Visualiser une Box d'inforamation à partir d'une recherche

Bonsoir

Peut-être que ma demande de recherche telle que je la souhaiterais est impossible.

Est-il possible alors de lancer la recherche Excel en la limitant à une seule colonne ?
 
Re : Visualiser une Box d'inforamation à partir d'une recherche

Bonjour Chri8Ed 🙂,
Ta demande est parfaitement réalisable, mais plutôt en passant par un USF 🙄.
Tu peux t'inspirer de ce fil qui contient certes beaucoup de littérature 😛, mais qui est facilement adaptable à ton cas, et où, ayant beaucoup décomposé le code, tu devrais aisément pouvoir faire les modifications nécessaires 😉.
Si tu as besoin de compléments d'information, reviens vers nous 😀.
Très bonne lecture 😎
 
Re : Visualiser une Box d'inforamation à partir d'une recherche

Bonjour JNP

Merci pour ton aide

J'ai regardé le fil que tu m'a indiqué

En ce qui concerne la recherche, je ne vois rien qui corresponde à ce que je souhaite.

Par contre en ce qui concerne la "Box d'information" cela pourrait fort bien m'inspirer.

Cependant, il est vrai que l'utilisation de USF plutôt que de MsgBox est préférable, car il me semble beaucoup plus paramétrable. Mais malheureusement, je ne suis déjà arrivé à rien avec les MsgBox, il me semble que c'est trop costaud pour moi.

Je vais toujours essayé quand-même de comprendre, si tu as un exemple un peu plus simple, je suis preneur ....

A+
 
Re : Visualiser une Box d'inforamation à partir d'une recherche

Re 🙂,
En ce qui concerne la recherche, je ne vois rien qui corresponde à ce que je souhaite.
A l'ouverture de l'USF, tu charges tes caractéristiques à la place des associations.
Quand tu saisis Tél, il te propose Télévision Cathodique et si tu clique sur le menu du combo, tout de suite en dessous tu as Télévision TFT comme autre choix possible.
Je ne vois pas ce que tu peux rêver de mieux 😛.
Enfin, c'est toi qui vois 🙄.
Bon courage 😎
 
Re : Visualiser une Box d'inforamation à partir d'une recherche

Bonjour Chri8Ed, le forum,
Avec un fichier en ma possession, j’ai adapté ton exemple. Ta « Feuil1 » est devenue « base », et l’Userform se trouve sur l’onglet « achats ».
J’espère que ce fichier te rendra service pour terminer ton projet.
Cordialement,
Bernard
 

Pièces jointes

Re : Visualiser une Box d'inforamation à partir d'une recherche

Bonjour Bernard

Merci pour ton aide

Ton fichier pourrait en effet fort bien me convenir

Cependant il y a une problème :
Dès que j'active la macro, cela bloque Excel
Je peux bien sélectionner les éléments, mais je ne peux en sortir
Pour quitter la feuille ou même Excel, je suis obligé d'avoir recours au gestionnaire des tâches.

Autres choses, je ne peux pas voir la fin de l'Userform
Et je ne vois pas non plus la macro.

Bonne journée
 
Re : Visualiser une Box d'inforamation à partir d'une recherche

Bonjour à tous,

Pour le fun voici une démarche qui utilise le HTA (Html Application) et j'aimerais savoir si cela marche chez tout le monde. Merci de me le dire.
(uniquement pour PC)

1) créez un UserForm1 avec une TextBox1 et une ListBox1 ainsi que 2 CommandButton(1 et 2)
2) dans la fenêtre de code du UserForm copiez le code suivant

Code:
Private Sub GetLine()
On Error Resume Next
If ListBox1.ListCount > 0 Then
  LigneSelect = ListBox1.Column(1)
  If Err <> 0 Then Exit Sub
  Call RowSelection
  Unload Me
End If
End Sub

Private Sub CommandButton1_Click()
Call GetLine
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call GetLine
End Sub

Private Sub TextBox1_Change()
Dim S As Worksheet
Dim R As Range
Dim var
Dim i&
Dim j&
Dim A$
Dim B$
Dim T()
On Error GoTo Erreur
Set S = Sheets(NOM_FEUILLE)
Set R = S.Range("a1:a" & S.[a65536].End(xlUp).Row & "")
var = R
A$ = LCase(TextBox1.Text)
For i& = 2 To UBound(var, 1)
  B$ = LCase(Trim(var(i&, 1)))
  If Mid(B$, 1, Len(A$)) = A$ Then
    j& = j& + 1
    ReDim Preserve T(1 To 2, 1 To j&)
    T(1, j&) = var(i&, 1)
    T(2, j&) = i&
  End If
Next i&
If j& = 0 Then
  ListBox1.Clear
  TextBox1.Text = Mid(TextBox1.Text, 1, Len(TextBox1.Text) - 1)
  Exit Sub
End If
If j& > 1 Then
  ListBox1.List = Application.WorksheetFunction.Transpose(T)
ElseIf j& = 1 Then
  ListBox1.Column = T
End If
Exit Sub
Erreur:
Select Case Err
  Case 9
    MsgBox "La feuille ''" & NOM_FEUILLE & "'' est introuvable."
  Case Else
    MsgBox "Erreur : " & Err.Number & vbCrLf & Err.Description
End Select
End Sub

Private Sub UserForm_Initialize()
With Me
  .Caption = "Recherche (accès rapide)"
  .CommandButton1.Caption = "Fiche du produit"
  .CommandButton2.Caption = "Quitter"
  .ListBox1.ColumnCount = 2
  .ListBox1.ColumnWidths = "50;0"
End With
End Sub

3) dans un module standard copiez le code suivant en adaptant à votre usage la constante cernée par des ###

Code:
'### Adapter le nom de la feuille concernée ###
Public Const NOM_FEUILLE As String = "Feuil1"
'##############################################
Public LigneSelect As Long

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub RechercheSelection()
UserForm1.Show (vbModeless)
End Sub

Sub RowSelection(Optional dummy As Byte)
Dim S1 As Worksheet
Dim S2 As Worksheet
Dim R As Range
Dim C As Range
Dim i&
Dim j&
Dim A$
Dim B$
Dim Titre$
Set S1 = Sheets(NOM_FEUILLE)
S1.Rows(1).Copy
Sheets.Add
Set S2 = ActiveSheet
S2.Paste
S1.Rows(LigneSelect).Copy
S2.[a2].Select
S2.Paste
Application.CutCopyMode = False
Set R = S2.[a1].CurrentRegion
For j& = 1 To R.Columns.Count
  A$ = ""
  For i& = 1 To R.Rows.Count
    Set C = R(i&, j&)
    If i& = 1 Then
      A$ = C & " : "
    Else
      If j& = 1 Then Titre$ = C
      A$ = A$ & C
    End If
    If Not C.Comment Is Nothing Then
      A$ = A$ & Chr(10) & C.Comment.Text
    End If
    If i& = 2 Then B$ = B$ & A$ & Chr(10) & Chr(10)
  Next i&
Next j&
B$ = Replace(B$, Chr(10), "<br>")
Application.DisplayAlerts = False
S2.Delete
Application.DisplayAlerts = True
Call MakeHTA(Titre$, B$)
End Sub

Sub MakeHTA(Titre As String, maChaine As String)
Dim A$
Dim oShell As Object
Const MON_HTA As String = "c:\MONFICH_pmo.hta"
A$ = A$ & vbCrLf & "<html><HEAD><TITLE>" & Titre & _
  "</TITLE><HTA:APPLICATION ID = 'pmo'>SHOWINTASKBAR=" & _
  Chr(34) & "Yes" & Chr(34) & "</HEAD>"
A$ = A$ & "<FONT face=" & Chr(34) & "Calibri" & Chr(34) & "color=" & _
  Chr(34) & "#0000FF" & Chr(34) & " size=2>"
A$ = A$ & vbCrLf & "<SCRIPT Language=" & Chr(34) & "VBScript" & Chr(34) & ">"
A$ = A$ & vbCrLf & "Window.resizeTo 300, 400"
A$ = A$ & vbCrLf & "Window.moveTo 900, 100"
A$ = A$ & vbCrLf & "</SCRIPT><BODY>"
A$ = A$ & vbCrLf & maChaine
A$ = A$ & vbCrLf & "</BODY></html>"
Open MON_HTA For Output As #1
  Print #1, A$
Close #1
Sleep 700
Set oShell = CreateObject("wScript.Shell")
oShell.Run (MON_HTA)
Set oShell = Nothing
Sleep 700
Kill MON_HTA
End Sub
4) lancez la macro RechercheSelection

Cordialement.

PMO
Patrick Morange
 
Dernière édition:
Re : Visualiser une Box d'inforamation à partir d'une recherche

Bonsoir Chri8Ed, le forum,
Le fichier a été réalisé sous Excel 2007. Si problème, je te l’adresserai sous 97-2003.
J’ai enlevé le code qui bloquait la fermeture de l’userform par la croix blanche sur fond rouge.
J’ai réduit la hauteur de l’userform pour te permettre de le voir entièrement à l’écran.
Pour voir la macro, tapez Alt+F11, puis click droit sur Feuilles/Ufconsprixart/et sélectionner Code.
Cordialement,
Bernard
 

Pièces jointes

Re : Visualiser une Box d'inforamation à partir d'une recherche

Bonsoir Bernard, le forum,

Merci pour ta correction,

Maintenant cela fonctionne parfaitement

J’ai bien tout le tableau et j’ai bien accès aux macros

En fait auparavant, je pouvais seulement activer la macro, tout le reste était bloqué.

C’est exactement ce que j’avais besoin. 🙂



Il reste deux choses :

1) Les commentaires : Je m’étais peut-être mal fait comprendre, il s’agit de reprendre les commentaires liés aux cellules « Dates » j’ai seulement indiqué par simplification Commentaire 1, Commentaire 2, Commentaire 3….., évidement ce n’est qu’un exemple, mais j’ai besoin de reprendre ces commentaires dans le tableau

2) La 2ème est peut-être plus compliquée, c’est la recherche !

Dans mon exemple, encore par simplification, j’ai mis télévision TFT, mais en fait le mot « télévision » dans ma liste peut très bien être au milieu de la cellule : « Un poste de télévision »
Donc si je tape la lettre <T>, je ne verrais jamais la cellule que je cherche, pour le voir, il faudrait que je tape <U> !

Est-ce réalisable ???

Merci encore

Cordialement
 
Dernière édition:
Re : Visualiser une Box d'inforamation à partir d'une recherche

Bonjour

Je suis toujours à la recherche de codes pour ces deux choses

1) Les commentaires : Je souhaite reprendre les commentaires liés aux cellules de mon tableau pour les inclure dans mon UserForm

2)Recherche : Je souhaite faire une recherche d'une chaine de caractères
à l'intérieur d'une cellule pour valider ma sélection dans mon UserForm
Exemple, Trouver le mot "TFT" dans la celulle : « Un poste de télévision »

Est-ce réalisable ?

Merci d'avance

Cordialement
 
Re : Visualiser une Box d'inforamation à partir d'une recherche

Re 🙂,
1) Sélectionne une cellule avec commentaire et teste
Code:
Sub test()
MsgBox Selection.Comment.Text
End Sub
2) Sélectionne ta plage où se trouve ta TFT et teste
Code:
Sub test()
MsgBox Selection.Find("TFT", LookAt:=xlPart)
End Sub
Ensuite, regarde dans l'aide (F1) pour FindNext.
Bon courage 😎
 
Re : Visualiser une Box d'inforamation à partir d'une recherche

Bonjour JNP

Merci grâce à ton aide concernant la récupération des commentaires dans une MsgBox

J’ai pu trouver le code pour la même récupération dans ma TextBox 😛

J’ai testé ton 2ème code concernant la Recherche de caractères
Cela fonctionne bien, mais je n’arrive pas à l’adapter à mon programme
J’ai modifié le UserForm en conséquence . 🙁

- Le but serait de taper dans le < Cadre vert > « TFT »

1) De manière à faire apparaître dans le < Cadre rose > toutes les occurrences de la zone concernée
Soit Ex :
A) Télévision TFT
B) Ecran 22’ TFT

2) De pouvoir cliquer dans ce même cadre sur l’un des 2 exemples précédant

3) Faire apparaitre cet article ainsi sélectionné.

Mais là j’ai encore besoin d’un petit coup d’aide pour y arriver . 😕

Merci
 

Pièces jointes

Re : Visualiser une Box d'inforamation à partir d'une recherche

Re 🙂,
Si tu avais pris l'exemple de l'aide pour FindNext comme préconisé, tu aurais pu facilement écrire 🙄
Code:
Private Sub TextBox15_Change()
Dim c As Range, firstAddress As String
ListBox2.Clear
With Worksheets("base").Range("a:a")
    Set c = .Find(TextBox15.Text, LookAt:=xlPart, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            ListBox2.AddItem c.Text
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
End Sub
Bon courage 😎
 
Re : Visualiser une Box d'inforamation à partir d'une recherche

Rebonjour JNP

Et remercie 🙂

A présent j’ai bien la recherche de caractère qui s’effectue comme je voulais
Mais je suis confronté à un autre problème auquel je n’avais pas pensé.

L’indexation de la ListBox 2 est faussée,
Lorsque je clique par exemple sur « Ecran 22’ Tft »
Soit le 7ème rang de la ListBox1
Et soit le 2ème rand de la ListBox2
La fiche qui apparait n’est pas la bonne, il me renvoie la ligne 2 de mon tableau au lieu de la ligne 7 ! 😡

En ce qui concerne les commentaires, j’ai également 2 problèmes :

Le 1er concerne le retour chariot, il me fait apparaitre le caractère ascii de ce code, ce qui n’est pas très joli. 😡

Le 2ème est plus embêtant, Si la cellule est vide, pas de problème, par contre s’il il n’y a pas de commentaire, alors que je demande à le voir dans mon code, cela génère une erreur ! 😡

J’essaye bien de trouver la parade, mais sans succès 😕
 

Pièces jointes

- 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

Retour