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

Autofilter problemen

Status
Niet open voor verdere reacties.

marionvdh

Gebruiker
Lid geworden
16 aug 2007
Berichten
33
Hoi,

Al een hele tijd geleden heb ik met hulp van mensen op dit forum de voglende macro gemaakt:

Private Sub CommandButton6_Click()
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="x"
' ActiveWindow.SmallScroll Down:=-3
Range("A100").Select
Range("A1:N260").Sort Key1:=Range("I2"), Order1:=xlAscending, Key2:=Range _
("C2"), Order2:=xlAscending, Key3:=Range("E2"), Order3:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal

Sheets("brief").Range("2:2").Delete Shift:=xlDown

Sheets("zoeken").Select
ActiveSheet.AutoFilterMode = False
ActiveSheet.Range("A1").AutoFilter
Set rng = ActiveSheet.AutoFilter.Range
Selection.AutoFilter Field:=2, Criteria1:="x"

If rng.Columns(1).SpecialCells(xlCellTypeVisible).Count = 1 Then
MsgBox "GEEN ADRES GESELECTEERD"
ActiveSheet.Range("A1").AutoFilter
Exit Sub
End If

If rng.Columns(1).SpecialCells(xlCellTypeVisible).Count > 2 Then
MsgBox "MEERDERE ADRESSEN GESELECTEERD"
ActiveSheet.Range("A1").AutoFilter
Exit Sub
End If

LRow = Worksheets("brief").Cells.Find("*", Range("A1"), xlFormulas, , xlByRows, xlPrevious).Row

ActiveSheet.AutoFilter.Range.Offset(1, 0).Resize(ActiveSheet.AutoFilter.Range.Rows.Count - 1).Columns("AG:AM").Copy
Worksheets("brief").Cells(LRow + 1, 1).PasteSpecial xlValues
ActiveSheet.Range("A1").AutoFilter
Selection.AutoFilter


LCol = 8

Sheets("opdrachten").Select
ActiveSheet.AutoFilterMode = False
ActiveSheet.Range("A1").AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="x"
Aantal = ActiveSheet.AutoFilter.Range.Rows.Count
For x = 2 To Aantal
If Cells(x, 1).EntireRow.Hidden = False Then
Range(Cells(x, 3), Cells(x, 11)).Copy Worksheets("brief").Cells(LRow + 1, LCol)
LCol = LCol + 9
End If
Next x
ActiveSheet.Range("A1").AutoFilter
Selection.AutoFilter
End Sub



maar in het stuk mbt het tabblad "ZOEKEN" gaan er dingen fout. In de bijlage zit een klein voorbeeld van een stukje uit mijn excel bestand. Ik wil dus eigenlijk dat de autofilter wordt aangezet, en in de tweede kolom de rij wordt geselecteerd waar een 'x' staat. Na nog wat acties moet de rij als het ware weer op ' alles weergeven' worden gezet. Dit gaat prima zolang ik niet de eerste persoon in de lijst selecteer. Wanneer ik namelijk de eerste persoon in de lijst selecteer (rij 2) plaatst de macro de autofilter niet in de eerste rij (waar de titels staan) maar in de tweede rij! (waar dus deze persoon zelf staat). gevolg: Excel denk dat er niemand geselecteerd is. en loopt mijn macro vast

Hoe komt dit???

Alvast heel erg bedankt!

Groeten,
Marion
 

Bijlagen

  • voorbeeld.xls
    13,5 KB · Weergaven: 30
Het voorbeeld wat je stuurde is niet echt representatief.
In de macro wordt bijvoorbeeld gesproken over verscheidene werkbladen terwijl er in je voorbeeld slechts 1 gevuld is. Bovendien, welk werkblad zien we hier?
Is het programma zo groot geworden dat je niet kunnen bijsluiten?
Uiteraard ontdaan van alle gevoelige en overbodige informatie.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan