• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

functie onafhankelijk van werkblad laten werken.

Status
Niet open voor verdere reacties.

etimm

Gebruiker
Lid geworden
25 okt 2011
Berichten
50
Ik heb de volgende code om dubbele waarden uit een lijst te verwijderen.
Code:
    Dim rCell As Range
    Dim rRange As Range
    Dim lCount As Long
     
    Set rRange = Range("A1", Range("A" & Rows.Count).End(xlUp))
    lCount = rRange.Rows.Count
     
    For lCount = lCount To 1 Step -1
        With rRange.Cells(lCount, 1)
            If WorksheetFunction.CountIf(rRange, .Value) > 1 Then
                .EntireRow.Delete
            End If
        End With
    Next lCount

Nou werkt de code alleen op het werkblad waar de knop op geplaatst is die de functie aanroept.
Hoe krijg ik het voor elkaar om deze functie met een ander werkblad te laten werken?

Dit werkt niet:
Code:
Set rRange = ThisWorkbook.Sheets("Softwareleveranciers").Range("A1", Range("A" & Rows.Count).End(x1Up))

Iemand een idee?
 
Dit zou voldoende moeten zijn:
Let wel ook op de punten (.)

Code:
  Dim rCell As Range
    Dim rRange As Range
    Dim lCount As Long
 [COLOR="#FF0000"]With Sheets("Naam Blad")[/COLOR]    
    Set rRange = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
    lCount = rRange.Rows.Count
     
    For lCount = lCount To 1 Step -1
        With rRange.Cells(lCount, 1)
            If WorksheetFunction.CountIf(rRange, .Value) > 1 Then
                .EntireRow.Delete
            End If
        End With
    Next lCount
[COLOR="#FF0000"]End with[/COLOR]
 
Ik krijg nu helaas een 400 fout.

Ik probeer de functie twee keer op te nemen (met andere namen/variabelen)
De bedoeling is dat dit voor twee bladen gebeurt wanneer ik op een knop druk.

Hoe kan ik dit voor elkaar krijgen?
 
Laatst bewerkt:
Code:
Sub tst()
    For Each ar In Array("Blad1", "Blad2")
        With Sheets(ar)
            For lcount = .Range("A1", .Range("A" & Rows.Count).End(xlUp)).Rows.Count To 1 Step -1
                If WorksheetFunction.CountIf(.Columns(1), .Cells(lcount, 1)) > 1 Then .Cells(lcount, 1).EntireRow.Delete
            Next
        End With
    Next
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan