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 :

problem fonction .find [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut problem fonction .find
    bonjour a tous ,

    j'essaye de crée un classeur Excel qui analyserai les relever de compte format Excel d'une banque


    je bute sur le module de vérification du numéros de compte ,module que j'ai déjà utilisé pour d'autre recheche , mais jamais avec des nombres , je n'arrive pas a trouver des infos que je comprenne sur ces fonction du coup ,bien je vous écris

    le but de se code et de repairer dans ma colonne 1 si le numeros de compte ( numeros de compte qui n'est pas seul dans la case ) et le même que celui de la base de données existante,si les numeros de compte son different alors le programme ne recupaire pas les données,

    voila a peu pres le but de cette partie de mon code

    mon problem, soit je declare mes variable et je crée des erreur du coup je l'ai declarent en variant , il n'y a plus d'erreur , mes ca ne fonctionne pas
    j'ai d'abord pensée que cela venai de mon code a executer selon les condition, mais même en les ayant remplacer par de simple msgbox

    ca ne marche pas


    je me permet de vous mettre les code en question, au cas ou mon explication ne soit pas clair
    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
     
    Sub controle_numero_de_compte()
    Dim num_de_compte As Range
    Dim num_de_compte_de_reference As Variant
    num_de_compte_de_reference = ThisWorkbook.Worksheets("Feuil1").Cells(1, 1).Value
      Do
        Set num_de_compte = Columns("A").Find(what:="num_de_compte_de_reference", LookIn:=xlValues, lookat:=xlPart)
        If Not num_de_compte Is Nothing Then
          'action si num_de_compte et trouver
        Else
        'sinon
        If MsgBox("le n° decompte ne correspond pas", vbRetryCancel + vbExclamation + vbDefaultButton1, "Erreur du numeros de compte") = vbRetry Then
         MsgBox "clic retry!"
     
        Else
     
        MsgBox "clic cancel!"
        End If
          Exit Do
        End If
      Loop
    End Sub
    voila,
    je ne vous demande pas forcement la solution, mais j'aimerais vraiment comprendre pourquoi ca ne fonctionne pas

    ===>ps: si vous me donnez la soluce SVP expliquer moi

    a bientot enfin j'espaire

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Si ta variable num_de_compte_de_reference est de type texte, tu n’as pas besoin de placer des quotes à ton paramètre Find.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim num_de_compte As Range
    Dim num_de_compte_de_reference As String
        num_de_compte_de_reference = ThisWorkbook.Worksheets("Feuil1").Cells(1, 1).Value
        Do
            Set num_de_compte = Columns("A").Find(what:=num_de_compte_de_reference, LookIn:=xlValues, lookat:=xlPart)
    Cordialement.

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    En plus, je ne vois pas l'utilité du do
    Ton code avec un choix succinct des noms des variables
    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
    Sub Controle_Numero_De_Compte()
    Dim RefComp As String
    Dim c As Range
     
    RefComp = ThisWorkbook.Worksheets("Feuil1").Cells(1, 1).Value
    If RefComp <> "" Then
        Set c = ThisWorkbook.Worksheets("Feuil2").Range("A:A").Find(what:=RefComp, LookIn:=xlValues, lookat:=xlPart)
        If Not c Is Nothing Then
            'Action si numéro de compte trouvé
            Set c = Nothing
        Else
            MsgBox "Compte non trouvé"
        End If
    Else
        MsgBox "Veuillez entrer un n° de compte en A1 de Feuil1"
    End If
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Déjà, un n° de compte est sensé être unique donc, il serait préférable d'utiliser "xlWhole" (recherche exacte) au lieu de "xlPart" (recherche partielle) car les résultats risques d'être différents de ceux désirés.
    Ici la valeur à chercher est bien définie, cellule "A1" de la feuille "Feuil1" donc, pas de doute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    num_de_compte_de_reference = ThisWorkbook.Worksheets("Feuil1").Cells(1, 1).Value
    Mais ici, c'est sur quelle feuille que doit être faite la recherche ? La feuille active qui est ??? Sur la feuille "Feuil1" dans ce cas, "Columns("A")" ne va pas puisque la valeur à chercher se trouve en "A1"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set num_de_compte = Columns("A").Find(what:="num_de_compte_de_reference", LookIn:=xlValues, lookat:=xlPart)
    Hervé.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut
    Bonjour a tous,
    Tous d’abord, désolé pour la mise en forme (je trouver ca sympa), je ne recommencerai pas.

    Theze:- il est vrai qu'un numéro de compte est unique, le problème ce trouve être, qu'il n'est pas seul dans la(les) cellule(s) ou je fais ma comparaison c'est pour cela que je n'est pas utiliser "xlWhole" je pensé que avec "xlwhole" il fallait trouver exactement la même chose (mais peut être que je me trompe)
    Voici un exemple de la case contrôlé "CCHQ n° xxxxxxxxxxx"(x étant un chiffre)

    -pour la feuil, pas de souci, se sont 2 feuils différentes, une ou ce trouve le numéro de compte de référence, et l'autre que j'active juste avant de lancer la comparaison

    mercatog :

    Il est vrai que dans ce cas la DO ne sert a rien, a la base je voulais que a chaque fois que le numéro de comte soit trouver je supprime certain ligne, mais j'ai abandonné cette idée, le do en était le vestige

    gFZT82 :
    Merci pour l’info je savais pas


    Par contre j'ai un deuxième problème, dois-je ouvrir un deuxième sujet ?
    (Une histoire de copier /collage speciale )

    merci a tous

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

Discussions similaires

  1. Probleme fonction FIND
    Par Gianni1701 dans le forum MATLAB
    Réponses: 1
    Dernier message: 03/07/2014, 09h39
  2. [XL-2010] probleme avec la fonction: FIND
    Par momo68610 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/05/2012, 15h21
  3. Probleme Fonction FIND
    Par backdraf dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/03/2010, 11h23
  4. probleme fonction gethostbyname
    Par oclone dans le forum Développement
    Réponses: 6
    Dernier message: 14/04/2005, 10h31
  5. probleme fonction syntaxe
    Par gIch dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 09h52

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