MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 17.02.2018, 00:21   #1
AchimSKI
MOF User
MOF User
Standard VBA - Code schrecklich langsam - Zeilen löschen wenn Zelle Wert enthält

Hi und so an alle lieben Helfer!

Mein Code soll eine Zeile löschen, wenn in Spalte A das Wort "ok" steht. Benutzt wird nur A1:C160. Mein Code hier funktioniert! Aber er braucht über 30 Sekunden bis er fertig ist und das KANN es nicht sein. Findet jemand einen Fehler hier oder gibt es einen einfacheren Weg?

Danke für alle Hilfe! Ihr seid einfach super.

Code:

Dim alt As Variant
Dim i     As Integer
Dim intLR As Integer
intLR = Sheets("Tabelle1").Range("A160").End(xlUp).Row
' Fokus auf Tabelle1
With Sheets("Tabelle1")
  For i = 1 To intLR
'Spalte A, dort sucht er den Wert "ok"
    If InStr(1, .Cells(i, 1).Value, "ok") Then
      .Cells(i, 1).EntireRow.Delete
      i = i - 1
    Else
    End If
  Next i
 End With

__________________

Ich probier's mal ganz ohne Signatur.
AchimSKI ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.02.2018, 01:50   #2
Hajo_Zi
MOF Guru
MOF Guru
Standard

ich würde die Schleife von hinten nach vorne laufen lassen, damit kann +1 entfallen.
Berechnung, Bildschirmaktualisierung aus.

GrußformelHomepage

__________________

Signatur in jedem Beitrag
m Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.02.2018, 01:59   #3
AchimSKI
Threadstarter Threadstarter
MOF User
MOF User
Standard

Danke, lieber Hajo. Mmmh, wie schreib ich das?

Das mit der Bildschirmaktualisierung ist klar. Aber das mit der Schlaufenrichtung .... nicht so.

__________________

Ich probier's mal ganz ohne Signatur.

Geändert von AchimSKI (17.02.2018 um 02:04 Uhr).
AchimSKI ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.02.2018, 06:25   #4
Hajo_Zi
MOF Guru
MOF Guru
Standard

For i = intLR to 1 Step -1


Gruß Hajo

__________________

Signatur in jedem Beitrag
m Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.02.2018, 07:12   #5
Storax
MOF Profi
MOF Profi
Standard

Code:

Option Explicit

Sub testIt()
'Dim alt As Variant

Dim i As Long
Dim lastRow As Long

    On Error GoTo EH
    'lastRow     = Sheets("Tabelle1").Range("A160").End(xlUp).Row
    lastRow = 450
    ' Fokus auf Tabelle1
    TurnOffFunctionality
    With Sheets("Tabelle1")
        For i = lastRow To 1 Step -1
            'Spalte A, dort sucht er den Wert "ok"
            If InStr(1, .Cells(i, 1).Value, "ok") Then
                .Cells(i, 1).EntireRow.Delete
            Else
                ' Do nothing
            End If
        Next i
    End With
EH:
    TurnOnFunctionality
End Sub

Private Sub TurnOffFunctionality()
    Application.Calculation = xlCalculationManual
    Application.DisplayStatusBar = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
End Sub

Private Sub TurnOnFunctionality()
    Application.Calculation = xlCalculationAutomatic
    Application.DisplayStatusBar = True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

__________________

This isn't a code writing service, you need to do some research and have a go at writing some of your own code.
Be careful, content may contain traces of irony.
Storax ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.02.2018, 08:08   #6
AchimSKI
Threadstarter Threadstarter
MOF User
MOF User
Standard

Guten Morgen, Hajo. 1000Dank. Der Code geht, aber er ist genauso langsam wie mein alter. Vielleicht ist das einfach so?

__________________

Ich probier's mal ganz ohne Signatur.
AchimSKI ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.02.2018, 08:21   #7
Hajo_Zi
MOF Guru
MOF Guru
Standard

bei mir läuft es in null Komma nichts.

nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.

Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.

Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.

Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster, Test, Mappe, Beispiel, Fehler, Kalender usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Es sollte ein aussagekräftiger Name sein.

Gruß Hajo

__________________

Signatur in jedem Beitrag
m Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.02.2018, 08:42   #8
RPP63neu
MOF Meister
MOF Meister
Standard

Moin!
Warum filterst Du nicht einfach nach "ok" und löscht die sichtbaren Zeilen?
Bei 160 Zeilen ist es egal; bei größeren Bereichen mit entsprechender Fragmentierung der Fundzeilen bietet sich ein zusätzliches vorheriges Sortieren an.

Gruß Ralf

__________________

Meine Logik war nicht fehlerhaft, nur meine Interpretation!
Tuvok
RPP63neu ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 22.02.2018, 10:25   #9
AchimSKI
Threadstarter Threadstarter
MOF User
MOF User
Standard

Oh, meine letzte Frage hat sich erledigt. War ein blödes Diagramm mit Fremdverweisen. Also... ich bin wieder total glücklich. Danke für alles!!!

(Ich hab einfach den Tipp von RPP63neu umgesetzt und das klappt bei mir fix.)

__________________

Ich probier's mal ganz ohne Signatur.

Geändert von AchimSKI (22.02.2018 um 11:11 Uhr).
AchimSKI ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.