Range find

kllmoon

XLDnaute Occasionnel
Bonjour le forum, j'ai un petit pépin avec range find. Voici mon code

Code:
Private Sub Worksheet_Activate()
Dim ws As Worksheet
Dim x As String
Dim rng As Range
Dim rngFind As Range
For Each ws In ActiveWorkbook.Worksheets
z = ws.Name
Set rng = Sheets(z).Range("C3")
Set rngFind = Sheets("Dossiers Actifs").Range("A4:A50").Find(rng)
If rngFind Is Nothing Then
    y = [COUNTA(a3:a50) + 3 ]
    Sheets("Dossiers Actifs").Range("A" & y).Value = rng
Else
 
    End If
Next
End Sub

Ce code fonctionne dans la mesure où mes valeurs en C3 sont transférées sur ma feuille dossiers actifs. Le seul hic c'est que même si cette valeur est déjà comprise sur la feuille Dossier Actif, elle est recopiée à la fine de la liste. Je me retrouve donc avec des entrées ajoutée en double, en triple.... à chaque exécution de cette macro.

Alors, comment faire pour que ça fonctionne?
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Range find

Salut kllmoon et le forum
Si la valeur en C3 n'est pas contenue dans "dossiers Actifs" entre A3 et A50, il ajoute la valeur du C3 à la fin de la liste.
Comme c'est une liste qu'on augmente, je suis parti du principe qu'elle commence en A3 et finie à la dernière ligne non vide de A.
Code:
Sub test()
Dim Ws As Worksheet
For Each Ws In ActiveWorkbook.Worksheets
    With Sheets("Dossiers Actifs")
        If Not (.Range(.[A4], .Cells(Rows.Count, "A").End(xlUp)).Find(Ws.[C3]) Is Nothing) Then _
                                          .Cells(Rows.Count, "A").End(xlUp)(2) = Ws.[C3]
    End With
Next
End Sub
Je ne l'ai pas testée.
A+
 

pierrejean

XLDnaute Barbatruc
Re : Range find

bonsoir a tous

A tester

Code:
Private Sub Worksheet_Activate()
Dim Ws As Worksheet
For Each Ws In ActiveWorkbook.Worksheets
    With Sheets("Dossiers Actifs")
        If Application.WorksheetFunction.CountIf(.[A:A], Ws.[C3]) = 0 Then
           Range("A65536").End(xlUp).Offset(1, 0) = Ws.[C3]
        End If
    End With
Next
End Sub
 

Statistiques des forums

Discussions
312 501
Messages
2 089 014
Membres
104 005
dernier inscrit
Maxence