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 :

méthode FIND EXCEL


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut méthode FIND EXCEL
    comment fait on pour utiliser la méthode FIND ? du style trouver un code dans une feuille A, qu'on doit retrouver dans la feuille B, si on trouve pas on doit écrire le code de B de la ligne correspondante dans un fichier C...

    Pour ça que je voudrais find, a moins que vous ayez d'autres idées...

  2. #2
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Bonjour aussi,

    si certains ont compris ta question, bravo !


    Citation Envoyé par melodyyy
    comment fait on pour utiliser la méthode FIND ? du style trouver un code dans une feuille A, qu'on doit retrouver dans la feuille B, si on trouve pas on doit écrire le code de B de la ligne correspondante dans un fichier C...

    Pour ça que je voudrais find, a moins que vous ayez d'autres idées...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Par défaut
    salut,

    je dirai parcours ta feuille A et prends le 1er code ensuite parcours ta feuille B
    et si feuilleA.cellule.value=feuilleB.cellule.value alors il te retourne vrai...

    en fin voila l'idee generale

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Par défaut
    ou alors dans visual basic editor tu vas dans l'aide et tu tapes find

    alors tu as ca qui apparait :

    Citation Envoyé par L'aide
    Find méthode
    Recherche la chaîne spécifiée dans le module actif.

    Syntaxe

    object.Find(target, startline, startcol, endline, endcol [,*wholeword] [,*matchcase] [, patternsearch]) As Boolean

    La syntaxe de la méthode Find comprend les éléments suivants*:

    Élément Description
    object Expression d'objet qui prend la valeur d'un objet figurant dans la rubrique Application.
    target Variable de type String contenant le texte ou le modèle à trouver.
    startline Variable de type Long spécifiant la ligne à laquelle vous souhaitez commencer la recherche*; elle prendra la valeur de la ligne de l'occurrence, le cas échéant.
    startcol Variable de type Long spécifiant la colonne à laquelle vous souhaitez commencer la recherche*; elle prendra la valeur de la colonne contenant l'occurrence, le cas échéant.
    endline Variable de type Long spécifiant la dernière ligne de l'occurrence, le cas échéant.
    endcol Variable de type Long spécifiant la dernière colonne de l'occurrence, le cas échéant.
    wholeword Facultatif. Valeur de type Boolean indiquant s'il faut limiter la recherche aux mots complets. Si cette valeur est True, seuls les mots complets seront trouvés. La valeur False est prise par défaut.
    matchcase Facultatif. Valeur de type Boolean indiquant s'il faut différencier les majuscules des minuscules. Si cette valeur est True, la recherche respecte la casse. La valeur False est prise par défaut.
    patternsearch Facultatif. Valeur Boolean indiquant si la chaîne cible est un modèle d'expression régulier. Si cette valeur est True, la chaîne cible est un modèle d'expression régulier. False est la valeur par défaut.
    Remarques

    Find renvoie la valeur True si une correspondance est trouvée, False dans le cas contraire.
    Les arguments matchcase et patternmatch s'excluent mutuellement. Si les deux arguments renvoient une valeur True, une erreur se produit.
    Le contenu de la boîte de dialogue Rechercher n'est pas modifié par la méthode Find.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each c In [A1:C5]
        If c.Font.Name Like "Cour*" Then
            c.Font.Name = "Times New Roman"
        End If
    Next
    Example
    This example finds all cells in the range A1:A500 on worksheet one that contain the value 2 and changes it to 5.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    With Worksheets(1).Range("a1:a500")
        Set c = .Find(2, lookin:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Value = 5
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With

  5. #5
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    ouah ! je vais essayer de m'en sortir mais en fait c'est juste comparer fichier A et fichier B, et je dois retrouver les même valeurs sinon ben dans C je marque la valeur de la colonne A et 0 dans les autres

  6. #6
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Si tes "codes" à retrouver sont en colonne A ...
    Tu peux mettre ça en B1 et recopier vers le bas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NB.SI(Feuil1!A:A; Feuil2!A1)>0; "C"; 0)
    Citation Envoyé par melodyyy
    ouah ! je vais essayer de m'en sortir mais en fait c'est juste comparer fichier A et fichier B, et je dois retrouver les même valeurs sinon ben dans C je marque la valeur de la colonne A et 0 dans les autres

  7. #7
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    Mon problème si tu veux c'est qu'en A2 je peux avoir 12345 dans le fichier A et B la ok, et en A3 avoir 12874 dans le fichier A et B tu vois ce que je veux dire ?
    A chaque ligne j'ai un code différent...et la je te met des chiffre en réalité c'est des chiffres mélangé avec des lettres....

  8. #8
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Non ...

    la formule que je t'ai donnée permet juste de savoir si le code existe dans la colonne A de l'autre feuille ...
    Citation Envoyé par melodyyy
    Mon problème si tu veux c'est qu'en A2 je peux avoir 12345 dans le fichier A et B la ok, et en A3 avoir 12874 dans le fichier A et B tu vois ce que je veux dire ?
    A chaque ligne j'ai un code différent...et la je te met des chiffre en réalité c'est des chiffres mélangé avec des lettres....

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Par défaut
    Voila ce que j'aurais fait, par contre je n'ai pas testé ce bout de code. Il est sans doute à modifier

    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
    34
    35
    36
    37
    38
    39
    40
    41
    Dim i,j as integer
    dim flag as boolean
     
    i = 1
    j = 1 
    flag = false
     
    'Tant que la celulle n'est pas vide, je continue
    Do While (Range("A" & i).Value <> "")
     
            Call Navigation_fichier("fichier B")
            Set c = Worksheets("feuil1").Cells.Find(Range("A" & i).Value )
     
            Call Navigation_fichier("fichier C")
     
            'Si la la valeur existe, je la mets dans le fichier C
            If Not c Is Nothing Then
                With c
                      Range("A" & j).Value = Range("A" & i).Value
     
                    'Je mets mon flag à true
                    flag = true
                End With
            End If
            if flag = false then
                 Range("A" & j).Value = 0
            end if
     
           'J'incrémente j et i pour les prochaines valeurs
           j = j + 1
           i = i + 1
     
           'Je retourne sur le bon fichier
          Call Navigation_fichier("fichier A")
    Loop
     
     
    'Procédure Navigation_fichier
    Sub Navigation_fichier(fichier)
        Windows(fichier).Activate
    End Sub

Discussions similaires

  1. Méthode find avec plusieurs mots à chercher
    Par domb_st dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/06/2007, 17h33
  2. Problème méthode find
    Par tazmania dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/06/2007, 15h37
  3. VBA-E Problème méthode .find
    Par popo68 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/01/2007, 10h14
  4. Méthode find sensible aux cellules fusionnées?
    Par spileo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/09/2006, 01h22
  5. Utilisation de la méthode FIND
    Par Jeannot45 dans le forum Access
    Réponses: 3
    Dernier message: 09/01/2006, 15h41

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