XL pour MAC atteindre Nom par 3 premières lettres

  • Initiateur de la discussion Initiateur de la discussion sec's
  • 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 !

sec's

XLDnaute Nouveau
J'ai une liste de 1500 noms dans une colonne avec en tête "NOMS".
Je voudrais, à partir d'un bouton, atteindre le premier nom de ma liste à partir d'une cellule dans laquelle j'inscrirai mes 3 premières lettres.
Merci d'avance
 
Bien le bonjour Sec's et Bienvenu sur ce forum. Cela vous semblera peut être vieux jeu, mais le Bonjour est de rigueur sur ce site. 🙂
Concernant votre problème, n'est il pas plus simple de mettre un filtre sur la colonne noms. dans ce cas vous pouvez filtrer avec "Filtres textuels/Commence par" ?
 
bonjour le fil
par macro au plus rapide effectivement serait de filtrer une variable tableau

juste pour le fun et un clin d'oeuil a @BOISGONTIER ( ca va lui rapeler des souvenirs) 😉

ici on: inclu /exclu/commence par/xlpart

VB:
Option Compare Text
Sub essaiFiltre()
    Set f = Sheets("feuil1")
    clé = "Mar"
    'que les valeurs entieres qui sont EGALES !!! a   "mar"
    Tbl = Application.Transpose(f.Range("A1:A13" & f.[A65000].End(xlUp).Row).Value)
    Tbl = Filtre(Tbl, clé)
    [C1] = "XlWhole"
    If Not IsEmpty(Tbl) Then f.[C2].Resize(UBound(Tbl)) = Application.Transpose(Tbl)

    'toutes les valeurs qui CONTIENNENT !! "mar"
    Tbl = Application.Transpose(f.Range("A1:A13" & f.[A65000].End(xlUp).Row).Value)
    Tbl = Filtre(Tbl, clé, MacXlpart:=True)
    [D1] = "Xlpart ""mar"""
    If Not IsEmpty(Tbl) Then f.[D2].Resize(UBound(Tbl)) = Application.Transpose(Tbl)

    'toute les valeurs qui COMMENCE !! par "mar"
    Tbl = Application.Transpose(f.Range("A1:A13" & f.[A65000].End(xlUp).Row).Value)
    Tbl = Filtre(Tbl, clé, , commence_par:=True)
    [E1] = "Commence par ""mar"""
    If Not IsEmpty(Tbl) Then f.[E2].Resize(UBound(Tbl)) = Application.Transpose(Tbl)

    'EXCLURE toute les valeurs qui COMMENCENT!!! par "mar"
    Tbl = Application.Transpose(f.Range("A1:A13" & f.[A65000].End(xlUp).Row).Value)
    Tbl = Filtre(Tbl, clé, commence_par:=True, Include:=False)
    [F1] = "commence  par ""mar""  exclusion "
    If Not IsEmpty(Tbl) Then f.[F2].Resize(UBound(Tbl)) = Application.Transpose(Tbl)


    'EXCLURE toute les valeurs qui CONTIENNENT !!!!!! le mot  "mar"
    Tbl = Application.Transpose(f.Range("A1:A13" & f.[A65000].End(xlUp).Row).Value)
    Tbl = Filtre(Tbl, clé, MacXlpart:=True, Include:=False)
    [G1] = "XLPART ""mar"" exclusion"
    If Not IsEmpty(Tbl) Then f.[G2].Resize(UBound(Tbl)) = Application.Transpose(Tbl)



End Sub

Function Filtre(ByRef Tbl, ByVal clé As String, Optional ByRef MacXlpart As Boolean = False, Optional ByRef commence_par As Boolean = False, Optional ByRef Include As Boolean = True)
    n = 0: Dim b()
    If MacXlpart = True Then clé = "*" & clé & "*" Else clé = clé
    If commence_par = True Then clé = clé & "*"
    For i = LBound(Tbl) To UBound(Tbl)
        If Include Then
            If Tbl(i) Like clé Then n = n + 1: ReDim Preserve b(1 To n): b(n) = Tbl(i)
        Else
            If Not Tbl(i) Like clé Then n = n + 1: ReDim Preserve b(1 To n): b(n) = Tbl(i)
        End If
    Next i
    If n > 0 Then Filtre = b
End Function
 
- 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

Réponses
4
Affichages
221
Réponses
4
Affichages
320
Retour