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

Überlauf Fehler 6

Überlauf Fehler 6
23.03.2022 00:15:42
oraculix
Hallo Alle!
Ich habe ein Problem mit meiner Sortierung. Fehler 6 Überlauf!
Mit einem Doppelklick in Zeille1 (beliebige Spalte ) wird die Tabelle sortiert abwechselnd einmal von A-z oder Z-A.
Der VBA Code funktioniert zwar aber es kommt 4 mal eine Msgbox mit den Fehler 6 die ich mit ok bestätigen muss.
https://www.herber.de/bbs/user/151968.xlsm
In der Abgespeckten Arbeitsmappe die hier Hochgeladen habe kommt der Fehler nicht. In der Originaldatei mit ca. 2700Zeilen schon.
Frage:
Wie kann ich den Fehler 6 Überlauf abfangen oder vermeiden?
Dieses Sortier Makro erzeugt den Fehler.
Option Explicit
Dim my_sort As Boolean
'Soriert bei Doppelklick auf Zeile 1 abwechselnd A-z und Z-A

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim Bereich1 As Range
Dim LSpalte As Integer 'Habe schon erfolglos versucht Long  statt Integer zu setzten
Dim lzeile As Long
Dim SelectHeadline As Variant
LSpalte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
lzeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Set Bereich1 = Range(Cells(1, 1), Cells(1, LSpalte))
If Intersect(Target, Bereich1) Is Nothing Then
Exit Sub
Else
If my_sort Then
SelectHeadline = ActiveCell.Address(RowAbsolute:=False, columnAbsolute:=False)
Range(Cells(1, 1), Cells(lzeile, LSpalte)).Sort key1:=Range(SelectHeadline), order1:=xlAscending, Header:= _
xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
my_sort = False
Else
SelectHeadline = ActiveCell.Address(RowAbsolute:=False, columnAbsolute:=False)
Range(Cells(1, 1), Cells(lzeile, LSpalte)).Sort key1:=Range(SelectHeadline), order1:=xlDescending, Header:= _
xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
my_sort = True
End If
End If
Application.Calculation = xlCalculationAutomatic
Range("B2").Select
End Sub
Gruß
Oraculix

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Erledigt Fehler gefunden!
23.03.2022 00:40:43
oraculix
Habe den Fehler gefunden !!!
Ein anderer Code war es
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lzeile As Long ' Habe hier Long statt Integer gesetzt und dann hat es funktioniert.
Gruß
Oraculix
Es gibt aus meiner Sicht...
23.03.2022 12:51:49
{Boris}
Hi,
...in der heutigen Zeit überhaupt keinen vernünftigen Grund mehr (zumindest bei "normalen" Excel-VBA-Projekten), den Datentyp Integer zu verwenden - schon mal gar nicht bei Zeilenzählern. Das war vor 20 Jahren vielleicht nicht interessant, als Speicherplatz noch relevant war.
Dadurch ist 1996 die Ariane-5-Rakete abgestürzt, weil man schlicht die höhere Beschleunigung ggü. der Ariane 4 nicht bedacht hatte, jedoch den Programmcode der Ariane 4 übernommen hatte. Dadurch lief eine Variable über, die dann ne ganze Menge teuren Weltraumschritt verursacht hat;-)
Eine einfache Änderung von Integer in Long hätte also also ein paar Millönchen gespart ;-)
https://www.deutschlandfunk.de/der-absturz-der-ariane-100.html
VG, Boris
Anzeige
AW: Es gibt aus meiner Sicht...
23.03.2022 14:44:54
oraculix
Hallo Boris!
Danke für Deine Beschreibung. Das bedeutet also ich soll alle Integer in Long umwandeln?
Gruß
Oraculix
Das bedeutet...
23.03.2022 15:35:20
{Boris}
Hi,
...dass Du in der heutigen Zeit nicht mehr sparsam mit Speicherplatz umgehen musst. Ob Integer oder Long macht für den Rechner keinen unterschied (mehr).
Natürlich kann man auch kleiner dimensionieren - wenn Du z.B. nen Schleifenzähler von 1 bis 100 hast, dann reicht theoretisch auch der Datentyp Byte. Aber damit ich mir darüber gar keine Gedanken mehr machen muss, deklariere ich von vornherein als Long.
Es mag sicher Argumente dagegen geben - mir fallen für die Standardexcelanwendungen aber gerade keine ein ;-)
VG, Boris
Anzeige
AW: Das bedeutet...
23.03.2022 15:49:45
GerdL
Hi Boris,
den Weltraumschritt kannte ich bisher noch nicht. :-)
Für einen unkundigien Mitleser ist dein vorheriger Beitrag zum Arianefehlstart irreführend formuliert.
Gruß Gerd.
Was genau...
23.03.2022 16:16:41
{Boris}
Hi Gerd,
...war bzw. ist denn an dem Beitrag irreführend?
VG, Boris
AW: Das bedeutet...
23.03.2022 16:25:36
oraculix
Danke werde alle Integer auf Long stellen.
Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Was mach ich dem Code hier ist auch Integer drinnen auch auf Long stellen?
Gruß
Oraculix
Nein...
23.03.2022 16:35:58
{Boris}
Hi,
...in vorhandenen Ereignissen änderst Du natürlich nichts an den vorgegebenen Parametern und deren Typen!
VG, Boris
Anzeige
AW: Nein...
23.03.2022 16:40:34
oraculix
Ok Danke!
Gruß
Oraculix
Vielleicht dann, wenn ...
29.03.2022 17:42:50
lupo1
... der Zahlenraum absolut begrenzt bleibt. Ich habe aber gehört, dass der interne Compiler kleine Zahlenformate aufbläht, so dass es performancemäßig gar nichts bringt.
https://www.herber.de/bbs/user/152138.xlsx

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige