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

VBA Discussion :

[VBA] Recherche d'une valeur dans un autre fichiers puis


Sujet :

VBA

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut [VBA] Recherche d'une valeur dans un autre fichiers puis
    Bonjour,

    J'ai plusieurs classeurs qui doivent se mettre à jour via un autre classeur.
    Mon fichier n° (Clt1.xls) contient plusieurs colonne dont un identifiant en colonne B.
    Dans mon fichier sources.xls j'ai le même identifiant avec 4 colonnes suplémentaire.
    je souhaiterai que les 4 colonnes supplémentaires soit coller dans les colonnes H, I, J, K de Clt1.xls et ainsi de suite jusque la fin du fichier.

    Merci @ à vous

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    As-tu essayé de recenser les opérations à réaliser pour atteindre ton objectif ? Sinon, commence par là. Ce que tu nous demandes peut être réalisé manuellement. Tu enregistres la macro en le faisant et ensuite tu reviens nous voir pour qu'on t'arrange le code.

    Juste un conseil mais si tu veux apprendre à décoder le code, c'est la meilleure école.

    Allez, fais ça, on t'attends

    A+

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Voila ou j'en suis !!!

    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
    42
    Sub Macro2()
    '
    ' Macro2 Macro
    ' Macro enregistrée le 23/03/2006 par Mannes
    '
    Dim Valeur
    Dim toto As String
    '
        toto = Dir("C:\PourJean\tarif\*.xls", vbDirectory)
        Do While (toto <> "")
        Workbooks.Open Filename:="C:\PourJean\tarif\" + toto, UpdateLinks:=0
        'nom2 = Left(toto, Len(toto) - 4)
        'ActiveWorkbook.SaveAs Filename:= _
        '"C:\PourJean\" + nom2 + ".txt", FileFormat:=xlText, _
        'CreateBackup:=False
        'ActiveWorkbook.Close savechanges:=False
        Range("B8").Select
        Debug.Print Cells(8, 2).Value
        Valeur = Cells(8, 2).Value
        Open "C:\PourJean\PRIX_NICO.xls" For Input As #1
        Cells.Select
        Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        Columns("A:A").Select
     
        Selection.Find(What:=" " & Valeur & " ", After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Activate
        Range("B2011:E2011").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("1004_Feuil1.xls").Activate
        Range("H8:K8").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Windows("Classeur1.xls").Activate
        toto = Dir
    Loop
     
     
    End Sub
    Je bloque sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Selection.Find(What:=" " & Valeur & " ", After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Activate
    Merci

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Valeur est-elle une valeur ?

    Si oui, tu dois rechercher un string, et donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Valeur = cstr(Cells(8, 2).Value )
    Tu dis et supprime tes espaces dans find

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Selection.Find(What:=Valeur, After:=ActiveCell, LookIn:=xlFormulas, _ 
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
    A+

    Edit
    Pourquoi as-tu délesté ?

  5. #5
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Donc Valeur ets un num !!

    j'ai reussi a trouvé le parametre !!

    Par contre, j'ai pensé utilisé la recherchev pour ce que j'ai à faire mais je n'y parviens pas.

    Voilà mon code maintenant

    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
    Dim Valeur
    Dim toto As String
    '
        toto = Dir("C:\PourJean\tarif\*.xls", vbDirectory)
        Do While (toto <> "")
        Workbooks.Open Filename:="C:\PourJean\tarif\" + toto, UpdateLinks:=0
        Range("B8").Select
        Debug.Print Cells(8, 2).Value
        Valeur = Cells(8, 2).Value
        Workbooks.Open Filename:="C:\PourJean\PRIX_NICO.xls", UpdateLinks:=0
        Cells.Select
        Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        Columns("A:A").Select
     
        Selection.Find What:=" & Valeur & ", After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False
     
     
        Range("B2011:E2011").Select
        Application.CutCopyMode = False
        Selection.Copy
        Windows("1004_Feuil1.xls").Activate
        Range("H8:K8").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
    Je souhaiterai apres avoir trouvé ma valeur !! connaitre les coordonnées de la celulle ou je me trouve afin de selectionner les 4 dernieres colonnes de cette ligne pour les coller dans mon prmeier fichier.

    Merci

  6. #6
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Selection.Find What:=" & Valeur & ", After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False
     
        MsgBox ActiveCell.Address
    Ceci me donne la valeur A1 et non la valeur de ma celulle trouvé.

    Merci

  7. #7
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    En fait il me faudrai les coordonnées de la celulle ou se trouve ma valeur

    Merci

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Faut tout y dire...
    Si tu as fait valeur = cstr(...) comme je t'ai dit, tu fais ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Selection.Find What:=Valeur, After:=ActiveCell, LookIn:=xlFormulas, _ 
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
            MatchCase:=False, SearchFormat:=False
    Ensuite, seulement tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox activecell.address
    A+

    Edit
    Et tu auras l'adresse de la cellule dans laquelle i y aura Valeur... piskifotoutedire

  9. #9
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par ouskel'n'or
    Faut tout y dire...
    Si tu as fait valeur = cstr(...) comme je t'ai dit, tu fais ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Selection.Find What:=Valeur, After:=ActiveCell, LookIn:=xlFormulas, _ 
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
            MatchCase:=False, SearchFormat:=False
    Ensuite, seulement tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox activecell.address
    A+

    Edit
    Et tu auras l'adresse de la cellule dans laquelle i y aura Valeur... piskifotoutedire
    Bonjour !!!

    la valeur retourné dans la msgbox est $A$1 !! Ce n'est pas l'adresse de ma celulle !!

    merci

  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    je n'en crois pas mes yeux !
    FOVREMANTOUDIRE

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    avec ta fonction de recherche tu cherche la chaine de caractére : & Valeur &

    tiens voila de quoi remplacer ta ligne find

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim r As Range
        Set r = Selection.Find(What:=Valeur, After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False)
       If r Is Nothing Then
         MsgBox Valeur & " Introuvable !"
        exit Sub 'Voir ici ce que tu ve faire si tu trouve pas...
         Else
        r.Select
        End If

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Bonjour !!!

    la valeur retourné dans la msgbox est $A$1 !! Ce n'est pas l'adresse de ma celulle !!
    C'est que Valeur n'a pas été trouvée. Suis le conseil de bbil, il est plein de bons conseils

    A+

Discussions similaires

  1. Recherche d'une donnée dans un autre fichier
    Par Cha0022 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/06/2014, 22h23
  2. [XL-2007] Erreur 1004, recherche d'une cellule dans un autre fichier excel
    Par bodd984 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/08/2010, 18h12
  3. Rechercher une valeur dans un autre fichier
    Par devock dans le forum Excel
    Réponses: 3
    Dernier message: 03/11/2008, 15h49
  4. Recherche d'une valeur dans un txt depuis vba excel
    Par Ted37 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/08/2008, 08h28
  5. Réponses: 10
    Dernier message: 15/05/2007, 14h24

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