• 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.

Wissen met filter met array via Macro

Status
Niet open voor verdere reacties.

Acmats

Gebruiker
Lid geworden
7 okt 2016
Berichten
5
Beste Allen,

Ik probeer via een macro te filteren met een array en dan te wissen in een aantal aaneen gesloten kolommen.
Als ik de array met de hand vul werkt het.
Zet ik de te wissen waardes in een kolom (F) en maak daar een lijst van dan werkt het niet.
Voorbeeld file bij gevoegd met in macro werkend en niet werkende regel

Code:
Sub Verwijder()
Dim Nm As Variant, i As Integer, Lr As Integer
Lr = Range("F100").End(xlUp).Row
    For i = Lr To 1 Step -1
        Nm = ",""" & Cells(i, 6) & """" & Nm
    Next
Nm = Right(Nm, Len(Nm) - 1)

'Debug.Print Nm

Application.DisplayAlerts = False
    With Cells(1).CurrentRegion
        '.AutoFilter 3, Array(Nm), 7                                                ' ===== Deze regel leest niets van de array
         .AutoFilter 3, Array("Lokatie1", "Lokatie7", "Lokatie5"), 7   ' ======== Deze regel werkt zoals gepland
         '.Offset(1).Delete
         .AutoFilter
    End With
End Sub

Alvast bedankt voor hulp
AcM
 

Bijlagen

Test het maar eens.
Code:
Sub Verwijder()
Dim Nm As Variant, i As Integer, Lr As Integer
Lr = Range("F100").End(xlUp).Row
    For i = Lr To 1 Step -1
        Nm = "," & Cells(i, 6) & Nm
    Next
Nm = Mid(Nm, 2)


'Debug.Print Nm


Application.DisplayAlerts = False
    With Cells(1).CurrentRegion
         .AutoFilter 3, Split(Nm, ","), 7                                              ' ===== Deze regel leest niets van de array
         '.AutoFilter 3, Array("Lokatie1", "Lokatie7", "Lokatie5"), 7   ' ======== Deze regel werkt zoals gepland
         '.Offset(1).Delete
         '.AutoFilter
    End With
End Sub
 
Laatst bewerkt:
Harry,

Daar zat ik dus een middag op te spitten, te star zitten denken.
hartstikke bedankt.

Groet Arie
 
niet getest, maar misschien wat foutafhandeling/preventie als len(Nm)=0 ?
 
Lijkt mij meer iets voor het geavanceerde filter.

Zet in F1 'Kop3' en de locaties eronder

Code:
Sub Verwijder()
  With Cells(1).CurrentRegion
    .AdvancedFilter xlFilterInPlace, Cells(1, 6).CurrentRegion
    .Offset(1).Delete xlUp
  End With
  ActiveSheet.ShowAllData
End Sub
 
cow8 en VenA bedankt voor reactie, de oplossing van Harry is precies wat ik nodig heb.
Dit gaat voor mij om een stukje uit een groter geheel en ik wil dat de te wissen items automatisch worden inlezen, voorkomt tik fouten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan