Problème recherche sur formulaire VBA + adaptation suivant résolution

Bonjour à tous,

j'ai créer un fichier excel avec du code vba.
Etant totalement novice, j'ai ajouté du code trouvé sur différents site et aussi sur youtube.
mon fichier est un beau bordel mais fonctionne plus ou moins bien.

Voici mes deux petits soucis,

1-Sur l'image "recherche produits suivant propriétés" j'ai créer un formulaire de recherche dans une textbox. j'arrive a linker quand je tape la première lettre d'un mot. par contre impossible de continuer si j'ajoute des caractères.

exemple ... la lettre "b" me retourne des résultats par contre "ba" me donne un champ libre ( mais dans mes résultats j'ai bien balsamique).

2- j'aimerai afficher juste mon "écran" (les images cliquables plus celles du milieu) sans les autres collones ou cellules . sur ma résolution c'est ok mais quand l on change de pc ,
c'est soit trop grand soit trop petit.

Pour l'instant je ne peut poster mon lien du fichier

merci d'avance pour votre aide

Bonjour

Sans fichier c'est un peu allez à l'aventure sans carte...

Pour le point 1, voyez ce lien --> https://forum.excel-pratique.com/s/goto/955665. Si cela ne vous aide pas, montrez le code que vous utilisez pour la recherche.

Cordialement

voici mon code de recherche

Private Sub cb1_Click()
Unload Me
End Sub

Private Sub tt1_Change()

Dim i As Integer
Dim Nbligne As Integer
Dim nomcherche As String

Me.tt2.Clear

Nbligne = Sheet3.Range("A10000").End(xlUp).Row
nomcherche = Me.tt1.Value

If Me.tt1 <> "" Then

For i = 5 To Nbligne
If Sheet3.Cells(i, 2) Like "*" & UCase(Me.tt1.Value) & "*" Then

Me.tt2.AddItem Sheet3.Cells(i, 2)
Me.tt2.AddItem "---->" & " " & Sheet3.Cells(i, 1)
Me.tt2.AddItem ""

End If
Next i

End If

End Sub
ba b

Merci des infos

Pas sûr mais en supposant que tt2 est bien une listbox et qu'elle ne contient qu'une colonne, essayez comme ceci

Private Sub tt1_Change()

Dim i As Integer, j As Integer
Dim Nbligne As Integer

Me.tt2.Clear

Nbligne = Sheet3.Range("A10000").End(xlUp).Row

j = 0
If Me.tt1 <> "" Then
    For i = 5 To Nbligne
        If Sheet3.Cells(i, 2) Like "*" & UCase(Me.tt1.Value) & "*" Then
            With Me
                .tt2.AddItem
                .tt2.List(j, 0) = Sheet3.Cells(i, 2)
                .tt2.List(j + 1, 0) = "---->" & " " & Sheet3.Cells(i, 1)
                .tt2.List(j + 2, 0) = ""
            End With
            j = j + 3
        End If
    Next i
End If
End Sub

Attention que les données que vous cherchez sont limitées à la variable "nbligne" qui est définie sur base de la colonne A
Comme vous utilisez Ucase, vérifiez aussi que les données sont toutes en majuscules dans la colonne B de la feuille 3

J'ai supprime "nomcherche" puisqu'il n'intervient pas dans la boucle i

Cordialement

un tout grand merci pour ta réponse Dan.

maintenant je viens de comprendre mon erreur, ce fameux Ucase.

est-il possible de rechercher sans distinction de majuscule ?

j'ai essayé ton code mais il me renvoie une erreur

er

bien à toi

Oui c'est possible. Il vous suffit d'enlever le UCASE. faite un test et si souci dites moi

Pour l'erreur, je dois savoir si tt2 est bien une listbox et si oui, combien de colonnes vous avez prévu

Edit : sinon vous pouvez essayer en modifiant cette partie de code mais je ne pense pas que cela va fonctionner :

                .tt2.List(j, 1) = "---->" & " " & Sheet3.Cells(i, 1)
                .tt2.List(j, 2) = ""
            End With
            j = j + 1

Si je modifie avec ta solution , j'ai ceci

nco

j'ai retiré le ucase comme conseillé et cela fonctionne . il me reste juste le problème qu'il est sensible a la majuscule pour les résultat affiché.

si je tape a j'ai bien Anorexie (car j'ai le a d'appétit) mais je n'ai plus anorexie quand je tape an

a an

OK.

Dans l'userform, quelle est la première macro que vous avez. Donc celle à la première ligne dans la fenêtre. Eventuellement mettez une capture écran

scr

voici tout le code juste pour mon userform2

Juste au dessus de Private sub cbl_click mettez cette instruction

Option Compare text

refaite un essai.

magnifique, cela fonctionne .

pour l'adaptation à la taille de l'écran voici mon code qui fonctionne sur un autre excel mais pas celui la

Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
Range("a1:b10").Select 'ici tu selectionne la plage que tu veux elle sera zommée pour remplir tout l'écran quelque se soit la resolution de ton ecran
ActiveWindow.Zoom = True
Range("a1").Select
Application.ScreenUpdating = True
End Sub

pour l'adaptation à la taille de l'écran voici mon code qui fonctionne sur un autre excel mais pas celui la

Ce n'est pas ce que vous demandiez dans le point 2. Vous parliez d'images...

je m'excuse, je me suis mal exprimé.

voici ma présentation suivant ma résolution.

1

et voici un aperçu si je change de pc avec une résolution supérieur

2

et si vous mettez ceci plutot

Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
ActiveSheet.UsedRange.Select
ActiveWindow.Zoom = True
Application.ScreenUpdating = true
End sub

Je n'ai pas fait le test car votre feuille contient des objets et non des données dans les cellules. Pas sûr que cela fonctionne.

Edit : j'ai peut être trouvé une solution pour utiliser le code proposé. Disposez vos objets sur votre feuille. Ensuite sélectionnez les cellules autour des objets puis ajoutez une bordure tout autour.

Je m'excuse pour le retard de ma réponse.

un grand merci Dan pour ton aide

Rechercher des sujets similaires à "probleme recherche formulaire vba adaptation suivant resolution"