Hi,
Ich fange gerade an mich in Vba einzuarbeiten...
Sehr schön. Interessantes, weitläufiges Feld, welches Du Dir da aneignen möchtest. Glückwunsch, Viel Spass und ausreichend Ausdauer!
Was kann ich da ändern, bzw. verbessern?
Ändern und verbessern kann man wohl immer etwas. Auch entwickelt wohl jeder für sich einen eigenen Stil beim Programmieren. (Ob dieser dann im Endeffekt ein "guter" oder "weniger guter" Stil sein wird, mag ich nicht beurteilen.)
Meine Meinung:
Solang Du mit Deinem Code allein bist, musst DU ihn verstehen und auch nachvollziehen können. So niemals jemand anders damit arbeiten/Anpassungen daran vornehmen muss, kann wohl auch niemand Einwände erheben. (die Funktion ist das Ziel ;-) )
Wie würde ich z.B. Deine Aufgabe lösen wollen? Mein Code sähe dabei aus wie folgt:
Sub Test()
Dim varScratch As Variant 'Zwischenlager fuer Inhalt der aktiven Zelle
Dim lngLetzteZelle_Reihe3 As Long 'VAR fuer letzte beschriebene Zelle in Reihe3 (C)
With ActiveSheet 'nachfolgender Abschnitt bezieht sich auf die aktive Tabelle
varScratch = ActiveCell.Value 'Wert/Inhalt der aktiven Zelle zwischenspeichern
lngLetzteZelle_Reihe3 = .Cells(Rows.Count, 3).End(xlUp).Row 'letzte beschriebene Zelle in Spalte"C" ermitteln
If lngLetzteZelle_Reihe3 < 19 Then 'wenn letzte Zelle oberhalb C19
lngLetzteZelle_Reihe3 = 18 'setze den Wert auf 18
End If
.Cells(lngLetzteZelle_Reihe3 + 1, 3).Value = varScratch 'Zwischenspeicherwert in die naechste freie Zelle der Spalte"C"
End With
End Sub
Siehe oben: Stil gut oder weniger gut, das zu beurteilen überlasse ich anderen. Ich für meinen Teil sehe in diesem Fall sofort, was ich da "getrieben" habe, und würde das in einem "echten" Project sicher auch nicht so detailiert kommentieren.
Was ich (und so wie ich es oft lese, auch andere) gern vermeide, sind die Methoden ".Activate" und ".Select". Sie verlängern die Laufzeit (gerade umfangreicher Makros oder Programme) doch enorm.
btw: Es wäre, wenn Du denn an vielen Meinungen zu diesem Thema interessiert bist, evtl. nicht schlecht, wenn Du einen Moderator /Admin darum bitten würdest, diesen Thread in die Gruppe "Tabellenkalkulation" zu verschieben. (Ist aber nur so eine Idee...)
Bye
malSchauen