Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
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

(ActiveSheet.UsedRange.Rows.Count) zählt falsch

(ActiveSheet.UsedRange.Rows.Count) zählt falsch
31.05.2013 11:10:38
Marc
Hallo zusammen,
ich habe ein Problem mit dem ich einfach nicht weiterkomme....
Ich kopiere mittels Makro Daten wild hin und her und entferne Duplikate. Da sich nach der Entfernung der Duplikate die Anzahl der Zeilen doch massiv reduziert möchte ich mit dem Befehl
msg2 = (ActiveSheet.UsedRange.Rows.Count)
die Anzahl der Zeilen neu berechnen.
Nun das Problem:
Er zählt nach wie vor die Originalanzahl der Zeilen, die so auch in einem Tabellenblatt so stehen. Selbst wenn ich das Datenblatt erneut selectiere und den Wert auf Null setze, schmeisst er mir die Originalanzahl raus (nämlich knappe 900 anstatt 25...)
msg2 = 0
MsgBox msg2 'hier schmeisst er noch 0 aus
Sheets("Rechnung").Select ' hier stehen definitiv nur noch 25 Zeilen drin es waren mal knappe 900
msg2 = (ActiveSheet.UsedRange.Rows.Count)
MsgBox msg2 ' nun hat er wieder die knappen 900...
Was kann ich noch probieren?
Lieben Gruß
Marc

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ActiveSheet.UsedRange.Rows.Count) zählt falsch
31.05.2013 11:12:06
Hajo_Zi
Hallo Marc,
mal sichern.

AW: ActiveSheet.UsedRange.Rows.Count) zählt falsch
31.05.2013 11:28:54
Marc
Hallo Hajo,
habe Excel komplett geschlossen und neu gestartet, aber nix...
Gruß
Marc

AW: ActiveSheet.UsedRange.Rows.Count) zählt falsch
31.05.2013 11:37:27
Hajo_Zi
Hallo Marc,
prüfe mal Strg+Ende
Lösche alles vom Ende Deiner Tabelle bis +1 Zeile von Strg+Ende.
Gruß Hajo

AW: ActiveSheet.UsedRange.Rows.Count) zählt falsch
31.05.2013 11:45:06
Marc
Hallo Hajo,
das scheint der richtige Pfad zu sein. Obwohl ich Duplikate entfernt habe, springt er bei STRG+Ende auf die Zeile 894 (also knapp 900).
Wie mache ich das denn, dass er tatsächlich alles löscht? Habe das nun so gelöst:
Columns("C:G").Select
ActiveSheet.Range("$C$1:$G$" & msg2).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5), _
Header:=xlYes
Danke und Gruß
Marc

Anzeige
AW: ActiveSheet.UsedRange.Rows.Count) zählt falsch
31.05.2013 11:54:36
Hajo_Zi
Hallo Marc,
lösche das was ich geschrieben habe.
Lösche alles vom Ende Deiner Tabelle bis +1 Zeile von Strg+Ende.

Falls Du das nicht möchtest, ein anderer Weg ist mir nicht bekannt.
Gruß Hajo

AW: ActiveSheet.UsedRange.Rows.Count) zählt falsch
31.05.2013 11:59:39
Marc
Hallo Hajo,
wie finde ich denn das Ende meiner Tabelle raus also mittels Makro?
Bzw. wie lösche ich das Ganze schnell?
Lieben Gruß
Marc

AW: ActiveSheet.UsedRange.Rows.Count) zählt falsch
31.05.2013 12:17:18
Hajo_Zi
das Ende Deiner Tabelle hast Du doch schon per VBA rausgefunden, oder stimmt der erste Beitrag nicht?
Gruß Hajo

Anzeige
AW: ActiveSheet.UsedRange.Rows.Count) zählt falsch
31.05.2013 12:35:01
Marc
Ich habe es nun anders gelöst:
Sheets("Rechnung").Select
Application.ScreenUpdating = False
Range("c:c").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Application.ScreenUpdating = True
damit sucht er mir alle einträge, die in der spalte c leer sind und löscht diese.
das klappt!
Danke!

AW: ActiveSheet.UsedRange.Rows.Count) zählt falsch
31.05.2013 12:36:34
Tino
Hallo,
teste mal diesen Code um den Usedrange neu festzulegen.
Sub Test()
    UsedRange_Neu Sheets("Tabelle1") 'Tabelle anpassen 
End Sub



Sub UsedRange_Neu(mySH As Worksheet)
Dim LRow As Long, LCol As Long
Dim A As Long
 
With mySH.UsedRange
  On Error Resume Next
       'Finde Zeile 
       LRow = .Find("*", , xlValues, xlWhole, xlByRows, xlPrevious, False, False).Row
       LRow = Application.Max(LRow, .Find("*", , xlFormulas, xlWhole, xlByRows, xlPrevious).Row)
       LRow = LRow + 1
       With .Parent
           If LRow < .Rows.Count Then .Range(.Rows(LRow), .Rows(.Rows.Count)).Delete
       End With
End With
With mySH.UsedRange
       'Finde Spalte 
       For A = .Columns(.Columns.Count).Column To .Columns(1).Column Step -1
             LCol = mySH.Columns(A).Find("*", , xlValues, xlWhole, xlByRows, xlPrevious).Column
             LCol = Application.Max(LCol, mySH.Columns(A).Find("*", , xlFormulas, xlWhole, xlByRows, xlPrevious).Column)
             If LCol > 1 Then Exit For
       Next A
       LCol = LCol + 1
       With .Parent
           If LCol < .Columns.Count Then .Range(.Columns(LCol), .Columns(.Columns.Count)).Delete
       End With
End With
End Sub
Gruß Tino
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige