Anzeige
Archiv - Navigation
1652to1656
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

Ordnung im Programmcode

Ordnung im Programmcode
25.10.2018 17:48:10
Bernd
Hallo Leute :-)
Habt ihr einem Anfänger Tipps, wie man einen Programmcode übersichtlich hält?
Ich fange meistens an irgendwie zu programmieren und irgendwann steht alles voller Programmierzeilen und Kommentaren, aber ab einer gewissen Größe wirds echt schwierig nochmal was zu finden...
Vielen Dank für Eure Beiträge :)

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
das ist natürlich sehr individeuell zu sehen
25.10.2018 18:02:26
Matthias
Hallo
Ich halte es so:
Kommentare stehen bei mir über der Programmzeile(wenn überhaupt notwendig)
Nach der zugehörigen Programmzeile kommt eine Leerzeile
Schleifen haben nur zu Beginn der Schleife einen Kommentar(wenn überhaupt notwendig)
dann werden in der Schleife Anfang und Ende der zusammengeörigen Codezeilen in die gleiche Spalte geschrieben. Also mit Versatz(Zeilenvorschub)
Bsp:
Option Explicit
Sub so_nicht()
Dim RnG As Range
For Each RnG In Range("A1:A100")
If RnG = "Hallo" Then
MsgBox RnG.Address
End If
Next
End Sub
Sub so_mach_ichs()
Dim RnG As Range
For Each RnG In Range("A1:A100")
If RnG = "Hallo" Then
MsgBox RnG.Address
End If
Next
End Sub
So kannst Du stets erkennen was zusammengehört.
Aber wie bereits erwähnt ist das natürlich sehr individeuell zu sehen.
Gruß Matthias
Anzeige
AW: Ordnung im Programmcode
25.10.2018 18:05:39
onur
Viele Kommentare, vielsagende aber nicht zu lange Variablen- und Sub-Namen und STRUKTRUIERT schreiben.
z.B:
dim zeile as long
Dim spalte as long
For zeile=3 to 1000' Von Zeile 3 bis Zeile 1000
If Cells(zeile,3)="Hallo" then
Cells(zeile,4)="Test"
If Cells(zeile,5)="Hallo2" Then
Cells(zeile,6)="Test2"
End If
End If
Next zeile

AW: Ordnung im Programmcode
25.10.2018 19:20:51
Sulprobil
Hallo,
Schau Dir gute Programme an :-)
Viele Grüße,
Bernd P
Zwei Beispiele
26.10.2018 01:36:31
lupo1
http://vbanet.blogspot.com/
http://sulprobil.com/
Hallo sulprobil,
ich habe das kleine Add-In ("für Testzwecke") bei Dir gesehen. Möglicherweise beherrscht Du ja Zwischenergebnis-Aufbewahrung, die während der Kalkulation einer normalen Excelformel statisch zur Verfügung stünde und zum Zeitpunkt der Formel-Fertigrechnung dann verfiele.
Dann brauchte man lange gleiche Ausdrücke in Formeln nicht mehr zu wiederholen und sie lägen schon vor.
Eine Vorlage fand man früher in Longré's morefunc.dll mit PUT() und GET(); ob sie jemals richtig funktionierte, weiß ich nicht mehr.
=WENN(VERGLEICH(A1;B1:B9)=A1;INDEX(C:C;VERGLEICH(A1;B1:B9));"kein exakter Hit")
könnte so werden zu
=WENN(_P1(VERGLEICH(A1;B1:B9))=A1;INDEX(C:C;_G1());"kein exakter Hit").
Man würde, da man dies nicht übertrieben oft (bzw. hierarchisch) benötigt, einfach mit Kurz-Fkt.namen _P1 (für "Put_Variable_1") und _G1 (für "Get_Variable_1") bis _P4/_G4 lösen können, damit kein platzraubendes zweites Argument nötig würde; 4 solcher "taschenrechnerähnlichen Register" sollten evtl. reichen.
Alternativ kann man natürlich ein optionales 2. Argument "Register" in einem noch kürzeren Funktionsnamenpaar _P()/_G() verwenden; würde nicht das 2. oder spätere Register gemeint, würde per Default der 1. Registerplatz geschrieben und ausgelesen. Sollte also das 2. Register geschrieben werden sollen, dann
=WENN(_P(VERGLEICH(A1;B1:B9);2)=A1;INDEX(C:C;_G(2));"kein exakter Hit")
bzw. der per Default 1. Platz als
=WENN(_P(VERGLEICH(A1;B1:B9))=A1;INDEX(C:C;_G());"kein exakter Hit")
Auch als Array statt nur Einzelwert wäre schick.
Der Task richtet sich natürlich auch an jeden anderen, aber ich vermute, dass sich nur wenige andere mit dem entsprechenden Speichermodell auskennen. Und natürlich C++.
Das kleine Add-In hätte dadurch sicherlich eine Sonderstellung.
Nachbemerkung: Das Beispiel hier ist natürlich Quatsch, da als Verkürzung auch
=WENN(VERGLEICH(A1;B1:B9)=A1;INDEX(C:C;A1);"kein exakter Hit")
klappt.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige