Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Vba code
#11
Hallo,

ich vermute, das liegt an dieser

Code:
Set rngBereich = Union(rngBereich, rngTreffer)

Codezeile. Du hast hier wahrscheinlich sehr viele Zeilen in der Bereichsvariablen. Und vielleicht gibt es da eine Obergrenze.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#12
Moin,

ja, die Grenze habe ich ab und zu auch schon erleben dürfen. Darum etwas langsamer aber dafür (hoffentlich) ohne Abbruch:

Code:
Sub RausDamit()
  Dim wksAllData As Worksheet, wksData2Del As Worksheet
  Dim rngData2del As Range
  Dim lRowAll As Long, lRow2Del As Integer, Ze As Long
 
  On Error GoTo ErrorHandler
  With Application
     .ScreenUpdating = False
     .Calculation = xlCalculationManual
  End With
  Set wksAllData = Sheets("Tabelle1")
  Set wksData2Del = Sheets("Tabelle2")
  lRow2Del = wksData2Del.Cells(Rows.Count, 1).End(xlUp).Row
  Set rngData2del = wksData2Del.Range("A2:A" & lRow2Del)
  With wksAllData
     lRowAll = .Cells(Rows.Count, 1).End(xlUp).Row
     For Ze = lRowAll To 1 Step -1
        If WorksheetFunction.CountIf(rngData2del, .Cells(Ze, 1)) _
         > 0 Then .Rows(Ze).EntireRow.Delete
     Next Ze
  End With
ErrorHandler:
  With Application
     .ScreenUpdating = False
     .Calculation = xlCalculationManual
  End With
  If Err.Number <> 0 Then MsgBox "Fehler Nr. " & Err.Number & vbCrLf _
   & Err.Description, vbCritical, "Fehler"
End Sub
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Antworten Top
#13
Hallo Günther!
Du hast da einen fatalen Flüchtigkeitsfehler:
Code:
ErrorHandler:
 With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
 End With

es muss .Calculation = xlCalculationAutomatic heißen, sonst rechnet Excel nicht mehr.
.ScreenUdating braucht ja nicht zurückgesetzt werden, weshalb dies auch wegbleiben kann.

Kollegialer Gruß,

Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#14
Moin Ralf,

du hast natürlich Recht! Danke. So viel zum Thema: "Kleine Ursache, große Wirkung."
Copy/paste ist zwar beim coden mitunter ganz praktisch aber verführt auch zur Faulheit Sleepy .
Mir ist es eben aufgefallen, weil in einer anderen Mappe Calculation (natürlich) immer noch auf false war ...
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste