Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1608to1612
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA nicht korrekt

VBA nicht korrekt
20.02.2018 16:00:25
Pascal
Hallo Miteinander
Findet ihr hier einen Fehler?
Objekt unterstützt diese Eigenschaft oder Methode nicht (Fehler 438)

  • Sub Filter()
    '
    Sheets("LBs").Select
    ActiveSheet.AutoFilterMode = False
    If Not ActiveSheet.AutoFilterMode = True Then
    letzteSpalte = Sheets(1).Cells(1, 256).End(xlToLeft).Column
    letzteZeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    ActiveSheet.Range("A1" & letzteSpalte).Select_
    Selection.AutoFilter Field:=1, _
    Criteria1:="", Operator:=xlAnd_
    Selection.AutoFilter Field:=5, _
    Criteria1:="=1*", Operator:=xlAnd
    End If
    Range("A2:K" & letzteZeile).Select
    Selection.Copy
    Sheets("Lieferdatum").Activate
    Range("J2").Select
    ActiveSheet.Paste
    End Sub

  • Vielen Dank
    LG Pascal

    3
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: VBA nicht korrekt
    20.02.2018 16:21:21
    UweD
    Hallo
    1) ActiveSheet.Range("A1" & letzteSpalte)
    gibt keinen vernünftigen Bereich an. m.M. nach fehlt hier auch die letzetZeile
    2) Ausserdem: du schaltest den Filter erst aus und prüfst dann nochmal, ob er NICHT AN ist. Das kannst du dann auch direkt lassen.
    3) auf select und activate kann in 99% verzichtet werden..
    Wenn ich alles richtig verstanden habe, müsste das reichen
    Sub Filter()
        Dim letzteSpalte As Integer, letzteZeile As Double
        With Sheets("LBs")
        
            .AutoFilterMode = False
        
            letzteSpalte = .Cells(1, 256).End(xlToLeft).Column
            letzteZeile = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
            
            
            With .Range("A1").Resize(letzteZeile, letzteSpalte)
                .AutoFilter Field:=1, Criteria1:="<>", Operator:=xlAnd
                
                .AutoFilter Field:=5, Criteria1:="=1*", Operator:=xlAnd
            End With
            
            
            .Range("A2:K" & letzteZeile).Copy _
                Destination:=Sheets("Lieferdatum").Range("J2")
        End With
    
    End Sub
    

    LG UweD
    Anzeige
    AW: VBA nicht korrekt
    20.02.2018 16:32:42
    yummi
    Hallo Pascal,
    Dein Range ist, wen nz.B. die letzte Spalte 10 ist: A110 und nicht A1:J1
    Außerdem brauchst Du die ganzen select nicht.
    so gehts:
    
    Sub Filter()
    Dim letzteSpalte As Integer
    Dim letzteZeile As Long
    Dim wks As Worksheet
    Set wks = ThisWorkbook.Sheets("LBs")
    wks.AutoFilterMode = False
    If Not wks.AutoFilterMode = True Then
    letzteSpalte = Sheets(1).Cells(1, 256).End(xlToLeft).Column
    letzteZeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    With wks.Range("A1:" & WandleZahlInBuchstaben(letzteSpalte) & "1")
    .AutoFilter Field:=1, Criteria1:="", Operator:=xlAnd
    .AutoFilter Field:=5, Criteria1:="=1*", Operator:=xlAnd
    End With
    End If
    Range("A2:K" & letzteZeile).Select
    Selection.Copy
    Sheets("Lieferdatum").Activate
    Range("J2").Select
    ActiveSheet.Paste
    End Sub
    Function WandleZahlInBuchstaben(ByVal iWert As Integer) As String
    Dim Spaltenbuchstabe As String
    Spaltenbuchstabe = Right(Columns(iWert).Address, Len(Columns(iWert).Address) - InStrRev( _
    Columns(iWert).Address, "$"))
    WandleZahlInBuchstaben = Spaltenbuchstabe
    End Function
    
    Gruß
    yummi
    Anzeige
    AW: VBA nicht korrekt
    26.02.2018 09:04:21
    Pascal
    Hallo UweD
    Vielen Dank. Wieder etwas dazu gelernt.
    :)
    LG Pascal

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige