Was bedeutet der Code zu Deutsch und im einzelnen

Hallo,

For i = 13 To 163 Step 5
i wird in 5er Schritten von 13 bis 163 hochgezaehlt (13,18,23…)

;if qsum(Sheets(1).Cells(i, 6).Value + Sheets(1).Cells(i + 2, 6).Value) = Sheets(1). _
; Cells(8, 8).Value Then
; Sheets(1).Cells(i, 8).Value = Sheets(1).Cells(11, 2).Value … mehr auf

Sheets(1).Cells(i, 6).Value + Sheets(1).Cells(i + 2, 6).Value
die beiden Zellen werden addiert, Zeilenidex abhengig von i
Aus der Summer wird die Quersumme gebildet (qsum)
Diese wird mit der Zelle Sheets(1).Cells(8, 8).Value verglichen

Ist der Vergelich WAHR wird eine Zuweisung gemacht:
Sheets(1).Cells(i, 8).Value = Sheets(1).Cells(11, 2).Value

Tschau
Peter

Da habe ich starke Zweifel

Hallo,

Hallo Peter,

For i = 13 To 163 Step 5
i wird in 5er Schritten von 13 bis 163 hochgezaehlt
(13,18,23…)

Stimmt so weit

;if qsum(Sheets(1).Cells(i, 6).Value + Sheets(1).Cells(i + 2,
6).Value) = Sheets(1). _
; Cells(8, 8).Value Then
; Sheets(1).Cells(i, 8).Value = Sheets(1).Cells(11, 2).Value
… mehr auf

Sheets(1).Cells(i, 6).Value + Sheets(1).Cells(i + 2, 6).Value
die beiden Zellen werden addiert, Zeilenidex abhengig von i
Aus der Summer wird die Quersumme gebildet (qsum)

woher hast du diese Info?
qsum gibt es in Excel nicht als Funktion. Es könnte also alles mögliche sein. Klingt zwar nach Quersumme, aber wer weiss …

Diese wird mit der Zelle Sheets(1).Cells(8, 8).Value
verglichen

Ist der Vergelich WAHR wird eine Zuweisung gemacht:
Sheets(1).Cells(i, 8).Value = Sheets(1).Cells(11, 2).Value

Das sind Mutmaßungen. Hallo blondie,

da fehlt irgendwie der Code für qsumme in deinem Posting.
Gruß, Andreas

Tschau
Peter

Hallo Andreas,

könnte das dieser sein?

Public Function qsum(ByRef x As Long) As Long
Dim i As Integer
For i = 1 To Len(x)
qsum = qsum + Val(Mid(CStr(x), i, 1))
Next i
End Function

Gruss Frank

Dim i As Long > Der Variablen i wird per Dim Anweisung die
Eigenschaft
„long“ (lange Ganzzahl) zugewiesen

Wenn ich das in meinem VBA Buch richtig verstanden habe sieht das so aus:
Variable i bezieht sich auf Zelle F13-F163, Wenn in diesen Zellen aber nur Werte von max. 370 drin strhen,dann ist die Eigenschaft „long“ doch eigentlich zu gross und ich könnte doch besser „integer“ nehmen(Speicherplatz)

If qsum(Sheets(1).Cells(i, 6).Value + Sheets(1).Cells(i + 2,
6).Value) = Sheets(1). _
Cells(8, 8).Value Then
Sheets(1).Cells(i, 8).Value = Sheets(1).Cells(11, 2).Value

Da bisher nur die Funktion „Nix machen“,QS-Solo,Durch-Solo und Prim-Solo klappen,dürften eigentlich nur jede Zelle(F13-F163) jede für sich auf die Quersumme überprüft werden.

Ich glaube,ich schmeisse das ganze Projekt auf den Müll.Das werde ich nie verstehen und schon gar nicht durchblicken.

LG Frank

Musst Du nicht
Moin, Andreas,

Aus der Summer wird die Quersumme gebildet (qsum)

woher hast du diese Info?
qsum gibt es in Excel nicht als Funktion.

qsum ist eine benutzerdefinierte Funktion, abgelegt im VBA-COde zum Tabellenblatt.

Gruß Ralf

Hallo allerseits,

Hallo Frank,

Ich habe folgenden Code in meiner Tabelle,den ich jetzt gern
mal aufgebröselt und ins deutsche übersetzt hätte,um zu
verstehen,was da genau passiert.

ich habe mal versucht den Code, den d hier gepostet hast mit der Tabelle abzugleichen, die du hochgeladen hast.
Irgendwie macht das für mich keinen rechten Sinn. hast du eventuell beim „Abspecken“ irgendwelche Spalten gelöscht?
Hier mal meine Interpretation:

Public Sub step4()
Dim i As Long
For i = 13 To 163 Step 5

Es wird im Blatt „Tabbi“ immer der erste in so einem Viererpack von Teilnehmern betrachtet.

If qsum(Sheets(1).Cells(i, 6).Value + Sheets(1).Cells(i + 2,
6).Value) = Sheets(1). _
Cells(8, 8).Value Then

Hier werden die Punkte (aus Spalte F) des ersten und dritten Teilnehmers des Viererpacks addiert, von der Summe wird die Quersumme gebildet und es wird getestet, ob diese gleich der Zelle H8 ist. (In deiner Tabelle ist H8 aber leer. Deswegen meine Frage, ob du Spalten gelöscht hast)

Sheets(1).Cells(i, 8).Value = Sheets(1).Cells(11, 2).Value

Wenn die Quersumme = H8 ist, wird in die „Bonus Pchen“ für den ersten Teilnehmer des Viererpacks der Wert eingetragen, der in Zelle B11 steht (die ist aber auch leer. Sollte das evtl. Cells(2,11) heißen? Das wäre K2 und würde Sinn machen).

End If
If qsum(Sheets(1).Cells(i + 1, 6).Value + Sheets(1).Cells(i +
3, 6).Value) = Sheets(1). _
Cells(8, 8).Value Then

Hier werden die Punkte (aus Spalte F) des zweiten und vierten Teilnehmers des Viererpacks addiert, von der Summe wird die Quersumme gebildet und es wird getestet, ob diese gleich der Zelle H8 ist.

Sheets(1).Cells(i + 2, 8).Value = Sheets(1).Cells(2, 11).Value

Wenn die Quersumme = H8 ist, wird in die „Bonus Pchen“ für den dritten Teilnehmer des Viererpacks der Wert eingetragen, der in Zelle B11 steht (die ist aber auch leer. Sollte das evtl. Cells(2,11) heißen? Das wäre K2 und würde Sinn machen).

End If
Next i

So wird das für alle Viererpacks von Teilnehmern wiederholt.

End Sub

Was der Sinn dieser Berechnungen ist … keine Ahnung. Das weißt du aber vermutlich selber.

Lg Frank

Gruß, Andreas

Hallo Andreas,

ich habe mal versucht den Code, den d hier gepostet hast mit
der Tabelle abzugleichen, die du hochgeladen hast.
Irgendwie macht das für mich keinen rechten Sinn. hast du
eventuell beim „Abspecken“ irgendwelche Spalten gelöscht?

ja wegen der Grössenbeschränkung in einem anderen Forum musste ich die Tabbi abspecken.
Hier ist sie nochmal komplett: http://www.file-upload.net/download-7306145/Meine-Kn…

Hier mal meine Interpretation:

Public Sub step4()
Dim i As Long
For i = 13 To 163 Step 5
Es wird im Blatt „Tabbi“ immer der erste in so einem
Viererpack von Teilnehmern betrachtet.

Okay,das habe ich verstanden

If qsum(Sheets(1).Cells(i, 6).Value + Sheets(1).Cells(i + 2,
6).Value) = Sheets(1). _
Cells(8, 8).Value Then
Hier werden die Punkte (aus Spalte F) des ersten und dritten
Teilnehmers des Viererpacks addiert, von der Summe wird die
Quersumme gebildet und es wird getestet, ob diese gleich der
Zelle H8 ist. (In deiner Tabelle ist H8 aber leer. Deswegen
meine Frage, ob du Spalten gelöscht hast)

Dann haben hier schon einen Fehler entdeckt,da die gewünschte QS in G8 stehen würde,wenn gewünscht.

Sheets(1).Cells(i, 8).Value = Sheets(1).Cells(11, 2).Value
Wenn die Quersumme = H8 ist, wird in die „Bonus Pchen“ für den
ersten Teilnehmer des Viererpacks der Wert eingetragen, der in
Zelle B11 steht (die ist aber auch leer. Sollte das evtl.
Cells(2,11) heißen? Das wäre K2 und würde Sinn machen).

Richtig,der Wert,der in K2 angegeben ist,wird dann für das erste Pchen in H13 eingetragen.Entsprechendes soll natürlich für alle anderen gelten.

End If
If qsum(Sheets(1).Cells(i + 1, 6).Value + Sheets(1).Cells(i +
3, 6).Value) = Sheets(1). _
Cells(8, 8).Value Then
Hier werden die Punkte (aus Spalte F) des zweiten und vierten
Teilnehmers des Viererpacks addiert, von der Summe wird die
Quersumme gebildet und es wird getestet, ob diese gleich der
Zelle H8 ist.

Sheets(1).Cells(i + 2, 8).Value = Sheets(1).Cells(2, 11).Value

Wenn die Quersumme = H8 ist, wird in die „Bonus Pchen“ für den
dritten Teilnehmer des Viererpacks der Wert eingetragen, der
in Zelle B11 steht (die ist aber auch leer. Sollte das evtl.
Cells(2,11) heißen? Das wäre K2 und würde Sinn machen).

End If
Next i

Auch hier wieder dasselbe Prozedere,nur das der Wert aus K2 nun in H15 eingetragen wird

So wird das für alle Viererpacks von Teilnehmern wiederholt.
End Sub

Was der Sinn dieser Berechnungen ist … keine Ahnung. Das
weißt du aber vermutlich selber.

Das ist eine Kniffel Tabbelle,wo ich über das Dropdown-Feld eine Funtion auswähle,den entsprechenden Wert in das rote oder blaue Feld eintrage und natürlich den Bonus in das orangene Feld eingebe. Excel soll daraufhin prüfen ob ja oder nein und dann die Werte automatisch eintragen. Reine Faulheit,wenn 124 Spieler mitspielen :wink:

Lg Frank

So,nachdem ich die beiden Fehler behoben habe und den Code mal gestartet habe,funzt er auch. Dennoch bin ich verwirrt.

Drambeldier schreibt in seiner Antwort:

qsum ist eine benutzerdefinierte Funktion, abgelegt im VBA-Code zum Tabellenblatt.

Davon ausgehend,dass das der Code für die benutzerdefinierte Funktion ist:
Public Function qsum(ByRef x As Long) As Long
Dim I As Integer
For I = 1 To Len(x)
qsum = qsum + Val(Mid(CStr(x), I, 1))
Next I
End Function

steige ich nicht mehr durch.Dieser Code wurde erst nachträglich hinzugefügt,was heissen soll,die Funktion für QS-Solo klappte aber auch schon ohne diesen Code bzw. habe ich das gerademal getestet und den Code auskommentiert.

Oder bedeutet dass,das für jede Funktion ich eine Code für die Quersumme schreiben muss?

Denn dieser hier scheint mir doch der Code für QS-Solo zu sein,was heisst,jede Zelle aus Spalte F wird für sich alleine auf QS geprüft.

Case „QS-Solo“
intVergleich = Tabelle1.Cells(8, Zelle.Column + 1).Value
For intI = 1 To Len(Zelle.Value)
Wert = Wert + CInt(Mid(Zelle.Value, intI, 1))
Next
Alle = IIf(Wert = intVergleich, True, False)

LG Frank

Hallo Frank,

also ich hab jetzt deinen Code nicht komplett analysiert. Erstens habe ich keine Ahnung von Kniffel, und zweitens ist mit das zu viel Arbeit.
Nur so viel:
Die Sub Step4(), die du analyiert haben wolltest, wird nirgends aufgerufen. Zumindest habe ich nichts gefunden.
Die Funktion qsum wird nur von der Sub Step4() aufgerufen. Da die aber nicht benutzt wird, wird auch qsum nicht gebraucht.

Deine Fragen machen auf mich den Eindruck, als hättest du den ganzen Code nicht selber geschrieben. Kannst du nicht einfach mal den fragen, der das ganze gebaut hat? Es ist immer sauschwierig, sich in fremde Codes reinzulesen, zumal, wenn sie völlig unkommentiert sind.

Gruß, Andreas

Hallo Andreas,

das die tabbi zum Kniffeln gebraucht wird ist nicht so wichtig.

und das Prinzip zu verstehen,ist auch nicht schwer.

Die Zahlen aus Spalte F sollen einmal jede für sich selber,dann zu zweit und alle zusammen geprüft werden auf Quersumme,Primzahl und teilbar durch. Die gewünschte Funktion wird aus dem Dropdown Feld gewählt. in das rote Kästchen die gewünschte QS auf die die Zahlen geprüft werden sollen,im roten der Teiler und im orangenen der Bonus,der in die entsprechenden Zellen gesetzt wird. Das ist eigentlich schon alles.

Ja da hast du recht.Diesen ganzen Code habe nicht geschrieben(ich habe absolut keinen Plan von VBA) sondern Reinhard war vor über einem Jahr so nett,dies für mich zu tun.

LG Frank

Hallo Frank,

ich verstehe jetzt nicht mehr so recht, was dein Problem ist. Deine Ursprungsfrage (was macht Sub Step4()) habe wir geklärt.
Was willst du denn noch wissen?
ich hab mir fast gedacht, dass der Code von Reinhard ist. Sub tt() ist seine Handschrift. Bevor ich jetzt hier im Nebel rumstochere und versuche, den Code auseinander zu pflücken, frag doch einfach Reinhard per Mail.
Aber ich denke, wenn du wirklich verstehen willst, wie das alles funktioniert, wirst du nicht drumrum kommen, dich mal mit VBA zu befassen. Was hilft es dir, wenn wir dir Zeile für Zeile irgendwelchen Code erklären, von dem du eigentlich keine Ahnung hast?

Gruß, Andreas

Hallo Andreas,

das habe ich mir auch schon überlegt. Und wenn du schon gewissermassen im Nebel rumstocherst,wie soll es mir da gehen. Deshalb habe ich mir nak mein Buch "VBA mit Excel 200 vom Addison Verlag geschnappt und versuche mal ansatzweise dahinter zu steigen was genau im Code passiert.

Aber für mich ist der Code einfach zu unstrukturiert.

Wenn ich ganz ehrlich bin habe ich gedacht besser gesagt gehofft dass ihr Experten mir den restlichen Code für die Pchen und die Tisch- Funktion schreibt.
Aber ich habe das Gefühl,dass ihr nicht sehr gerne in schon vorhandene Codes weiter schreibt.
Deshalb werde ich Reinhard mal per Mail anschreiben und ihn fragen.

LG Frank

Hallo Andreas,

Deshalb habe ich mir nak mein Buch "VBA mit Excel 200 vom
Addison Verlag geschnappt und versuche mal ansatzweise
dahinter zu steigen was genau im Code passiert.

Guter Ansatz!

Aber für mich ist der Code einfach zu unstrukturiert.

Nein, unstrukturiert ist er, denke ich, nicht. Dazu ist Reihard zu gut. Es Fehlen aber Kommentare.

Wenn ich ganz ehrlich bin habe ich gedacht besser gesagt
gehofft dass ihr Experten mir den restlichen Code für die
Pchen und die Tisch- Funktion schreibt.

Dazu brauchen wir aber viel mehr Hintergrundinfos. Um was geht es überhaupt? Was soll der Code machen?

Aber ich habe das Gefühl,dass ihr nicht sehr gerne in schon
vorhandene Codes weiter schreibt.

Doch, schon. Aber ich weiß ja garnicht, was du konkret willst.

Deshalb werde ich Reinhard mal per Mail anschreiben und ihn
fragen.

Wird am schnellsten gehen.

LG Frank

Gruß, Andreas

Guten Morgen Andreas,

ich versuche nun mal zu erläutern,was der Code machen soll.

Über das Dropdown-Feld wähle ich die gewünschte Funktion aus.
Jenachdem was ich dort gewählt habe,soll Excel nun jede Zelle aus Spalte F prüfen ob die Bedingung wahr ist. Wenn dem so ist,soll Excel dann den Wert aus K2 in die entsprechenden Zellen schreiben.

Beim Solo wird jede Zelle für sich alleine geprüft,beim Pchen die Zellen F13+F15 addiert,F14+F16 adiiert usw. und beim Tisch F13-F16. Diese Vorgehensweise bleibt immer gleich,egal ob nun die Funktion QS,Prim oder Teilen durch ausgewählt wird. Und das wiederum gilt für alle 15 Runden.

Wird die Funktion „Nix machen“ ausgewählt,darf gar nichts passieren,weil ich dann manuelle Einträge vornehme. Da der Code für „Nix machen“,QS-Solo,Durch-Solo und Prim-Solo schon vorhanden ist fehlen in Anführungsstrichen nur noch die anderen 6 Funktionen.

Im grünen Kästchen(G2) wird immer der aktuelle Viererblock addiert.Was vielleicht noch wichtig für die Programmierung zu erwähnen wäre,ist das beim Tisch nicht alle 4 Spieler benötigt werden,sonder dass es auch nur 3 sein können und eins von den 4 Zellen (E13-E16) beliebig leer bleiben kann.

Ich hoffe,ich konnte dir nun einigermassen genügend Hintergrundinfos geben.

Jetzt noch ne Anmerkung: Ich habe mir schon gedacht,dass der Code,so wie er hier vorhanden ist,für Euch sehr wohl strukturiert ist,nur habe ich mir gedacht,jede Funktion würde in ein eigenes Modul oder zumindest die gleichen Funktionen(alle QS-Funktionen in ein Modul,alle Prim-Funktionen in ein Modul und alle Durch-Funktionen in ein Modul). Das wäre für mich als Laie „strukturiert“,ich wüsste wo was steht und was der Code machen soll.Ob ich dann letztendlich verstehe,was da vor sich geht ist wieder ne andere Sache.
Das Buch,das Forum hier und solch idiotensichere Erklärungen wie die von Holger(ECHO ON),haben mir schon einiges gebracht(was das verstehen anbelangt),weshalb ich mich auch mal an dieser Stelle für Eure Bemühungen und Geduld mit mir bedanken möchte.

LG Frank

Grüezi Frank

Bevor Du mit einem grösseren Projekt einsteigst oder spätestens dann, macht es Sinn, dich mit den Grundlagen der VBA-Programmierung im Allgemeinen und derjenigen in Excel im Speziellen auseinander zu setzen.

Ein immer noch gutes Grundlagen-Wissen vermittelt die folgende PDF-Broschüre der Fernuni Hagen:

http://www.fernuni-hagen.de/imperia/md/content/zmi_2…

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -
1 Like

Guten Morgen Thomas und ne lieben Gruss in die Schweiz,

da gebe ich dir vollkommen recht,dass eine Einarbeitung in VBA unbedingt von Nöten ist.Ich bin ja auch dabei,nur leider ist das eine so trockene Materie. Und alleine hier zu sitzen und zu büffeln,ist ja sowas von öde :wink:

Für mich wäre es allerdings besser,wenn z.B. wie in meinem Fall(Tabbi)die Codes für die Quersummen(Solo,Pchen und Tisch)in einem Modul stehen würden,die Primcodes in einem anderen Modul und die Teilbar durch in einem dritten Modul.So könnte ich sehen,wo genau die Unterschiede sind und würde begleitend mit meiner Lektüre besser lernen bzw. es verstehen.

Natürlich verstehe ich dass,das auch ICH es auf die Art und Weise lernen muss,wie ihr Experten es alle schon vor mir erlernt habt.

Wenn ich aber schon bei so einer kleinen Erklärung bzw. Beispiel,wie in Abb. 19 in der von dir erwähnten Broschüre auf nen Fehler stosse >Debug.Print AvtiveCell.Value>Enter>Laufzeitfehler 424 „Objekt erforderlich“,dann frag ich mich,ob ich das je lerne.

LG Frank

Grüezi FRank

da gebe ich dir vollkommen recht,dass eine Einarbeitung in VBA
unbedingt von Nöten ist.Ich bin ja auch dabei,nur leider ist
das eine so trockene Materie. Und alleine hier zu sitzen und
zu büffeln,ist ja sowas von öde :wink:

Ja, dafür gibt es jede Menge guter Foren die Fragen zu allen Leveln enthalten. Da mitlesen und die geposteten Lösungen nachvollziehen und verstehen bringt meiner Ansicht nach den grössten Nutzen und Fortschritt.

Für mich wäre es allerdings besser,wenn z.B. wie in meinem
Fall(Tabbi)die Codes für die Quersummen(Solo,Pchen und
Tisch)in einem Modul stehen würden,die Primcodes in einem
anderen Modul und die Teilbar durch in einem dritten Modul.So
könnte ich sehen,wo genau die Unterschiede sind und würde
begleitend mit meiner Lektüre besser lernen bzw. es verstehen.

Ja, dann erstlle für dich diese Struktur und lege deine Codes dort so ab, das ist individuell und jedem frei überlassen.
Wichtig ist, dass Du dich damit zurecht findest.

Wenn ich aber schon bei so einer kleinen Erklärung bzw.
Beispiel,wie in Abb. 19 in der von dir erwähnten Broschüre auf
nen Fehler stosse >Debug.Print
AvtiveCell.Value>Enter>Laufzeitfehler 424 „Objekt
erforderlich“,dann frag ich mich,ob ich das je lerne.

…Du bist beim Durcharbeiten sooo schnelle schon an dieser Stelle - Respekt mein Herr Vereinsverwalter, Respekt… :wink:

Nimm dir etwas mehr Zeit und unabhängig von deinem momentanen Projekt.

Die Befehle in der Abbildung können nicht im normalen VBA-Editor verwendet werden sondern eben nur im dort beschriebenen Direkt-Fenster. Dort und nur dort passen diese Befehle.

Lass die Sache reifen, das kommt schon richtig.

Viel Spass und Erfolg dabei

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hey Thomas,

24 Seiten in 2 Stunden empfinde ich nicht als schnell. Und die ersten paar Seiten sind ja in jedem Buch identisch.

Ich habe alles genauso gemacht wie in Abb.19,also es in das Direktfenster eingegeben und bis auf besagte letzte Zeile hat auch alles funktioniert. Wo liegt denn nun der Fehler? Bei mir oder fehlt was in der Zeile?

Um eine eigene Struktur zu erstellen,müsste ich erstmal alle Codes haben und dann müsste ich nochmal im Buch nachlesen, welcher Code in die Tabbi und welcher in die Codes gehören. Es wird ja sicherlich einen Grund geben,warum es mehrere Möglichkeiten gibt.

Ich sage jetzt zwar mal ganz artig Danke,aber Spass,VBA auf diese Art und Weise zu lernen,wird es bestimmt nicht machen bzw. noch nicht :wink:

LG Frank

P.S. Sollte ich in diesem Leben mal so gut sein wie du es bist Thomas,werde ich ein Buch schreiben mit dem Titel…VBA für Excel lernen…speziell für Pflegefälle wie ich einer bin :smiley: :wink:

Grüezi Frank

24 Seiten in 2 Stunden empfinde ich nicht als schnell. Und die
ersten paar Seiten sind ja in jedem Buch identisch.

Is ja schon in Ordnung, lass dich nicht kirre machen :smile:

Ich habe alles genauso gemacht wie in Abb.19,also es in das
Direktfenster eingegeben und bis auf besagte letzte Zeile hat
auch alles funktioniert. Wo liegt denn nun der Fehler? Bei mir
oder fehlt was in der Zeile?

Ich würde mal einen einfachen Schreibfehler in der Zeile vermuten, dann nämlich erhalte ich auch diese Meldung.

Um eine eigene Struktur zu erstellen,müsste ich erstmal alle
Codes haben und dann müsste ich nochmal im Buch nachlesen,
welcher Code in die Tabbi und welcher in die Codes gehören. Es
wird ja sicherlich einen Grund geben,warum es mehrere
Möglichkeiten gibt.

Grundsätzlich gehören in die einzelnen Tabellenblätter nur die Ereignis-Codes für das betreffende Tabellenblatt (da gibt es nur einige die klar vorgegeben sind), in ‚Diese Arbeitsmappe‘ die Ereignis-Codes für die Mappe als Ganzes und alle anderen Codes sollten in einem allgemeinen Modul gespeichert werden.

Doch es gibt keine Regeln ohne Ausnahme - und ‚Faulheit‘ kann auch ein Grund sein, ‚allgemeinen Code‘ in einem Tabellenblatt zu speichern.
Er ist dann halt nur dort verwendbar und nicht in der ganzen Mappe.

Dei Datei liefert erstmal die Grundlagen in allgemeiner Form - spezifischer wird es dann in Fach- und Sachbüchern, die sich speziell mit der VBA-Programmierung von Excel auseinander setzten.

Keine Bange, wie bei jedem Lernprozess kommt auch hier irgendwann der Druchbruch.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Mal sehen ob ich das richtig verstanden habe.

Eine _ Variable _,für die kein expliziter Datentyp per Deklaration angegeben wurde besitzt demnach den Datentyp „Variant“,der sehr viel Speicher belegt(Ich gehe davon aus,dass hier die Gesamtgröße der Datei gemeint ist.

Nehmen wir jetzt mal ein Beispiel aus meiner Tabbi:

Dim Spa As Long, N As Integer. Hier wurde nun die Spalte mit dem Datentyp „Long“ belegt,der einen Speicherbedarf von 4 Bytes und einem Wert von
-2.147.483.648 bis 2.147.483.647 beinhaltet.

Wenn aber in meinen Spalten bzw. Zellen nur Werte von max. 10000 vorkommen,ist doch der Datentyp „Long“ nicht sehr nützlich und ich könnte stattdessen besser den Datentyp „Integer“ nehmen.

Mir ist natürlich klar,dass es bei der Größe meiner Datei keinen entscheidenden Unterschied macht,aber mir geht es ja auch nur ums Prinzip.Schliesslich steht im Buch,man solle direkt von Beginn an auf sowas achten.

LG Frank

P.S. Ich hoffe,ich nerve niemanden hier mit meiner Fragerei