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

Kan dit korter

Status
Niet open voor verdere reacties.

verluc

Gebruiker
Lid geworden
29 mei 2009
Berichten
535
Heb volgende macro:

Code:
Sub Filter()
  Application.ScreenUpdating = False
  Sheets("Selectie").Cells.ClearContents
    With Sheets("Algemeen").Range("A1:T1200")
         Value1 = Application.InputBox("Vul kolomnummer in")
         If Value1 = "" Then Exit Sub
         If Value1 = Cancel Then Exit Sub
         .AutoFilter field:=Value1, Criteria1:="1"
         .Copy Destination:=Sheets("Selectie").Cells(65536, 1).End(xlUp).Offset(0, 0)
         .AutoFilter
    End With
          ActiveSheet.Range("A1:T1200").Columns.AutoFit
          Sheets("Selectie").Select
          ActiveSheet.Range("A1:T1200").Columns.AutoFit
  Application.ScreenUpdating = True
End Sub

Mijn vraag is of het niet mogelijk is door enige aanpassing van deze macro, de AutoFit te vervangen door "Usedrange.Autofit"
Nu moet ik er telkens aan denken om deze Range te wijzigen indien er een kolom bijkomt.
Met dank
 
Code:
Sheets("Selectie").Select
          ActiveSheet.Range("A1:T1200").Columns.AutoFit

wordt

Code:
Sheets("Selectie").UsedRange.Columns.AutoFit
 
Code:
Sub Filter()
  Application.ScreenUpdating = False
  Sheets("Selectie").Cells.ClearContents
  With Sheets("Algemeen").Range("A1:T1200")
         x = InputBox("Vul kolomnummer in")
         If Val(x)=0 Then Exit Sub
         .AutoFilter x, "1"
         .Copy Sheets("Selectie").Cells(65536, 1).End(xlUp).offset(1)
         .AutoFilter
         .columns(1).resize(,.columns.count).AutoFit
    End With
    Sheets("Selectie").columns(1).resize(Sheets("Selectie").columns.count).AutoFit

  Application.ScreenUpdating = True
End Sub
 
Hello,

ben zo vrij nogmaals terug te komen op dit onderwerp.
Na eniog stoeien heb ik de suggestie van SNB verder kunnen aanpassen met


Code:
Sub Filter()
Application.ScreenUpdating = False
  Sheets("Selectie").Cells.ClearContents
  [COLOR="Red"]With Sheets("Algemeen").UsedRange[/COLOR]
         x = InputBox("Vul kolomnummer in")
         If Val(x) = 0 Then Exit Sub
         .AutoFilter x, "1"
         .Copy Sheets("Selectie").Cells(65536, 1).End(xlUp).Offset(0, 0)
         .AutoFilter
         .Columns(1).Resize(, .Columns.Count).AutoFit
  End With
       Sheets("Selectie").Columns(1).Resize(Sheets("Selectie").Columns.Count).AutoFit
Application.ScreenUpdating = True
End Sub

Hierdoor kan ik kokommen bijvoegen, zonder enige passing te moeten doen aan de uitbreiding van de "range".
Is dit een elegante oplossing of zijn er nadelen aan ?
 
Offset(0,0) is niets. Verwijder dit.
 
En nu nog de suggestie van Wigi implementeren..
 
SNB, hoezo, Uw code doet dit toch reeds ?

Het enige wat nog verkort kan worden in deze code is : het invullen van kolomnummer.
Dit is blijkbaar overbodig door de desbetreffende kolom reeds is aangeklikt met "dubbel-click"
Ik weet echter niet hoe dit in deze macro te verwerken.Beide regels verwijderen van ingave van kolomnummer is blijkbaar geen juiste oplossing.
Enige raadgeving hierbij, van harte welkom.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan