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 :

Fonction find, lorsque rien n'est trouvé


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
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 42
    Par défaut Fonction find, lorsque rien n'est trouvé
    Je fais un programme qui me pointe la ligne lorsque une référence que je rentre au clavier est trouvée. Lorsque je rentre une réference présente, la fonction pointe correctement la ligne. Lorsque je rentre une référence absente, le programme plante (au moment ou je recupere la ligne)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub scanner()
        Dim scan As String
        Dim ligne As Integer
        Application.EnableEvents = False
        scan = InputBox("saisir reference", "scan reference", "entrer reference")
        ligne = Range("A1:A65000").Find(scan).Row
        Rows(ligne).Select
        Application.EnableEvents = True
    End Sub
    Comment faire? je suppose que le problème vient du fait que l'on recupere une ligne que le programme ne trouve pas mais dans ce cas comment savoir que find n'a rien trouvé?

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour, regarde ça
    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
    Function SerchXls(Myrange As Range, MyCellule As Range, strRecherche, EntierCell As Boolean) As Long '
    On Error Resume Next
    SerchXls = 0
       SerchXls = Myrange.Cells.Find(What:=strRecherche, After:=MyCellule, LookIn:=xlFormulas, LookAt _
            :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=EntierCell).Row
      If SerchXls <= MyCellule.Row Then SerchXls = 0
    End Function
     
     
    Sub scanner()
        Dim scan As String
        Dim ligne As Integer
        Application.EnableEvents = False
        scan = InputBox("saisir reference", "scan reference", "entrer reference")
        If Trim("" & scan) <> "" Then
        ligne = SerchXls(Columns("A:A"), Range("A1"), scan, True)
        If ligne > 0 Then Rows(ligne).Select Else MsgBox "Pas trouvé", vbExclamation
        Application.EnableEvents = True
        End If
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 42
    Par défaut
    Wow la réponse était rapide, merci beaucoup.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub scanner()
        Dim scan As String
        Dim ligne As Integer
        Application.EnableEvents = False
        scan = InputBox("saisir reference", "scan reference", "entrer reference")
        Set result = Range("A1:A65000").Find(scan)
        If Not result Is Nothing Then result.EntireRow.Select Else MsgBox "Inconnu"
        Application.EnableEvents = True
    End Sub
    JB

Discussions similaires

  1. [E-03] Fonction ChDir lorsque le disque est protege ?
    Par shadok6 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/03/2009, 13h50
  2. Réponses: 5
    Dernier message: 16/02/2009, 09h23
  3. Recordset seek : cas ou rien n'est trouvé
    Par Frog74 dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/05/2008, 10h34
  4. Réponses: 4
    Dernier message: 25/03/2008, 16h00
  5. Repetion d'une fonction lorsqu'un bouton est cliqué
    Par zmatz dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 29/05/2007, 17h21

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