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 :

[VBA-E] effectuer une recherche dans un autre classeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 10
    Points
    10
    Par défaut [VBA-E] effectuer une recherche dans un autre classeur
    Bonjour à toutes et à tous !!! Je suis novice dans la programmation pour Excel et j'aurais voulu avoir vos conseils...

    Voila, j'aimerais effectuer la recherche d'un mot dans une autre feuille qui n'appartient pas au même classeur...

    J'ai réussi à effectuer la recherche dans la même feuille où se trouve la macro... avec ce programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Sub recherche_mot()
    '
        Dim mot As String
        mot = InputBox("saisissez la recherche")
        ActiveWindow.SmallScroll Down:=-79
        Cells.Find(What:=mot, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
        .Activate
        '
    End Sub

    donc j'aimerais modifier ce programme pour rechercher dans une autre feuille excel (en connaissant son chemin)... et aussi pour rechercher tous les mots correspondant à la recherche et non s'arrêter au premier...

    merci d'avance pour votre aide...

  2. #2
    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 040
    Points
    20 040
    Par défaut
    bonjour et bienvenue sur le forum ...
    ton autre classeur/feuille... il est ouvert comment...?

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    merci pour avoir modifier mon message...

    C'est moi qui ouvre l'autre feuille avec la liste de noms où je veux effectuer ma recherche.
    J'aimerais si possible l'ouvrir avec une macro (comme ça ça évite à ce que je le fasse), sinon au pire des cas je place ma liste en feuille 2 de mon classeur... ça peut être une autre solution si c'est plus simple... maintenant je ne sais pas rechercher sur une autre feuille...

    voila j'espère que j'ai été assez clair...

  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 546
    Points
    15 546
    Par défaut
    Citation Envoyé par Tu
    C'est moi qui ouvre l'autre feuille avec la liste de noms
    C'est une feuille ou un classeur ?
    J'ai lu jusqu'à la fin de ton message et je déduis que c'est un autre classeur.

    Tu as deux solutions, soit faire cette recherche sur un classeur fermé, soit sur un classeur ouvert
    Pour ouvrir le classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open Filename:=CheminEtNomDuClasseur
    Pour lancer la macro sur ce fichier, deux solutions
    A l'ouverture de ce fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Workbook_Open()
        Call MacroRecherche
    End sub
    Soit depuis le premier fichier ouvert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run "'LautreClasseur.xls'!MacroRecherche"
    A+

  5. #5
    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 040
    Points
    20 040
    Par défaut
    Si j'ai bien compris tu ne ve pas lancer une macro appartenant à un autre classeur.... mais depuis le code associé à un classeur, ouvrir un autre classeur et effectuer une recherche dans celui-ci ...

    bon on tu commence par ouvrir le classeur avec Workbooks.Open et tu récupére ensuite une référence à celui-ci ... tu utilise ensuite cette référence pour effectuer ta recherche....

    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
     
      Sub recherche_mot()
      Dim wk As Workbook
      Dim c as range ' Resultat de la recherche
      Dim mot As String
      mot = InputBox("saisissez la recherche")
      Dim f As Worksheet 'Feuille dans laquelle effectuer la rechercher
      'Ouverture du classeur :
      set wk = Workbooks.Open("c:\MonClasseur.xls")
      'Effectue recherche dans 1° feuille du classser
       Set c = wk.Sheets(1).Cells.Find(What:=mot, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
     
        If Not c Is Nothing Then
            MsgBox c.Value & " à l'adresse " & c.Address
        Else
           MsgBox mot & " Introuvable"
        End If
    end sub
    Ce code est surement à compléter ...( plusieurs résultats à la recherche ...? , cas ou fichier excel déjà ouvert...)

  6. #6
    Membre régulier
    Avatar de mortalino
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Points : 116
    Points
    116
    Par défaut
    Salut,

    Voici une fonction, elle sera à compléter afin de gérer le classeur, mais tu auras les adresses des cellules dans un tableau.
    (désolé pour la coloration syntaxique des mots clés, j'ai un programme qui ne passe pas ici, appremment) :


    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Public Function FindWord(ByVal sWord As String, Optional vPlage As Variant, Optional wSheet As Variant = "ActiveSheet") As String()
            Dim bVerifPlage As Boolean, rStartCell As Range
        If Not wSheet = "ActiveSheet" Then Sheets(wSheet).Select
            'vérification de la feuille à traiter
        If Not IsMissing(vPlage) Then bVerifPlage = True
            'vérification d'une possible plage
     
            Dim cMyAddress      As New Collection
            Dim sRes()          As String
            Dim ParseRange()    As String
     
        If bVerifPlage = False Then
            ' s'il n'y pas de plage, on vérifie dans toute la feuille
            Cells.Find(What:=sWord, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
                xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
                , SearchFormat:=False).Activate: cMyAddress.Add ActiveCell.Address
            Set rStartCell = ActiveCell
            Do
                Cells.FindNext(After:=ActiveCell).Activate: cMyAddress.Add ActiveCell.Address
            Loop While ActiveCell.Address <> Range(rStartCell).Address
     
            ' on place l'adresse des cellules dans un tableau de données
            ' il sera facile de savoir après quelles cellules contiennent
            ' les données recherchées. (où même sélectionner ces cellules)
                ReDim sRes(cMyAddress.Count - 1)
            For i = 0 To cMyAddress.Count - 1
                sRes(i) = cMyAddress.Item(i + 1)
            Next i
        Else
            ' s'il y pas une plage, on vérifie seulement dedans
                Dim rPlage As Range
            Set rPlage = vPlage
            ' on instancie l'objet (plage) en récupérant sa valeur
            ParseRange = Split(CStr(rPlage.Address), ":")
            ' ici je récupère la dernière cellule de recherche, afin de la sélectionner
            ' comme ça, le résultat sera chronologique (sinon, la recherche s'effectue
            ' depuis la cellule sélectionnée)
            Range(ParseRange(1)).Select
     
            rPlage.Find(What:=sWord, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
                xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
                , SearchFormat:=False).Activate: cMyAddress.Add ActiveCell.Address
            Set rStartCell = ActiveCell
            Do
                rPlage.FindNext(After:=ActiveCell).Activate: cMyAddress.Add ActiveCell.Address
            Loop While ActiveCell.Address <> Range(rStartCell.Address).Address
     
            ' on place l'adresse des cellules dans un tableau de données
            ' il sera facile de savoir après quelles cellules contiennent
            ' les données recherchées. (où même sélectionner ces cellules)
                ReDim sRes(cMyAddress.Count - 2)
            For i = 0 To cMyAddress.Count - 2
                sRes(i) = cMyAddress.Item(i + 1)
            Next i
        End If
        FindWord = sRes: Set cMyAddress = Nothing: Erase sRes
    End Function
     
    Sub Exemple_Utilisation()
        Dim sResult() As String, l As Integer
     
        sResult = FindWord("bonjour", Range("C23:Z114"), "Feuil3")
        '  autres exemples d'utilisation
        'sResult = FindWord("abc", Range("A1:B20"))
        'sResult = FindWord(UserForm1.ComboBox1.Text, Range("A1:B20"))
     
        For l = 0 To UBound(sResult)
            Debug.Print "-" & sResult(l) & "-"
        Next l
        Erase sResult
    End Sub
    ~ Mortalino ~ Colorisation automatique

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    merci BBIL c'est tout à fait ça... j'ai réussi à faire une recherche dans un autre classeur... super...

    maintenant le problème est qu'il ne m'affiche qu'un seul résultat... comment faire pour qu'il m'affiche tous les résultats de la recherche


    exemple : je veux rechercher le mot age dans la liste ci dessous :

    tête
    page
    bras
    menton
    nage
    age
    ...


    avec mon programme il ne m'en affichera qu'un... moi j'aimerai savoir comment faire pour qu'il m'affiche la totalité de la recherche...
    à savoir dans l'exemple :

    page
    nage
    age

    merci d'avance

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    recoucou...

    je suis sur que c'est tout simple mais je n'y arrive pas... il faut utiliser findnext mais je n'y arrive pas...

    j'ai besoin de vous SVP

    Un grand merci d'avance

  9. #9
    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 040
    Points
    20 040
    Par défaut
    il y as un exemple trés clair dans l'aide en ligne !!

    tiens un exemple inspiré de cette aide en ligne :

    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
     
    Option Explicit
    Sub ChercheTout()
    Dim mot As String
    Dim C As Range
    Dim Ws As Worksheet
    Dim firstAddress As String
    Set Ws = ActiveSheet 'Ben pour les tests aprés il faut mettre la bonne feuille ..
    mot = "B4"
    With Ws.Cells
        Set C = .Find(mot, LookIn:=xlValues)
        If Not C Is Nothing Then
            firstAddress = C.Address
            Do
                Debug.Print C.Value & " à " & C.Address
                Set C = .FindNext(C)
            Loop While Not C Is Nothing And C.Address <> firstAddress
        End If
    End With
    End Sub

  10. #10
    Membre régulier
    Avatar de mortalino
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Points : 116
    Points
    116
    Par défaut
    Mon exemple gère toutes les occurences, pas seulement une.
    Regarde bien ma fonction, en premier, c'est Find, ensuite, gestion des FindNext

  11. #11
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    je l'ai utilisé mais je n'arrive pas à afficher tous les résultats en même temps... là le programme les affiche un par un, moi je veux tous les résultats ensemble à la fin de la recherche dans une boîte de dialogue.

    Voici mon prog. :

    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
    Sub ecrire_mot()
      Dim wk As Workbook
      Dim c As Range ' Resultat de la recherche
      Dim mot As String
      mot = InputBox("saisissez la recherche")
      Dim f As Worksheet 'Feuille dans laquelle effectuer la rechercher
      'Ouverture du classeur :
      Set wk = Workbooks.Open("file://localhost/users/sebneb/Desktop/liste DVD/LISTEDVD.xls")
      'Effectue recherche dans 1° feuille du classser
       Set c = wk.Sheets(1).Cells.Find(What:=mot, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
     
     
         With Worksheets(1).Range("b1:b500")
        Set c = .Find(mot, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Interior.Pattern = xlPatternGray50
                MsgBox c.Value & " à l'adresse " & c.Address
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
     
        End If
     
    End With
        If Not c Is Nothing Then
            MsgBox c.Value & " à l'adresse " & c.Address
        Else
           MsgBox mot & " Introuvable"
        End If
    End Sub '

  12. #12
    Membre régulier
    Avatar de mortalino
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Points : 116
    Points
    116
    Par défaut
    Essaie comme ceci :

    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
     
    Sub ecrire_mot()
      Dim wk As Workbook
      Dim c As Range ' Resultat de la recherche
      Dim mot As String, sResult As String
      mot = InputBox("saisissez la recherche")
      Dim f As Worksheet 'Feuille dans laquelle effectuer la rechercher
      'Ouverture du classeur :
      Set wk = Workbooks.Open("file://localhost/users/sebneb/Desktop/liste DVD/LISTEDVD.xls")
      'Effectue recherche dans 1° feuille du classser
       Set c = wk.Sheets(1).Cells.Find(What:=mot, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
     
     
         With Worksheets(1).Range("b1:b500")
        Set c = .Find(mot, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Interior.Pattern = xlPatternGray50
                sResult = sResult & c.Value & " à l'adresse " & c.Address & vbCrlf
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
            msgbox sResult
        End If
     
    End With
        If Not c Is Nothing Then
            MsgBox c.Value & " à l'adresse " & c.Address
        Else
           MsgBox mot & " Introuvable"
        End If
    End Sub

  13. #13
    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 040
    Points
    20 040
    Par défaut
    voila le code à mortalino (même s'il est à revoir au niveau de l'affichage du résultat) ... te montre comment stocker le résultat de ta rechecher dans une chaine ... que tu peu ensuite afficher ...

    autre chose cette ligne issue de l'exemple .. VBA... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     c.Interior.Pattern = xlPatternGray50
    permet de griser la cellule trouvée ... (je sais pas si c'est ce que tu ve...)...
    voici les derniéres lignes de code corrigées pour l'affichage du résultat :

    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
    ...
     Do
                sResult = sResult & c.Value & " à l'adresse " & c.Address & vbCrlf
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
        
    End With
        If sResult <> "" Then
            MsgBox sResult
        Else
           MsgBox mot & " Introuvable"
        End If
    End Sub

  14. #14
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    merci bien... ça marche nikel....


    un grand merci à vous deux pour vos codes...

  15. #15
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    Bonsoir j'ai une autre question par rapport au programme :

    je voudrais ne pas voir la liste qui s'ouvre...

    je voudrais savoir si c'était possible de fermer la feuille où il y a la liste et afficher la msgbox dans la feuille où on a demandé la recherche...


    merci d'avance

  16. #16
    Membre régulier
    Avatar de mortalino
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Points : 116
    Points
    116
    Par défaut
    tu peux rendre invisible une feuille par cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("nom feuille").Visible = False
    tu pourras tout de même travailler avec, bien qu'elle soit invisible

    ++

  17. #17
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    merci,

    j'ai testé mais il y a un problème...

    Quand j'exécute le programme, ça m'efface la feuille que je ne voulais pas voir (c'est à dire qu'il n'y a plus rien dedans mais elle est ouverte)...

    moi je voudrais ouvrir la page pour pouvoir faire la recherche puis la fermer et afficher le résultat de la recherche dans ma feuille de départ (là où je peux faire ma recherche)...

    voila mon code :
    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
    Sub ecrire_mot()
    '
     
      Dim wk As Workbook
      Dim c As Range ' Resultat de la recherche
      Dim mot As String, sResult As String
      mot = InputBox("saisissez la recherche")
      Dim f As Worksheet 'Feuille dans laquelle effectuer la rechercher
      'Ouverture du classeur :
      Set wk = Workbooks.Open("file://localhost/users/sebneb/Desktop/liste DVD/LISTEDVD.xls")
      'Effectue recherche dans 1° feuille du classser
      Sheets(1).Visible = False
       Set c = wk.Sheets(1).Cells.Find(What:=mot, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
     
     
         With Worksheets(1).Range("b1:b500")
        Set c = .Find(mot, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                sResult = sResult & c.Value & vbCrLf
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
     
    End With
        If sResult <> "" Then
            MsgBox sResult
        Else
           MsgBox mot & " Introuvable"
        End If
    End Sub

  18. #18
    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 546
    Points
    15 546
    Par défaut
    Je n'ai pas compris le problème. Pour éviter de voir ta feuille pendant que tu travailles dedans en la rendant visible, mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub TaMacro()
    Dim etc
         Application.screenUpdating = false 'en début de macro
         Worksheets(LaFeuille).visible = true
         'Ton code
         'Tout ça que tu veux...
         '...
         Worksheets(LaFeuille).visible = True
         Application.screenUpdating = false 'en fin de macro
    End Sub
    Ainsi tu n'auras pas de mouvement de feuille et tu pourras travailler normalement sur LaFeuille
    Si le problème est bien celui-là
    A+

  19. #19
    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 040
    Points
    20 040
    Par défaut
    en fait tu peu masquer le classeur ... dans lequel tu fais la recherche au moment de l'ouverture...

    le seul probléme.. est de savoir ce que tu ve faire si ce classeur est déjà ouvert !! ..

    en considérant qu'il est toujours fermé... tu peu t'inspirer du code à Ousk'... et faire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      Application.screenUpdating = false 
    'Ouverture du classeur :
      set wk = Workbooks.Open("c:\MonClasseur.xls")
      'Effectue recherche dans 1° feuille du classser
      
      ... traitement de ta recherhe....
    
       wk.close false ' Fermetur de classeur sans sauvegarde...
       Application.screenUpdating = true 'Réactive l'affichage

  20. #20
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    merci... c'était exactement ça... la feuille qui contient la liste n'est jamais ouverte, juste pour la compléter... donc c'est exactement ce bout de programme qui me manquait....

    Un grand merci à vous tous...

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

Discussions similaires

  1. [Toutes versions] Copier les résultats d'une recherche dans un autre classeur 2
    Par sossso112333 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 16/05/2015, 20h52
  2. [VBA Xl2007] Effectuer une recherche dans l'aide Excel ou VBA
    Par SilkyRoad dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2007, 21h13
  3. Effectuer une recherche dans Encarta
    Par Morfus dans le forum Delphi
    Réponses: 2
    Dernier message: 28/01/2007, 11h47
  4. [VBA-Excel] Effectuer une recherche dans une liste view
    Par Miles Raymond dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2006, 17h21
  5. Comment effectuer une recherche dans une listBox?
    Par Mickey.jet dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 19/05/2006, 16h15

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