Trouver une valeur dans un autre classeur

zephir94

XLDnaute Impliqué
Bonsoir à tous,

J'essaie de trouver dans un autre classeur une valeur ( le classeur Calendrier ).
J'ai donc écris ceci :

Code:
    Workbooks("Calendrier.xls").Activate
   With Workbooks("Calendrier.xls")
    MaRecherche = l
    Message = "La valeur " & MaRecherche & " a été trouvée :" & Chr(10)
    For Each Ws In Worksheets
        With Ws
            Set c = .Columns("A:Z").Find(What:=MaRecherche, LookIn:=xlValues, LookAt:=xlPart)
            If Not c Is Nothing Then
                firstAddress = c.Address
                Do
                    Message = Message & "- dans la feuille " & Ws.Name & ", cellule " & c.Address & Chr(10)
                    Set c = .Columns("A:Z").FindNext(c)
                Loop While Not c Is Nothing And c.Address <> firstAddress
            End If
        End With
    Next Ws
    MsgBox Message
        Exit For
          End With
         End If
      
     Next
Mon soucis est que malgré
Code:
Workbooks("Calendrier.xls").Activate
Il me recherche et trouve la valeur dans le classeur source et ne vas pas dans le classeur Calendrier ( celui-ci est ouvert ) !
Une idée ?
Merci par avance pour vos réponses
 
Dernière édition:

Tentative

XLDnaute Occasionnel
Re : Trouver une valeur dans un autre classeur

Bonjour,

Une tentative tentante tant attendue ...

Code:
Sub rrecherche()
Dim MaRecherche As Integer
Dim Ws As Worksheet
Dim C As Range
Dim FirstAddress As String
Dim Message As String

 Workbooks("Calendrier.xls").Activate
   With Workbooks("Calendrier.xls")
      MaRecherche = 4419  ' comme la viande, c'est à varier
      Message = "La valeur " & MaRecherche & " a été trouvée :" & Chr(10)
      For Each Ws In .Worksheets
         With Ws
            Set C = .Columns("A:Z").Find(What:=MaRecherche, LookIn:=xlValues, LookAt:=xlPart)
            If Not C Is Nothing Then
               FirstAddress = C.Address
               Do
               Message = Message & "- dans la feuille " & Ws.Name & ", cellule " & C.Address & Chr(10)
               Set C = .Columns("A:Z").FindNext(C)
               Loop While Not C Is Nothing And C.Address <> FirstAddress
            End If
         End With
      Next Ws
      MsgBox Message
   End With
End Sub

A+

Tentative
 

zephir94

XLDnaute Impliqué
Re : Trouver une valeur dans un autre classeur

Merci à vous tous

J'ai trouvé j'ai mal renseigné le nom de ma feuille je suis un boulet !
J'ai un soucis de syntaxe pourriez-vous m'aider,

Code:
Set cellu = Range(num & ligne : num & 200).Find(k, lookat:=xlWhole)

num étant BQ par exemple
Ligne étant 45 par exemple

Je n'arrive pas à écrire avec mes variables l'équivalence de ceci :

Code:
Set cellu = Range("BQ45" : "BQ200").Find(k, lookat:=xlWhole)
 

Tentative

XLDnaute Occasionnel
Re : Trouver une valeur dans un autre classeur

Bonjour,

Pour m'aider à éviter les fautes de frappe, je déclare mes variables et dans les noms de variables j'ajoute au moins une lettre Majuscule.
Quand je saisis le texte, en changeant de ligne, si les majuscules s'ajoutent toutes seules, ça m'indique que je n'ai pas d'erreur de frappe.

A+


Tentative
 

Discussions similaires

Statistiques des forums

Discussions
314 636
Messages
2 111 457
Membres
111 144
dernier inscrit
shura_77