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

Find et FindNext sur 2 classeurs

  • Initiateur de la discussion Initiateur de la discussion Martialou
  • 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 !

M

Martialou

Guest
Bonjour,

j'ai un souci avec une marco qui permet de faire une recherche avec Find et FinNext.
J'ai 2 classeurs, le 1er permet de recevoir les valeurs du classeur n°2 qui lui est une sorte de base de données.
J'effectue une recherche, pour sélectionner la première valeur "non" de la colonne "J" du classeur n°2.
Ensuite, dans une variable "NumDI", j'enregistre la valeur "age" avec cette fonction :
ActiveCell.Offset(0, -7).Select
NumDI = ActiveCell.Value
ActiveCell.Offset(0, 7).Select
C'est peut être pas top, mais ça marche 😉
Je sélectionne le classeur n°1, et je fais une recherche pour savoir si la valeur de la variable "NumDI" existe dans la colonne "C" du classeur n°1, si non, j’inscris les valeurs, et je continue ...

Le petit problème, c'est que j'ai une erreur avec : "Loop While Not c Is Nothing And c.Address <> firstAddress" ... je ne suis pas expert en la matière, mais là j'ai du mal.

Le but ce cette macro, est de renseigner un tableau en fonction d'une base de données qui évolue jour après jour, ce que je recherche à faire, c'est d'éviter d'avoir des doublons lorsque je lance une 2ème, 3ème ... fois la macro.

Je vous remercie d'avance de votre aide.
 

Pièces jointes

Re : Find et FindNext sur 2 classeurs

Bonsoir Martialou,

Je crois que ton problème vient du fait que tu as fais deux recherches avec FIND en même temps. La première est avec ta variable c et la deuxième avec ta variable d. Tu ne peux pas faire 2 recherches avec FIND en même temps. Pour ta variable d, il faudrait que tu utilises une boucle au lieu de FIND.

J'espère que cette piste t'aidera un peu. Désolé, de ne pas pouvoir en faire plus pour l'instant, je dois y aller...

A+
 
Re : Find et FindNext sur 2 classeurs

Rebonsoir,

Finalement, en y repensant un peu. Tu ne peux pas avoir un .Find et un .Findnext en même temps. Toutefois, tu peux utiliser deux .Find en même temps...

Ceci étant dit, voici un code qui semble bien fonctionner. C'est une combinaison d'une boucle (for each) et d'un .Find.

VB:
Sub Rechercher()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim rg2 As Range
Dim c As Range, d As Range, e As Range
Dim NumDI As String

Application.ScreenUpdating = False

Set wb1 = ThisWorkbook

Classopen = ActiveWorkbook.Path & "\"
Workbooks.Open Classopen & "Classeur2.xlsx"
Set wb2 = Workbooks("Classeur2.xlsx")

Set rg2 = wb2.Sheets(1).Range("J9:J30")      'on recherche dans wb2
For Each c In rg2
    If c = "non" Then
        NumDI = c.Offset(0, -7)
        Set d = wb1.Sheets(1).Range("c7:c25").Find(NumDI, LookIn:=xlValues)
        If d Is Nothing Then        'si on ne trouve pas alors on ajoute
            Set e = wb1.Sheets(1).Range("A65536").End(xlUp).Offset(1, 0)
            e = "1"
            e.Offset(0, 2) = NumDI
        End If
    End If
Next c

Application.ScreenUpdating = True
End Sub

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
363
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…