Erreur d'exécution 1004 incapable d'get la propriété countif de la feuille de calcul

Voici mon code:

Sub yenilikleri_ekle() Dim sh1 As Worksheet, sh2 As Worksheet, lr As Long, rng As Range Set sh1 = ThisWorkbook.Worksheets("Input") Set sh2 = ThisWorkbook.Worksheets("Ayarlar") lr = sh1.Cells(Rows.Count, 2).End(xlUp).Row Set rng = sh1.Range("B5:B" & lr) For Each c In rng If WorksheetFunction.CountIf(sh2.Range("A:A"), c.Value) = 0 Then sh2.Range("A" & sh2.Cells(Rows.Count, 1).End(xlUp).Row + 1) = c.Value End If Next End Sub 

Ce qu'il fait, c'est faire correspondre les cellules dans sh1 et sh2 . Si ce n'est pas dans sh2 il ajoute Cell.Value à sh2 . Le code fonctionne bien jusqu'à ce que la cellule possède un text de plus de 255 caractères. (Jusqu'à ce que ce soit un long text)

Lorsque le text est long, il renvoie une erreur "Run-time error 1004: Unable to get countif property of the worksheet" qui "Run-time error 1004: Unable to get countif property of the worksheet" non-sens. Je n'ai pas réussi à réparer le problème pendant 2 jours et j'ai besoin de votre aide. J'ai ajouté Dim pour c mais pas de changement, toujours la même erreur. J'ai changé pour CountA mais il est devenu insensé.

Merci d'avance pour votre aide.

Si le but est d'avoir ThisWorkbook.Worksheets("Input").Range("B:B") dans ThisWorkbook.Worksheets("Ayarlar").Range("A:A") sans duplicates et ThisWorkbook.Worksheets("Ayarlar").Range("A:A") est vide avant, alors cela devrait fonctionner:

 With ThisWorkbook .Worksheets("Input").Columns("B:B").Copy Destination:=.Worksheets("Ayarlar").Range("A1") .Worksheets("Ayarlar").Range("A:A").RemoveDuplicates Columns:=1, Header:=xlNo End With 

Salutations

Axel