J'aimerais rendre le moteur de recherche instantanée en multicritère, mais je ne sais pas comment faire, je suis débutant dans le VBA.
Pour l'instant, la recherche se concentre sur la colonne D, mais j'aimerais aussi que la recherche puisse faire en même temps sur les colonnes D, F et H.
Exemple : Si je cherche Moulin qui est un critère de la colonne H et bien qu'il me le trouve.
Est-ce possible ? Et comment faire cela ?
Je vous le fichier-test pour que vous puissiez y jeter un oeil et éventuellement inclure la bonne manière pour rendre cela possible.
Oui, un cas auquel je n'avais pas pensé.
Remplace par :
VB:
If Not pl Is Nothing Then pl.EntireRow.Hidden = True
Par contre je me demande si je n'ai pas poussé trop loin.
Pour gagner du temps, je ne reteste pas les lignes déjà masquées.
Si tu supprimes un caractère je ne ré-affiche pas les concernées. Fausse bonne idée...
Je retourne à plus plus traditionnel je pense ?
Si oui :
VB:
Private Sub TextBox1_Change()
Dim datas, pl As Range, lig As Long, lig1 As Long, mot As String
Application.ScreenUpdating = False
Range("Tableau14").EntireRow.Hidden = False
If Sheets("Collection").TextBox1.Value <> "" Then
datas = Range("Tableau14").Value
lig1 = Range("Tableau14").Row
mot = TextBox1.Value & "*"
For lig = 1 To UBound(datas)
If Not (datas(lig, 1) Like mot Or datas(lig, 3) Like mot Or datas(lig, 5) Like mot) Then
If pl Is Nothing Then Set pl = Rows(lig + lig1 - 1) Else Set pl = Union(pl, Rows(lig + lig1 - 1))
End If
If Not pl Is Nothing Then
If pl.Areas.Count > 10 Then pl.EntireRow.Hidden = True: Set pl = Nothing
End If
Next lig
If Not pl Is Nothing Then pl.EntireRow.Hidden = True
Set pl = Nothing
End If
Application.ScreenUpdating = True
End Sub
Un souci encore avec le code, c'est que quand je mets la protection de ma feuille pour empêcher toute modification, j'ai une erreur et sur deux lignes, mais c'est le même code, mais pour deux codes différents
La première dans ton code à la ligne indiquée qui est surligné en jaune :
VB:
Range("Tableau1").EntireRow.Hidden = False
Et cela dès que je rentre dans le champ de recherche.
Et j'ai la même chose avec le code auquel tu as ajouté une ligne qui est le même code ci-dessus.
La partie pour supprimer le texte au clic sur le champ
Code:
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'On supprime le text du champs au clic sur le champs
With TextBox1
.Text = ""
.SelStart = 0
.SelLength = Len(.Text)
End With
Range("Tableau1").EntireRow.Hidden = False
End Sub
Cela indique comme erreur pour cette partie du code de chaque code :
Erreur d'exécution '1004'
Impossible de définir la propriété Hidden de la class Range.
Il y a moyen de contourner cela pour que je puisse mettre la protection de la feuille ?
Merci, là cela protège, par contre facile à déverrouiller lol, on peut mettre un mot de passe ? et est-ce possible de mettre deux feuilles ou trois avec le même mot de passe ?
Bête question, je sais que malheureusement avec Google Sheet on ne sait pas lire un fichier xlsm en ligne car il ne prend pas les macros en lignes et bien d'autres choses encore comme les mises en forme de tableau etc... c'est bien dommage d'ailleurs car cela aurait facilité le partage en mode lecture en ligne pour les joueurs !
Du coup, je mets le fichier en téléchargement depuis le Drive de Google et Méga, mais beaucoup de joueurs ont le souci avec leur antivirus qui pense que mon fichier est une menace et bloque le fichier et bien entendu c'est toute une procédure pour autoriser le fichier selon l'antivirus !
Y a-t-il une solution pour tromper l'antivirus et qu'il accepte de laisser passer un fichier avec du VBA ?
Pas vraiment besoin d'ajouter des userforms.
Mais une protection excel, est illusoire et se fait sauter très facilement. Elle ne peut servir qu'à empêcher les erreurs de manip.
Pour l'antivirus, guère d'autre possibilité que d'en changer pour un qui donne moins de faux positifs.
eric
Pas vraiment besoin d'ajouter des userforms.
Mais une protection excel, est illusoire et se fait sauter très facilement. Elle ne peut servir qu'à empêcher les erreurs de manip.
Pour l'antivirus, guère d'autre possibilité que d'en changer pour un qui donne moins de faux positifs.
eric
Effectivement, une simple protection est facile à supprimer pour une personne qui fouine un peu sur le net il y a suffisamment de tuto pour cela, je les déjà fait moi-même d'ailleurs j'avoue lol. Il en de même avec une protection du projet VBA.
C'est dommage que l'on ne puisse pas vraiment empêcher cela !
Bah pour les antivirus, il se réfère à leur logiciel, en général le fichier se place en quarantaine, il suffit juste de l'autoriser, mais bon il y en a que ça fait peur et tu as bon à leur expliquer que le fichier ne comporte pas de mauvaises surprises, c'est comme parler avec un mur Mdr.
Je suis un débutant dans le VBA et dans le monde de la comptabilité.
J'ai pu faire une macro pour automatiser la saisie d'écriture comptable. Cependant, parfois je cherche des valeurs dans la feuille n°2 qui peut faire jusqu'à des dizaines de milliers de lignes. J'aimerai alors pouvoir automatiser cette recherche avec des recherches instantanées.
Je me tourne donc vers vous afin de trouver une solution à mon problème. Je vous joins donc mon fichier pour que vous puissiez jeter un rapide coup d'oeil.