Thema Datum  Von Nutzer Rating
Antwort
29.08.2014 10:07:09 Moritz
Solved
29.08.2014 12:26:07 Gast68987
NotSolved
29.08.2014 12:57:48 Moritz
NotSolved
Blau Tabelle aufräumen; If not - Laufzeitfehler
29.08.2014 13:07:27 Gast94994
Solved
29.08.2014 13:09:30 Gast70959
Solved
29.08.2014 15:34:53 Moritz
NotSolved
29.08.2014 16:08:36 Gast10100
NotSolved
08.09.2014 10:52:16 Moritz
NotSolved
08.09.2014 14:07:42 Gast77455
NotSolved

Ansicht des Beitrags:
Von:
Gast94994
Datum:
29.08.2014 13:07:27
Views:
828
Rating: Antwort:
 Nein
Thema:
Tabelle aufräumen; If not - Laufzeitfehler

Du musst darauf achten, ineinander verschachtelte Blöcke auch wieder in umgekehrter Reihenfolge zu schließen.

Das bedeutet hier konkret: Zuerst geht With auf, dann geht For auf.

Also geht zuerst For zu und danach dann With zu (bei dir war das genau verdreht).

 

Außerdem solltest du diese Zeilen mit Select herausnehmen, die kosten nur unnötig Abarbeitungszeit (in der Masse - also bei vielen Aufrufen - wird das schnell mal ekelhaft).

Option Explicit 'Variablendeklaration erzwingen (hauptsächlich um Tippfehlern vorzubeugen)

Sub Aufraeumen()

   'zu nutzende Variablen deklarieren    
  Dim i As Long
    
   'innerhalb des nachfolgenden Blocks jeweils auf das angegebene Tabellenblatt beziehen - insofern gewollt
   '(wenn gewollt, dann steht vor der Objektreferenz jeweils ein Punkt - siehe z.B. ".Cells", weiter unten)
  With ThisWorkbook.Worksheets("Kennzahlen")
      
     'durchläuft alle Zellen (ohne Titelzeile)
    For i = .Cells(.Rows.Count, "A").End(xlUp).Row To 2 Step -1
        
       'Wenn in Spalte A kein "K" steht
       'oder wenn in in Spalte C zwei bestimmte Ausdrücke stehen, dann ...
      If Not .Cells(i, "A").Value Like "*K*" _
      Or .Cells(i, "C").Value Like "*Tagnoo*"
      Or .Cells(i, "C").Value Like "*Tdg*" _
      Then
         '... Zeile löschen
        .Rows(i).Delete Shift:=xlShiftUp
      End If
 
      'Spalte NaT löschen
      .Columns("nicht abgerechnete Transporte").Delete Shift:=xlToLeft
    Next

  End With
     
  'Spalte Flotte einfügen
  Worksheets("Hilfe").Copy
  Worksheets("Kennzahlen").Columns("C:C").Insert Shift:=xlShiftToRight
  
  'den autom. eingeblendeten (animierten) Kopier-Rahmen von Excel deaktivieren
  Application.CutCopyMode = False
  
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
29.08.2014 10:07:09 Moritz
Solved
29.08.2014 12:26:07 Gast68987
NotSolved
29.08.2014 12:57:48 Moritz
NotSolved
Blau Tabelle aufräumen; If not - Laufzeitfehler
29.08.2014 13:07:27 Gast94994
Solved
29.08.2014 13:09:30 Gast70959
Solved
29.08.2014 15:34:53 Moritz
NotSolved
29.08.2014 16:08:36 Gast10100
NotSolved
08.09.2014 10:52:16 Moritz
NotSolved
08.09.2014 14:07:42 Gast77455
NotSolved