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 valeur depuis Excel via Userform - éviter débogage si valeur non trouvée [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef d'exploitation
    Inscrit en
    Juillet 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 57
    Par défaut Recherche valeur depuis Excel via Userform - éviter débogage si valeur non trouvée
    Bonjour à tous,

    J'utilise le code suivant pour incrémenter automatiquement le champ "Textnomclient" de mon userform lorsque l'on saisi le champ "Textnumpdl". Le code va chercher les informations dans la Feuil4.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Textnumpdl_Change() 'Incrémente automatiquement le nom du client en fonction du code pdl saisi.
    Set C = Feuil4.Cells.Find(What:=Textnumpdl)
            Textnomclient = C.Offset(0, 1)
    Tout fonctionne très bien mais je veux mettre une sécurité avec un message lorsqu'un utilisateur saisi un nombre dans le champ "Textnumpdl" qui n'existe pas car actuellement Excel passe en débogage dans ce cas précis.

    Quelqu'un a une idée?

    Par avance merci!

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour zielite,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If c Is Nothing Then 
       MsgBox "pas trouvé"
       End sub
    else
       'suite de ton code sinon
    Antony

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef d'exploitation
    Inscrit en
    Juillet 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 57
    Par défaut
    Merci Anthony pour ton aide,

    La MsgBox fonctionne, le seul problème est qu'elle s'affiche à chaque chiffre saisi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Textcodearticle_Change() 'Incrémente automatiquement la désignation de l'article en fonction du code article saisi.
            If C Is Nothing Then
       MsgBox "pas trouvé"
    Else
    Set C = Feuil4.Cells.Find(What:=Textcodearticle)
            Textdesignation = C.Offset(0, 1)
       'suite de ton code sinon
       End If
    End Sub

  4. #4
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    C'est le problème du Textcodearticle_Change, la macro se lance à chaque caractère saisie.

    Tu peux soit ne pas mettre de message mais ça laisse l'utilisateur dans le flou si la recherche n'est pas fructueuse ou bien mettre un bouton qui lance la recherche une fois la saisie complète.

  5. #5
    Membre confirmé
    Homme Profil pro
    Chef d'exploitation
    Inscrit en
    Juillet 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 57
    Par défaut
    Le problème est que si je supprime la MsgBox, Excel renvoi au débogage en cas de valeur non trouvée et donc met l'utilisateur en confusion.

  6. #6
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Tu ne supprimes que le msgbox, mais tu laisses le exit sub si nothing.
    Ainsi ton évènement se déclenche mais ne fait rien et pas besoin de debug.

    Antony

  7. #7
    Membre confirmé
    Homme Profil pro
    Chef d'exploitation
    Inscrit en
    Juillet 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 57
    Par défaut
    "ou bien mettre un bouton qui lance la recherche une fois la saisie complète. "

    Comment puis-je opérer une telle opération?

    J'ai tapé le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Textcodearticle_Change() 'Incrémente automatiquement la désignation de l'article en fonction du code article saisi.
    Set C = Feuil4.Cells.Find(What:=Textcodearticle)
    If C Is Nothing Then
            Exit Sub
    Else:
            Textdesignation = C.Offset(0, 1)
    End If
    End Sub
    Tout se passe bien comme ça. Le nouveau problème est que le code va chercher la première valeur trouvé et donc si par exemple le code "12345" n'existe pas, le code va prendre la première valeur trouvé avec "123".

    Je pense qu'il faut que j'étudie un autre code qui reprend à l'identique ce qu'une fonction recherchev peut faire.

    J'avais cherché sur le forum mais je n'ai rien trouvé de tel, peut être que tu as une idée?

    Faut il que j'ouvre une nouvelle discussion?

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

Discussions similaires

  1. [XL-2013] Alerte depuis Excel via mail (Yahoo) ou autre
    Par mwasikitoko dans le forum Excel
    Réponses: 3
    Dernier message: 03/03/2015, 16h11
  2. Recherche automatique de valeur excel via visual basic 6
    Par moirs555 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 22/09/2011, 13h26
  3. Réponses: 0
    Dernier message: 13/11/2008, 23h47
  4. [E-03]Publier un pdf depuis excel via une macro et avec les LIENS
    Par Gaillac dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/10/2008, 09h59
  5. recherche d'une valeur dans excel + addition
    Par chti'me dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/09/2006, 23h53

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