Erreur 1004 définie par l'application ou l'objet

Bonjour.

Voici la macro qui me pose problème avec l'erreur 1004 définie par l'application ou par l'objet.

ça me souligne ma ligne du If juste après le do until.

Sub numéro_sinistre(k As double)

Dim i As double

Worksheets("sheet 2").Range("A4:d3000").ClearContents

i = 3

k = 5

Worksheets("sheet 2").Cells(4, 1) = Worksheets("sheet 1").Cells(2, 1) 'je met déjà la 1ère référence dans ma première cellule

Do Until k >= 2000

If Worksheets("sheet 1").Cells(i + 1, 1).Value = 0 Or Worksheets("sheet 1").Cells(i + 1, 1).Value = Worksheets("sheet 1").Cells(i, 1).Value Then

i = i + 1

Else

Worksheets("sheet 2").Cells(k, 1).Value = Worksheets("sheet 1").Cells(i + 1, 1).Value

k = k + 1

i = i + 1

End If

Loop

End Sub

Private Sub CommandButton1_Click()

numéro_sinistre (k)

End Sub

Le but de ma macro est de récupérer des références qui sont en colonne A, répétées plusieurs fois dans ma "sheet 1" et de les mettre dans la "sheet 2" mais sans qu'elles ne soient répétées. Chaque référence ne doit apparaître qu'une fois dans la sheet 2.

Pour info, dans mon fichier; une même référence est répétée sur les lignes les unes après les autres. c'est à dire que je vais avoir en colonne : A1 A1 A1 A1 A2 A2 ...... et donc sur ma 2ème feuille je n'aurai que A1 A2...

Les références peuvent aussi bien être des lettres et des chiffres ou des lettres seules ou des chiffres seul.

J'espère que mes explications sont aseez claires.

Question subsidiaire : si quelqu'un sait comment faire dans le cas où des mêmes références ne seraient pas les unes en dessous des autres, je suis preneuse.

Mon fichier est confidentiel je ne peux donc pas le joindre mais si nécessaire je peux mettre un extrait du fichier.

Merci d'avance pour votre aide.

je vous souhaite une bonne journée

Bonjour,

Essaie :

'...
Do Until k >= 2000
Y1 = Worksheets("sheet 1").Cells(i + 1, 1).Value = 0
Y2 = Worksheets("sheet 1").Cells(i + 1, 1).Value = Worksheets("sheet 1").Cells(i, 1).Value
 If Y1 Or Y2 Then
 i = i + 1
 Else
 Worksheets("sheet 2").Cells(k, 1).Value = Worksheets("sheet 1").Cells(i + 1, 1).Value
 k = k + 1
 i = i + 1
 End If
Loop
'...

sinon mettre un extrait du fichier.

A+

ça ne marche pas. Merci quand même.

Je joins mon extrait de fichier, si ça peut aider

Bonjour,

Si le but est juste de supprimer les doublons, cette macro devrait faire l'affaire :

Sub test()
    Worksheets("Sheet2").Range("$A$3:$A$5000").RemoveDuplicates Columns:=1, Header:=xlYes
End Sub

A+

effectivement, au final c'est bien ça : enlever les doublons de la 1ère colonne de ma feuille 1 et que ça apparaisse dans ma 2ème feuille par contre. je ne veux pas changer ma colonne de ma feuille 1.

La macro ne fait rien dans la feuille 1...

Tu copies toute la feuille 1 dans la feuille 2 (en collage spécial valeur) puis tu lances la macro :

Seule la feuille 2 est modifiée...

(en fait tu n'as même pas besoin de macro : Dans l'onglet Données tu cliques sur supprimer les doublons...°

En fait, quand tu as parlé de doublons, je me suis dit qu'il existait peut être déjà quelque chose pour enlever les doublons.

Je verrai tout ça demain.

Merci.

j'ai mis ce que tu m'as dit :

Sub numéro_sinistre()

Worksheets("Sheet2").Range("$A$3;$A$5000").RemoveDuplicates Columns:=1, Header:=xlYes

End Sub

Private Sub CommandButton1_Click()

numéro_sinistre ()

End Sub

Par contre, mon bouton ne marche pas. ça me met "syntax error" et souligne "private sub commandbutton1_click() et met "numéro_sinistre()" en rouge

Et je voudrai mettre une macro pour que tout soit automatique. j'ai plein d'autres colonnes qui dépendent de la première.

Merci encore pour votre aide

Question résolue. J'ai utilisé le code donné à ce lien :

http://www.excel-easy.com/vba/examples/remove-duplicates.html

Merci d'avoir essayer de m'aider.

Bonne journée.

Rechercher des sujets similaires à "erreur 1004 definie application objet"