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 :

Probleme code recherche VBA excel [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 29
    Par défaut Probleme code recherche VBA excel
    j'ai essaye de cree un formulaire de recherche sur excel 2007 a partie de ce code :
    c'est un formulaire avec une textbox (ou il faut rentrer le terme ou les mot cles que l'on cherche),une listbox(ou s'affiche les resultats) et un un bouton de commande(pour lancer la recherche),le code ci-dessous est celui que j'ai mis dans le bouton de commande.
    le formulaire étant présent sur la feuille TDB doit faire ses recherches sur la feuille source.
    le document excel est compose de 2 feuilles,une feuille ''TDB'' et une feuille ''source''.
    le problème c'est que des que je lance la recherche ca me donne : ''erreur de compilation : argument nomme introuvable'' et c met ''Private Sub CommandButton1_Click()'' en jaune.
    rappel que je suis qu'un simple beginner,donc je vous remercie d'avance pour des réponses amiable pour les débutants.
    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
    33
    Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Dim lastrow As Long
    Dim str As String
    Dim rng As Range, rng2 As Range
    Dim firstcell As String
     
    Set ws = Sheets("source")
    lastrow = ws.Range("P" & Rows.Count).End(xlUp).Row
    str = TextBox1.Value
     
    Set rng = ws.Range("P1:P" & lastrow).Find(What:=str, Lookln:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, Searchformat:=False)
     
    If Not rng Is Nothing Then
        ListBox1.AddItem rng.Address
        firstcell = rng.Address
        Set rng2 = rng
     
        Do
            Set rng2 = ws.Range("P1:P" & lastrow).FindNext(after:=rng2)
            If Not rn2 Is Nothing Then
                If rn2.Address = firstcell Then Exit Do
                ListBox1.AddItem rng2.Address
            Else
                Exit Do
            End If
        Loop
     
    Else
        Exit Sub
    End If
     
    End Sub
    le code que j utilise pour ouvrir le formulaire est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Rectangleàcoinsarrondis1_Clic()
     
    Main.Show
    Main.TextBox1.SetFocus
     
    End Sub
    VBA - Copie.xlsm

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    je suis interpellé par la façon dont est écrit ceci

    format devrait être avec un F majuscule.

    As-tu rigoureusement copié ton code tel qu'il est dans l'éditeur VBA ou recopié manuellement ?

    Retire ce paramètre et réessaye, et vérifie surtout que tu n'as aucune variable qui s'appelle ainsi

    Par ailleurs, sauf besoins optiques de ma part, ton paramètre "LookIn" semble être écrit avec la lettre "l" à la place du "i" majuscule

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 29
    Par défaut
    Pour ceux qui préfère consulter directement le fichier excel,il suffit juste de fermer le formulaire ''login'' ou si vous y arrive pas l'identifiant est admin et le mdp est 123

    j'ai suivi un tuto youtube et j'ai copie le vba tel qu'il est dans l'editeur vba.
    voici la vidéo tuto


    Effectivement comme vous l'avez remarqué j'ai fait 2 erreurs, le lookin avec l à la place du I et le format qui aurait du être en majuscule, et en plus de ça j'ai fait des erreur banales ex : rn2 au lieu de rng2...je me sens stupide.
    Voici le code qui fonctionne :
    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
    33
    Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Dim lastrow As Long
    Dim str As String
    Dim rng As Range, rng2 As Range
    Dim firstcell As String
     
    Set ws = Sheets("source")
    lastrow = ws.Range("P" & Rows.Count).End(xlUp).Row
    str = TextBox1.Value
     
    Set rng = ws.Range("P1:P" & lastrow).Find(What:=str, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
     
    If Not rng Is Nothing Then
        ListBox1.AddItem rng.Address
        firstcell = rng.Address
        Set rng2 = rng
     
        Do
            Set rng2 = ws.Range("P1:P" & lastrow).FindNext(after:=rng2)
            If Not rng2 Is Nothing Then
                If rng2.Address = firstcell Then Exit Do
                ListBox1.AddItem rng2.Address
            Else
                Exit Do
            End If
        Loop
     
    Else
        Exit Sub
    End If
     
    End Sub
    le problème maintenant c'est que le formulaire marche, mais dans la listbox ça affiche seulement le numéro de la cellule au lieu d'afficher le contenu.
    comme ça par exemple : Nom : asas.png
Affichages : 197
Taille : 13,3 Ko

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Il te suffit donc d'appliquer ce que je t'ai préconisé, tu as mal "recopié"

    - retire le paramètre SearchFormat dans la mesure où tu lui affectes l'argument "False" qui est son argument par défaut
    - écrit "LookIn" ("i" majuscule) au lieu de Lookln ("l" minuscule)

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 29
    Par défaut
    J'ai change coulmnheads a true et coulmncount a 4,comment faut-il faire pour montrer les valeurs au lieu des num cases ?
    ''.value''?

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Tu as édité ton post précédent en soulevant une erreur dans la restitution du contenu de la cellule, où tu as ici l'adresse

    c'est normal, regarde par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListBox1.AddItem rng.Address
    ListBox1.AddItem rng2.Address
    c'est précisement ce que tu as écris, le comportement est donc correct

    si tu veux le contenu, utilise la propriété .Value (valeur "standard" stockée en interne par excel) ou .Text (valeur affichée sur la feuille de calcul)

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 29
    Par défaut
    Je vous remercie infiniment pour votre aide précieuse !
    question indiscrète si je puisse me permettre : quel études avez vous fait pour devenir expert dans l'informatique ? je suis en 2eme année d'un bac+3 management gestion mais je sais que le future repose dans l'informatique,et en plus il y'a une grande demande de la part des entreprises qui cherche des informaticiens/it guy .

  8. #8
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Aucun diplôme

    Des nuits blanches, de la curiosité, de la motivation.... et ce superbe forum

    En partant de rien, on peut aller loin, tout est question d'envie !

    Si tu remontes mon historique de message, tu prendras la mesure de mon niveau lorsque je me suis inscris

    Aujourd'hui, comme beaucoup d'entre-nous sur cette communauté, nous rendons la pareille aux autres

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 29
    Par défaut
    J'ai trouvé ceci sur internet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim maVar As String 
    maVar = Range("A1").Comment.Shape.OLEFormat.Object.Text
    If Not Range("A1").Comment Is Nothing Then
    comment faire pour intégrer ceci à mon code ? Dois-je le mettre dans le code vba du button ou de la listbox ?

    ''nous rendons la pareille aux autres '' très noble de votre part.

  10. #10
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Ceci n'est plus la problématique de la présente discussion

    Je t'invite à clôturer celle-ci en marquant le sujet comme résolu et en ouvrant une nouvelle discussion portant sur l'insertion d'un commentaire dans une cellule, en indiquant précisant ce que tu souhaites faire, et l'intégralité du code visé.

    Car ici il n'y en a que la moitié

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/05/2007, 09h13
  2. Création Bouton rechercher dans formulaire
    Par Boubas1 dans le forum IHM
    Réponses: 1
    Dernier message: 06/05/2007, 14h49
  3. Bouton rechercher enregistrement
    Par ludo50 dans le forum Access
    Réponses: 3
    Dernier message: 04/12/2006, 13h27
  4. Bouton Recherche dans access
    Par fouf_01 dans le forum VBA Access
    Réponses: 9
    Dernier message: 23/05/2006, 16h34
  5. Le bouton "rechercher"
    Par shnouf dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 23/05/2006, 12h30

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