Rows.Delete

Bonjour,

je n'arrive pas à faire fonctionner la partie

Rows(J).Delete

de cette macro

Sub efface_doublons()
'cherche les doublons et les efface
total_saisi
Dim i, A, J As Long, lig As Long
Dim mot1, mot2, mot3, mot4 As String

lig = total_saisi + 5
Dim K As Integer
For K = 1 To lig
    With Sheets("Dico")
        For J = 1 To lig
            If J = K Then
            J = J + 1
            mot1 = .Cells(K, gb).Value
            mot2 = .Cells(K, fr).Value
            mot3 = .Cells(J, gb).Value
            mot4 = .Cells(J, fr).Value
                If mot1 = mot3 Or mot2 = mot4 Then
                MsgBox "Vous avez déjà saisi ces 2 valeurs" & Chr(13) & mot1 & "=" & mot2 & " et " & mot3 & "=" & mot4
                i = Application.InputBox("supprimer la ligne 1 :" & mot1 & "=" & mot2 & "ou 2 : " & mot3 & "=" & mot4)
                ElseIf i = 1 Then
                Rows(K).Delete
                ElseIf i = 2 Then
                Rows(J).Delete
                End If
            End If
        Next J
    End With
Next K
End Sub

MERCI DE VOTRE AIDE

Mots de passe : Alain

Bonsoir Alain83 le forum

là pas le temps mais juste un mot sur tes variables

Dim i, A, J As Long, lig As Long
Dim mot1, mot2, mot3, mot4 As String

cela signifie que tu déclares i en variant, a en variant, j en long et lig en long pas sur que c'est ce que tu veux

et en dessous

mot1 en variant, mot 2 en variant et mot 3 en variant et mot4 en string

voilà qui sera plus adapté

dim a&,i&,j&,lig&, mot1$,mot2$,mot3$,mot4$

a+

papou

Bonjour

Bonjour paritec

Je proposes une autre macro qui fait le même travail : Supprime les doublons

A toi de dire si cela te convient

Sub efface_doublons()
'cherche les doublons et les efface

Dim J As Long
Dim Lg As Long

  With Sheets("Dico")
    Lg = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A1:B" & Lg).Sort Key1:=.Range("A1"), _
            Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
            Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers
    For J = Lg To 2 Step -1
      If .Range("A" & J) = .Range("A" & J - 1) Then
        .Rows(J).Delete
      End If
    Next J
  End With
End Sub
Rechercher des sujets similaires à "rows delete"