Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trouver une valeur dans un autre classeur

  • Initiateur de la discussion Initiateur de la discussion zephir94
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
Re : Trouver une valeur dans un autre classeur

Bonsoir.

Peut-être For Each Ws In .Worksheets
mais ce ne semble pas être la seule erreur.
Pas testé faute de fichier, de code complet... et de connaissances suffisantes...
 
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
 
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)
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…