IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Equivalent "*" VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut Equivalent "*" VBA
    Bonjour,
    Quel serait l'équivalent de "*" en VBA dans la formule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(A5<>"";DECALER(EPLE;EQUIV("*"&A5&"*";EPLE;0)-1;;SOMMEPROD((STXT(EPLE;1;NBCAR(A5))=TEXTE(A5;"0"))*1));EPLE)
    .

    Je voudrais l'utiliser dans le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1" Then
     
     
      Dim Lig As Long, Nom As String, Line As Long, Col As Long, LignSel As Long
     
    Nom = InputBox("Saisie de votre NOM : ", "NOM")
    If Nom = "" Then
    Exit Sub
    Else
     
    With Sheets("RECUP").Range("a1:a500")
     
     
        Set C = Sheets("RECUP").Range("A2:A200").Find(What:="" & Nom & "", LookAt:=xlWhole, SearchOrder:=xlByColumns)
     
        If Not C Is Nothing Then
            Do
     
            Set C = .FindNext(C)
            C.Activate
     
            MsgBox Range("" & "A" & ActiveCell.Row & "").Value & " H: " & Range("" & "ED" & ActiveCell.Row & "").Value & " E: " & Range("" & "EE" & ActiveCell.Row & "").Value & vbCr & vbCr & Range("" & "EG" & ActiveCell.Row & "").Value
            Exit Sub
     
            Loop While Not C Is Nothing
     
        End If
    End With
    End If
    End If
    End Sub
    Au niveau de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set C = Sheets("RECUP").Range("A2:A200").Find(What:="" & Nom & "", LookAt:=xlWhole, SearchOrder:=xlByColumns)
    Pour pouvoir effectuer une recherche sans entrer tous les caractères du nom à chercher.

    MERCI D'AVANCE

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaLocal="=SI(A5<>"""";DECALER(EPLE;EQUIV(""*""&A5&""*"";EPLE;0)-1;;SOMMEPROD((STXT(EPLE;1;NBCAR(A5))=TEXTE(A5;""0""))*1));EPLE)"

  3. #3
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Perso j'utiliserai la fonction VBA "Instr()"

    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  4. #4
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Ou encore mieux "like"

    tiré de l'aide en ligne

    Like, opérateur, exemple
    Cet exemple utilise l'opérateur Like pour comparer une chaîne à un modèle.

    Dim MyCheck
    MyCheck = "aBBBa" Like "a*a" ' Renvoie True.
    MyCheck = "F" Like "[A-Z]" ' Renvoie True.
    MyCheck = "F" Like "[!A-Z]" ' Renvoie False.
    MyCheck = "a2a" Like "a#a" ' Renvoie True.
    MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Renvoie True.
    MyCheck = "BAT123khg" Like "B?T*" ' Renvoie True.
    MyCheck = "CAT123khg" Like "B?T*" ' Renvoie False.
    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    J'aime bien la je tente de l'intégrer dans mon code

    J'avoue avoir un peu de mal à l'intégrer dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set C = Sheets("RECUP").Range("A2:A200").Find(What:="" & Nom & "", LookAt:=xlWhole, SearchOrder:=xlByColumns)

  6. #6
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour.

    Voici comment utiliser INSTR

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub tt2()
     Set r = Range("eple")
     txt = Range("a5").Value
     For Each c In r
     
     If c.Value <> "" Then
      If InStr(c.Value, txt) = 1 Then
       MsgBox c.Value & " " & c.Address & " " & c.Row & " " & c.Column
       Exit For
      End If
      End If
     
     Next
    End Sub
    Cordialement

    Docmarti.

  7. #7
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    au lieu de xlWhole
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Parfait la solution de Docmarti mais fait quand même gaffe au pommeau de la canne de Beef !!!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. double quote en VBA
    Par miopie dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/07/2010, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo