Hallo Reinhard
toller Vorschlag, funktioniert prima. Diese Anwendung von
Controls kannte ich nicht. Das macht den Code wesentlich
einfacher und übersichtlicher. Ich habe einige ähnliche Codes,
bei denen noch diese Massen von Textboxen Programmzeilen
füllen. Das ist nun vorbei. Danke.
Hallo Pauli,
bei Kleincode den ich hier zeige nehme ich auch die Namen die
Vba/Excel vorgibt. Aber bei Code mit z.B. mehreren Userformen
mit
einigen Elementen verpasse ich den Elementen sprechende Namen.
das mache ich auch so, alleine schon, um in dem „Explorer“ links in Bild der VBA-Seite sofort die UF zu erkennen.
Und auch sonst bei benenennung von Variablen.
Gockel mal bitte nach ungarischer Notation.
Ich halte mich natürlich nicht streng daran, aber eine
Teilmenge
davon setzte ich schon ein. Denn es macht großen Sinn.
Um Namen kurz zu halten (wegen der Schreiberei), bediene ich mich häufig mit Namen wie AI,BI,CI für Integer, AS,BS,CS für String, AR,BR,CR für Real. Damit kann ein Fremder allerdings wenig anfangen.
Du hast deine UF „Korrekturblatt“ genannt. Da ich sehr oft
schlampig
lese habe ich das .Show nicht beim ersten mal gedeutet. Ich
ging
also von textboxen auf einem Blatt aus.
Das wäre IN DIESEM FALL egal gewesen ABER in anderen Fällen
gibt
es da gravierende Unterschiede.
Also hätte ich einen Namen wie ufKorrekturblatt gewählt.
Der „spricht“ zu denen die den Namen lesen. Zu Fremden wie mir
aber auch zu dir wenn du als Fremder den Code liest.
Glaub mir, wenn du erst in 2 Monaten oder später den Code
wieder
siehst biste wie ein Fremder.
ja, das kenne ich, ich schreibe grundsätzlich über jede Routine (Sub) die Info, was diese Routine tut und auch hinter komplexen Anweisungen, wozu sie da sind.
Anderes Beispiel, eine UF hat 3 CommandButtons.
Die kriegen Namen wie cbAbbrechen, cbOK, cbSpeichern.
Die Idee kam mir eben erst, noch nicht getestet aber beim
ersten
Durchdenken sieht sie gut aus.
Benennen sie doch tbDatumKauf1, tbtbDatumKauf2, tbPreis3
Dann haste die Vorteile der Indizes um sie in einer Schleife
durchlaufen zu lassen.
Ungetestet vllt. so
For each CB in .Controls
if cb.name like „tb*“ then
cb.text=wks2.cells(zeile,right(cb.name,1)).text
end if
next cb
Wegen der Problematik wenn der Index zweistellig wird, dann
halt
solche Namen tbDatumKauf01, tbDatumKauf02, tbPreis03
und mit right zwei Zeichen auslesen, ggfs. faslls nötig mit
val
in Zahlen umwandeln.
Ich werde damit etwas rumspielen, aber ich habe viele Anwendungen, bei denen der Code mit Schleifen einfacher zu machen wäre. Danke für die Anregung.
Wegen langen Namen, Intellisense kennst du?
ja, aber welche Verbindung zu langen Namen meinst Du? Die Namen, die das System mir vorschlägt?
Gruß
Reinhard
Gruß
Pauli