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 :

Recherche une chaîne de caracteres par textbox sur BD


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Points : 125
    Points
    125
    Par défaut Recherche une chaîne de caracteres par textbox sur BD
    Bonjour le Forum
    je voudrais faire une recherche sur BD(Feuille de calcul)a l'aide d'un textbox
    mes données dans la colonne "A" sont disposé comme suite :

    263/01/2012/0001
    263/01/2012/0002
    263/01/2012/0003
    263/01/2012/0004
    ma recherche ce fait uniquement sur les quatre derniers chiffres souligné en rouge.

    j'ai met ce code mais apparament il ne marche pas

    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
    Sub client_existe()
    Dim result As Boolean
    Dim nom As String
    Dim L As Integer
    TextBox1.Value = Format(TextBox1.Value, "000/00/0000/0000")
    Recherches = Mid$(TextBox1.Value, 13)
     
    L = Sheets("Offices & Organismes").Range("A65536").End(xlUp).Row
    For i = 1 To L
     With Feuil2
      result = .Range("A" & i).Value Like "*Recherches*"
      If result Then
      Range("A" & i).Value = Left(Range("A" & i).Value, InStrRev(Range("A" & i).Value, ".") - 1)
     Me.Label1.Caption = Cell.Offset(0, 1)
     Me.Label2.Caption = Cell.Offset(0, 2)
      End If
     End With
     
    Next
    End Sub

    Merci infiniment

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    "Recherches" est une variable; ilne faut donc pas mettre son nom entre guillemets, sinon VBA considère le mot "Recherches" et non pas la variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result = .Range("A" & i).Value Like "*" & Recherches & "*"
    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result = .Range("A" & i).Value Like "*Recherches*"
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre habitué Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Points : 125
    Points
    125
    Par défaut
    Bonjour daniel et merci

    il beug a cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A" & i).Value = Mid(Range("A" & i).Value, InStrRev(Range("A" & i).Value, ".") - 1)
    merci

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par BERRACHED SAID Voir le message
    ..
    il beug a cette ligne :...
    je comprends pas "beug" ... elle beugle ?

    Rien de plus à dire ..?


    elle sert à quoi cette ligne ?
    toutes les ligne de ton tableau comporte-t'elle le caractére point en colonne A ?

  5. #5
    Membre habitué Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Points : 125
    Points
    125
    Par défaut
    Bonjour bbil

    en faite je voudrait faire une recherche sur cette colonne qui comporte de cette façon 263/01/2012/0001 rien que sur les 4 chiffre dernier c'est pour cela que j'ai utilisé Mid c'est le numero est trouve il m'affiche sur les labels la contenu de la colonne "B" et "C"

    Merci

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Dans "InStrRev", tu cherches des points plutôt que des "/".
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  7. #7
    Membre habitué Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Points : 125
    Points
    125
    Par défaut
    la recherche est sur les 4 derniers chiffre du numéro bien entendu les chiffres sont sépare par "/" mais qui m’intéresse les 4 derniers chiffres c'est pour cela que j'ai utilisé Recherches = Mid$(TextBox1.Value, 13).

    j’espère avoir été claire
    Merci

    j'ai refait le code de cette facon apparament aucun message d'erreur mais il fonctionne pas
    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
    Sub client_existe()
    On Error Resume Next
    Dim result As Boolean
    Dim nom As String
    Dim L As Integer
    TextBox1.Value = Format(TextBox1.Value, "000/00/0000/0000")
    Recherches = Mid$(TextBox1.Value, 13)
    L = Sheets("Offices & Organismes").Range("A65536").End(xlUp).Row - 1
    For i = 1 To L
     With Feuil2
      result = .Range("A" & i).Value Like "*" & Recherches & "*"
      If result Then
       Recherches = Mid(Range("A" & i).Value, 13)
       Me.Label1.Caption = Cell.Offset(i, 2)
       Me.Label2.Caption = Cell.Offset(i, 3)
      End If
     End With
    Next
    End Sub
    Cordialement

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Peux-tu mettre en PJ un classeur exemple ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  9. #9
    Membre habitué Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Points : 125
    Points
    125
    Par défaut
    bonjour daniel
    voila un exemple de mon classeur en PJ.
    merci
    Fichiers attachés Fichiers attachés

  10. #10
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Val(Recherches) = Val(Left(result, Len(Recherches))) Then
    Je ne comprends pas ce que tu cherches à faire "result" prend les valeurs "Vrai" ou "Faux" selon qu'on a trouvé corresppondance. Peux-tu dire ce que tu cherches à faire quand on trouve l'égalité ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  11. #11
    Membre habitué Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Points : 125
    Points
    125
    Par défaut
    salut daniel

    quand le numero est trouvé je veux qu'il m'affiche la colonne "C" et "D" du numero trouvé dans les labels.

    j'ai met un fichier joint

    Bonne journnée

  12. #12
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub client_existe()
    'On Error Resume Next
    Dim result As Boolean
    Dim nom As String
    Dim L As Integer
    'TextBox1.Value = Format(TextBox1.Value, "000/00/0000/0000")
    Recherches = Mid$(TextBox1.Value, 13)
    With Feuil2
        L = Application.Match("????????????" & Recherches, .[A:A], 0)
        Me.Label1.Caption = .Cells(L, 3).Value
        Me.Label2.Caption = .Cells(L, 4).Value
    End With
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  13. #13
    Membre habitué Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Points : 125
    Points
    125
    Par défaut
    salut daniel

    Merci mon cher ami c'est le resultat souhaité

    bonne journée

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

Discussions similaires

  1. remplacer chaîne de caractere par une autre
    Par Invité(e) dans le forum Linux
    Réponses: 4
    Dernier message: 21/07/2010, 13h47
  2. Permuter les bits d'une chaîne de caractere
    Par Menontona dans le forum C
    Réponses: 14
    Dernier message: 13/09/2006, 15h30
  3. Réponses: 8
    Dernier message: 15/07/2006, 18h59
  4. Rechercher une chaîne de caractère dans une série de fichier
    Par Edoxituz dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/02/2006, 12h51
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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