Excel pb filtre numérique+alpha

Résolu
lulu37 Messages postés 80 Statut Membre -  
 Pedd -
Bonjour,
Je savais bien que je ne serais pas longue à repasser par là...
J'ai un problème sur un filtre (données numériques+alpha)

explication : invite de saisie dans textbox sur formulaire.
la valeur saisie est retournée dans 1 filtre auto (contient valeur)
mon code est le suivant :
If TextBoxRF <> Empty Then Selection.AutoFilter Field:=3, Criteria1:="=*" & TextBoxRF.Value & "*"

le problème est que qd on saisie du numérique (partiel), ça ne retourne pas toutes les valeurs.
Ca ne vient a priori pas du code, car meme en passant pas les filtres sur la feuille de données, la saisie numérique partielle marche mal.

Savez vous si c'est un pb d'exel en général ou si la vérité est ailleurs?
Configuration: excel97 vba6 pour windows

5 réponses

  1. zigwen Messages postés 24 Statut Membre
     
    Salululu,
    t'es sure que c'est pas plutot un like que un = que tu veux ? Si tu mets des * c'est sans doute pour une recherche partielle dans plutot un like ...
    Dis moi...
    0
    1. lulu37 Messages postés 80 Statut Membre 13
       
      ALLO ZIGWEN !
      Tu es toujours là?
      Ludivine
      0
  2. lulu37 Messages postés 80 Statut Membre 13
     
    je ne sais pas si c'est like que je veux, mais je veux :
    => que la valeur saisie (partielle ou complète) soit retournée dans le filtre auto,
    => sans respecter la casse de préférence (sinon galère), et
    => que si on tape "20", que ça retourne toutes les données avec "20" que ce soit au début, au milieu ou à la fin des cellules des données filtrées. (contient me semblait convenir)
    ...
    dis moi si c'est bien like que je veux...car je ne le connais pas celui là
    0
  3. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Hello ludivine,

    La recherche "contient..." du filtre personnalisé ne fonctionne pas avec des valeurs numériques. Donc si tu as des valeurs numériques dans ta colonne, il faut que tu les stockes en format texte, et là ça marchera.
    0
    1. lulu37 Messages postés 80 Statut Membre 13
       
      Merci Armojax, ca fonctionne
      Seulement, j'ai formaté ma colonne en format texte, mais les nouvelles données saisies ne sont pas reconnues en tant que texte, obligée de mettre un ' devant chaque nombre...
      Est ce que c'est normal ?
      Ludivine
      0
    2. Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
       
      Bonjour tout le monde,

      Oui lulu37, c'est normal. Si tu saisies une apostrophe ' devant une valeur numérique, tu forces Excel à interpréter cette valeur numérique comme une chaîne de caractères. Mais par défaut, Excel considère des chiffes comme une valeur numérique (c'est assez logique).

      Un exemple de code pour te permettre de modifier tes données, en considérant que toutes les cellules de la feuille sont à modifier (à adapter bien sûr) :
      Sub NumToChaine()
           Dim rngCell As Range
      
           For Each rngCell In ActiveSheet.Cells
                If Not IsEmpty(rngCell) Then
                     rngCell.Value = "'" & rngCell.Value
                End If
           Next
      End Sub
      0
      1. lulu37 Messages postés 80 Statut Membre 13 > Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention  
         
        Peux tu me donner l'adaptation pour l'appliquer seulement sur la colonne C s'il te plaît ?
        Lud
        0
  4. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Bonjour ludivine,

    j'ai formaté ma colonne en format texte, mais les nouvelles données saisies ne sont pas reconnues en tant que texte

    Oui, ça paraît bizarre, mais c'est tout à fait normal.
    Une cellule Excel peut contenir n'importe quoi, et sans précision spéciale, le format par défaut est Standard. Ça veut dire que quand on y place quelque chose, Excel prend une décision et analyse le type de donnée. Si après analyse Excel a décelé que le contenu est numérique, la propriété est définitivement acquise. Si ensuite tu dis que le format de la cellule est de type texte, Excel va cadrer la valeur à gauche, mais c'est seulement une question de format, et la donnée reste définie comme numérique.

    Tu peux facilement en VBA convertir ton code postal numérique en texte, en appliquant par exemple une commande de ce type (exemple pour la cellule (1, 1) ):
    Cells(1, 1).Value = Format(Cells(1, 1).Value, "00000")
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Pedd
     
    salut
    je suis Pedd, j'aimerais savoir pourquoi et a quoi sert de filtrer automatiqument dans Excel.
    Merci.
    0