Recherche avancé

Bonjour,

j'ai fait un filtre avancé dans une macro et j'aimerais pouvoir faire en sorte comme dans la vidéo "créer un champ de recherche efficace en 3 minutes" que si je tape un texte pas entier il me trouve quand même des correspondance. étant donné que j'ai fais un filtre avancé en macro grâce a l'enregistrement des macro je ne connais pas du out le langage VBA...

Je sais pas si je me suis bien expliqué ... Mais je vous remercie de votre attention et j’espère avoir une réponse rapidement.

Ps: je ne cherche pas a qu'on me face le travail j'aimerais bien apprendre.

Bonjour Ayuri

La seule chose que je peux dire, c'est qu'il faut encadrer ton terme à filtrer par des "*"

*toto*

Va filtrer toutes les lignes contenant le terme toto

Tous d'bord j'aimerais te remercier d'avoir pris le temp de t'attarder sur mon sujet et j'aimerais encore une fois t’importuner avec un de mes problèmes ....j'aimerais qu'avec la recherche partielle il ne me sorte pas les 1000 alors que j'ai écris 100

Je m'explique j'ai plusieurs lignes dans lesquelles sont référencées des normes exemple ISO VG 100 ISO VG1000 et ect ...

et j'aimerais que ma macro puisse faire la différence entre 1000 et 100 je t'envois mon code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
    If Target.Count > 1 Then Exit Sub
    If Not Application.Intersect(Target, Range("A4:O4")) Is Nothing Then
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        For Each Cel In Range("A4:O4")
            If Cel <> "" Then
                If Not IsNumeric(Cel) Then
                    Cel.Offset(-1) = "*" & Cel.Value & "*"
                Else
                    Cel.Offset(-1) = Cel.Value
                End If
            Else
                Cel.Offset(-1).ClearContents
            End If
        Next Cel
        Application.EnableEvents = True
        Range("A6:P1000").AdvancedFilter Action:=xlFilterInPlace, _
        CriteriaRange:=Range("A2:O3"), Unique:=False
    End If
End Sub

Pourrais tu m'aider ? Si cela est dans tes capacités

Merci

Tous d'bord j'aimerais te remercier d'avoir pris le temps de t'attarder sur mon sujet et j'aimerais encore une fois t’importuner avec un de mes problèmes ....j'aimerais qu'avec la recherche partielle il ne me sorte pas les 1000 alors que j'ai écris 100

Je m'explique j'ai plusieurs lignes dans lesquelles sont référencées des normes exemple ISO VG 100 ISO VG1000 et ect ...

et j'aimerais que ma macro puisse faire la différence entre 1000 et 100 je t'envois mon code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
    If Target.Count > 1 Then Exit Sub
    If Not Application.Intersect(Target, Range("A4:O4")) Is Nothing Then
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        For Each Cel In Range("A4:O4")
            If Cel <> "" Then
                If Not IsNumeric(Cel) Then
                    Cel.Offset(-1) = "*" & Cel.Value & "*"
                Else
                    Cel.Offset(-1) = Cel.Value
                End If
            Else
                Cel.Offset(-1).ClearContents
            End If
        Next Cel
        Application.EnableEvents = True
        Range("A6:P1000").AdvancedFilter Action:=xlFilterInPlace, _
        CriteriaRange:=Range("A2:O3"), Unique:=False
    End If
End Sub

Pourrais tu m'aider ? Si cela est dans tes capacités

Merci

Bonjour Ayuri,

J'ai essayé ce code

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Cel As Range
  If Target.Count > 1 Then Exit Sub
  If Not Application.Intersect(Target, Range("A4:O4")) Is Nothing Then
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    For Each Cel In Range("A4:O4")
      If Cel <> "" Then
        If Cel.Address = "$A$4" Then
          Cel.Offset(-1) = Cel.Value
        Else
          Cel.Offset(-1) = "*" & Cel.Value & "*"
        End If
      Else
        Cel.Offset(-1).ClearContents
      End If
    Next Cel
    Application.EnableEvents = True
    Range("A6:P1000").AdvancedFilter Action:=xlFilterInPlace, _
                                     CriteriaRange:=Range("A2:O3"), Unique:=False
  End If
End Sub

Mais cela ne change rien, si on saisi 100, les 1000 ressortent aussi et effectivement 100 est bien compris dans 1000

Je n'ai pas de solution,

sauf en faisant une boucle sur les lignes afficher et masquer celles qui ne correspondent pas exactement au critère

A+

Dommage mais merci quand même j'aimerais encore vous embêter donc j'aimerais qu'a la sorti de mon filtre que ca me transfert e resultat sur un word j'ai ce code :

Sub Excel_Word()

Dim oWdApp As Object 'Word.Application
Dim oWdDoc As Object 'Word.Document

'Lancer une instance Word
Set oWdApp = CreateObject("Word.Application")

'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Add

'Rendre Word visible
oWdApp.Visible = True

'Copier une plage depuis Excel
ActiveSheet.Range("A6:O1000").Copy

'Coller la plage dans Word
oWdApp.Selection.Paste

'Annuler le mode couper/copier
Application.CutCopyMode = False

End Sub

et ca marche très bien sauf que je sais pas comment faire pour mettre la page Word en paysage et que les marge soit le plus excentrer ...

Avez vous une idée pour régler cela ?

Re,

Tu peux essayer ce code

Const wdOrientLandscape As Integer = 1

Sub Excel_Word()
  Dim oWdApp As Object  'Word.Application
  Dim oWdDoc As Object  'Word.Document
  Dim DLig As Long

  'Lancer une instance Word
  Set oWdApp = CreateObject("Word.Application")
  'Ouvrir un nouveau document
  Set oWdDoc = oWdApp.Documents.Add
  'Rendre Word visible
  oWdApp.Visible = True
  With oWdDoc.PageSetup
    .Orientation = wdOrientLandscape
    .TopMargin = Application.CentimetersToPoints(0.8)
    .BottomMargin = Application.CentimetersToPoints(0.8)
    .LeftMargin = Application.CentimetersToPoints(0.8)
    .RightMargin = Application.CentimetersToPoints(0.8)
  End With
  ' Dernière ligne du tableau
  DLig = Range("A" & Rows.Count).End(xlUp).Row
  'Copier une plage depuis Excel
  ActiveSheet.Range("A6:O" & DLig).Copy
  'Coller la plage dans Word
  oWdApp.Selection.Paste
  ' Activer Word pour voir le document créé
  oWdApp.Activate
  'Annuler le mode couper/copier
  Application.CutCopyMode = False
End Sub

Le problème c'est que le tableau va dépasser la taille de la page, et là...

A+

Bah merci quand même d'avoir pris le temps de me répondre car je demande un peu des truc de fou

Bonne journée

Re,

ayuri a écrit :

Bah merci quand même d'avoir pris le temps de me répondre car je demande un peu des truc de fou

Bonne journée

Je te rassure, ce ne sont pas du tout des trucs de fou

Il y a carrément plus dingue

Au plaisir d'aider

Rechercher des sujets similaires à "recherche avance"