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 sans résultat


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut Recherche sans résultat
    Bonjour,

    Je suis entrain de transcrire une application "ACCESS" sous "EXCEL".
    Mes connaissances EXCEL étant pratiquement nulle, je me suis inspiré d'un modéle trouvé sur le net pour créer un formulaire.
    Après mes modifications, le fonctionnement est satisfaisant sauf lors d'une recherche sur une colonne utilisant le code suivant :

    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
    Private Sub B_ok_Click()
      Me.ListBox1.Clear
      i = 0
      Set plage = f.[A:A]
      Set c = plage.Find(Me.MotCle, , , xlPart)
      If Not c Is Nothing Then
        premier = c.Address
        Do
          Me.ListBox1.AddItem
          lig = c.Row
          Me.ListBox1.List(i, 0) = plage.Cells(lig, 1)
          Me.ListBox1.List(i, 1) = lig
          i = i + 1
          Set c = plage.FindNext(c)
        Loop While Not c Is Nothing And c.Address <> premier
      End If
      pointeur = 0
      ligne = Me.ListBox1.List(pointeur, 1)
      affiche
    End Sub
    Tout fonctionne bien si le résultat de la recherche est concluant, sinon j'ai un message d'erreur sur la ligne :

    ligne = Me.ListBox1.List(pointeur, 1)
    Comment faire ?

    Merci de votre aide.

    JCB
    Windows 10 - ACCESS 2007

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    On ne sait pas trop ce que fait Affiche et encore moins d'où sortent les variables (non déclarées dans ce bout de code...)

    J'essaierais comme ceci, si j'ai bien compris le problème...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Me.Listbox1.ListCount > 0 Then
      pointeur = 0
      ligne = Me.ListBox1.List(pointeur, 1)
      affiche
    End If
    MPi²

  3. #3
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Bonsoir,

    Merci de cette réponse rapide qui fonctionne super.

    Si je peux encore abuser,
    Dans la ligne:
    Peut-on remplacer " [A:A] " pour que la plage corresponde au nombre de lignes utilisées que j'ai déjà défini et stocké dans la variable "NbLigne".
    La variable "f" correspond la feuille (sheets) utilisée.

    Encore merci.

    JCB
    Windows 10 - ACCESS 2007

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = f.Range("F1:F" & nbLignes)
    en supposant que f est une variable worksheet
    MPi²

  5. #5
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Merci pour cette réponse,
    c'était bien le morceau de code que je cherchais.
    Mon système de recherche actuel se fait indépendamment sur chaque colonne, ce qui alourdit le formulaire.
    En faisant une recherche sur toute la feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set plage=f.[A1].CurrentRegion
    le combobox contient des doublons, comment faire pour éviter cela ?

    Merci pour ton aide.

    JCB
    Windows 10 - ACCESS 2007

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Voici une façon de faire.
    Dans l'exemple, le code lit la colonne A seulement, mais tu peux modifier au besoin du genre
    For Each Cellule in Plage...

    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
        Dim I As Long
        Dim nbLignes As Long
     
        With Sheets("Feuil1")
            nbLignes = .Cells(.Rows.Count, "A").End(xlUp).Row
     
            For I = 2 To nbLignes
                'Affecte la valeur lue au combobox
                ComboBox1 = .Range("A" & I)
                'Si la valeur n'est pas trouvée ListIndex = -1 et on ajoute cette valeur
                If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem .Range("A" & I)
            Next
        End With
     
        'Sélectionne la première entrée
        If ComboBox1.ListCount >= 0 Then ComboBox1.ListIndex = 0
    MPi²

  7. #7
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    Je vous remercie de votre réponse, avec beaucoup de retard, veuillez m'en excuser.

    J'ai essayé de mettre en pratique ce code, sans succés.

    Aprés reflexion, ce n'est plus nécessaire alor j'abandonne et je me tourne vers une autre solution.

    MERCi beaucoup de votre attention.

    JCB
    Windows 10 - ACCESS 2007

Discussions similaires

  1. Recherches sans résultat-comment les différencier?
    Par daniel64 dans le forum VBA Word
    Réponses: 2
    Dernier message: 23/05/2012, 03h41
  2. [XL-2007] Fonction recherche sans résultat
    Par Jason T dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/06/2009, 15h19
  3. [AC-2003] Recherche entre 2 dates sans résultat
    Par Orakle dans le forum Access
    Réponses: 6
    Dernier message: 08/06/2009, 17h00
  4. Script Java appelé dans Xsl sans résultats
    Par metallic dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 03/08/2005, 15h39

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