Anzeige
Archiv - Navigation
1828to1832
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

Notfall, jetzt spinnt alles?

Notfall, jetzt spinnt alles?
30.04.2021 13:53:07
Eisi
(Datei siehe unten im Anhang)
Hallo zusammen,
nach tagelangem Kampf habe ich mich gefreut, dass der Code-Teil fertiggestellt ist. Zur Funktionsüberprüfung habe ich mehrmals die Button ausprobiert und stelle leider fest, dass hier etwas nicht stimmt. Ich verstehe es nicht, ich habe extra darauf geschaut, dass ich übersichtliche Codes gestalte, die unabhängig voneinander arbeiten.
Jetzt spinnen die Button: Anfang, Ende und Angebot leeren.
Zuerst funktionieren die Button und auf einmal findet der Button "Ende" die letzte Zeile nicht mehr.
Das starte ich das Programm neu und der Button Ende geht, aber dann drücke ich den Button Angebot leeren und der löscht mir auf einmal alles in den Zeilen 3-6 und das darf überhaupt nicht sein.
Ich verstehe die Welt nicht mehr.
Warum verhalten die Codes sich so seltsam, obwohl die getrennte Aktionen auslösen?
Ich hoffe es kann jemand das Problem auflösen.
Vielen Dank.
VG Eisi :-)
https://www.herber.de/bbs/user/145879.xlsm

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Notfall, jetzt spinnt alles?
30.04.2021 14:18:35
Nepumuk
Hallo,
im Modul "BereichAngebotDruckenLeeren":

Set Bereich = ws.Range("$B$7:$I$" & Application.Max(7, iZeile))
Gruß
Nepumuk
Weiterer Fehler
30.04.2021 14:22:24
Nepumuk
Nochmal Hallo,

Dim iZeile     As Long 
Nicht As String
Gruß
Nepumuk
AW: Weiterer Fehler
30.04.2021 14:35:31
Thomas
Hallo Nepumuk,
danke für Deine Hilfe, mir ist schon ganz schlecht.
Kann ich erst am Montag testen.
Aber ist schon mal beruhigend, dass ich Hilfe bekomme.
Herzlichen Dank und wünsche ein schönes Wochenende.
GLG Eisi :-)
AW: Weiterer Fehler
30.04.2021 15:50:56
Herbert_Grom
Hallo Eisi,
außerdem gehören deine ganzen Makros in ein Standardmodul und nicht in das Classmodule "tbl_AngebotDrucken"!
@Nepumuk: Warum "as Long" anstatt Integer? Er hat doch sicher keine 32767 Zeilen!
Servus
Anzeige
AW: Weiterer Fehler
30.04.2021 16:04:05
Nepumuk
Hallo Herbert,
VB/VBA ist optimiert für Long. Und was spielen die 2 Bytes mehr für eine Rolle?
Ich benutze Integer nur da, wo es zwingend erforderlich ist.
Gruß
Nepumuk
AW: Weiterer Fehler
30.04.2021 16:28:22
Herbert_Grom
Hallo Nepumuk,
bei der heutigen Leistungsfähigkeit der Prozessoren, FSB und RAMs, spielt das sicher keine große Rolle mehr, da gebe ich dir recht. Doch wo alles auf Verarbeitungsmaximierung ausgerichtet ist, sind diese 2 zus. Bytes unnötiger Ballast, vor allem, wenn es doch mit Integer auch geht, denke ich jedenfalls. Oder gibt es einen Nachteil für Integer?
Servus
Was heißt wohl 'optimiert'? Ist dann Standard. owT
30.04.2021 18:54:29
Luc:-?
:-?
AW: Weiterer Fehler
01.05.2021 00:07:03
Daniel
Nachteil von Integer: der kleinere Zahlenraum
Vorteil: keiner (in 99,999% der Anwendwendungsfälle)
Ein 32-Bit-Prozessor kann 32 Bit gleichzeitig in einem Arbeitstakt verarbeiten.
Weniger Bits sind dann nur ungenutzte Leitungen, aber keine schnellere Verarbeitung.
Ist wie bei deinem Auto, das fährt immer gleich schnell von A nach B, egal ob ein, zwei, oder alle Plätze belegt sind. Erst wenn du mehr Menschen transportieren musst als du Plätze hast, dauerts länger weil du dann mehrmals fahren musst um alle von A nach B zu bringen.
Genauso ist es beim Rechner mit den Daten auch.
Lediglich wenn du Riesen-Arrays mit mehren Millionen Werten hast, machen sich die weniger Bytes bemerkbar.
Bei normalen Variablen verballerst du ja schon wesentlich mehr Bytes an Speicherplatz für die Benennung, da fallen die 2 Bytes mehr oder weniger nicht ins Gewicht.
Gruß Daniel
Anzeige
AW: Weiterer Fehler
01.05.2021 10:49:59
Herbert_Grom
Hallo Daniel,
ganz ehrlich, das hat mich jetzt überzeugt, denn das ist logisch nachvollziehbar. Vielen Dank. Ich werde ab sofort nur noch mit Long arbeiten. Mein Prozessor (Intel® Core ™ i9-9900 Prozessor (16 MB Cache, bis zu 5,00 GHz), 64-Bit) ist ja sogar ein 64Bit-Prozessor.
Servus
AW: Weiterer Fehler
01.05.2021 20:45:48
Daniel
Im Zweifelsfall testet man einfach.
Gruß Daniel
iZeile As Long
30.04.2021 16:06:53
Oberschlumpf
Hi Herbert,
ha! den "Fehler" mit As Integer hab ich früher bei Zeilenvariablen auch immer gemacht - bevor ich ebenso hier - darüber informiert wurde :-)
Ja, der/die Fragende hat meist nicht ü32tsd Datenzeilen, aber Excel selbst kann ja mittlerweile 1Mio oder mehr Zeilen aufnehmen.
Somit verwendet Excel als Zeilenzahl immer den Datentyp Long. Und alles, was als anderer (Zahlen)Datentyp für die Zeile verewndet wird, wird in Long konvertiert - da is egal, ob du 100.000 Zeilen oder auch nur 4 Zeilen verwendest.
Ach ja, die Spaltenzahl ist auch Long...
Ciao
Thorsten
Anzeige
AW: iZeile As Long
30.04.2021 16:15:06
Herbert_Grom
Hallo Thorsten,
vielen Dank für die Info. Wo hast du das gelesen? Steht das irgendwo bei MS?
Servus
AW: iZeile As Long
30.04.2021 16:37:27
Oberschlumpf
Hi Herbert,
nee, nix MS
Aber die Antwort zu deiner neuen Frage steht doch auch in meiner letzten Antwort:
bevor ich ebenso hier - darüber informiert wurde
Und ich fand die Erklärung damals (vor n paar Jahren) auch logisch.
Versuch mal, einer Variablen den Wert 40000 zuzuweisen (weil du auf die Zeile 40000 zugreifen willst), wenn die Variable "nur" als Integer deklariert ist ;-)
Ciao
Thorsten
AW: Weiterer Fehler
30.04.2021 17:38:22
Eisi
Hallo Herbert,
das mit den Standardmodul und Class Module verstehe ich noch nicht. Trotz Video.
Ich hatte das aus den Büchern so verstanden, das es sich hier um einen Code-(Name): tbl_AngebotDrucken handelt und ich das Blatt direkt ansprechen kann, ohne lang Worksheet zu schreiben.
Ist es also besser Worksheets("AngebotDrucken").Range bla bla zu verwenden?
Im Moment würde ich meine Module als Standardmodul verstehen, in meinem Fall direkt hinter das Sheet gelegt, weil es nur dafür da sein soll. Man könnte mit einfügen natürlich auch ein eigenes Standardmodul einfügen mdl_AngebotDrucken. Ein Klassenmodul habe ich nicht bewusst ausgewählt. Ich erkenne im Code noch nicht mal eine Stelle, die auf sowas hinweisen würde.
Wie gesagt das ist noch zu hoch für mich. Wenn ich jetzt wirklich im Class Module drin bin, was muss ich tun, um das zu berichtigen?
Vielen Dank für die Geduld.
GLG Eisi :-)
Anzeige
AW: Weiterer Fehler
30.04.2021 17:54:21
Herbert_Grom

Noch Frageb?
Servus
AW: Weiterer Fehler
30.04.2021 19:43:18
Thomas
Nö :-) Das verstehe selbst ich, die Bildsprache :-)
Vielen Dank.
VG Eisi :-)
AW: Weiterer Fehler
30.04.2021 19:44:30
Herbert_Grom
Prima!
Servus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige