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