Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

VBA Code ist zu statisch
#11
@ Sulprobil: Kennste den? Spielst Du schon Golf, oder hast Du noch sechs* ...?

* Vom Forums-Ediitor in die jugendfreie Schreibweise geändert. Interessant...
Antworten Top
#12
Okay, okay zur Ehrenrettung der Golfer: Zumindest Tiger Woods ist zweifacher Vater ...
Antworten Top
#13
Ich bin noch nicht dazu gekommen mir eure Antworten im Detail durchzulesen. 

Aber ich nutze fast alle harten Zellbezüge nur ein Mal.
Heißt selbst wenn ich sie als Variable definiere müsste ich immer noch jede Variable manuell anpassen. Das bringt für meinen Anwendungsfall kaum einen Vorteil - außer dass sie alle zusammen stehen und nicht im Code verteilt sind.
Antworten Top
#14
(11.05.2022, 16:38)NobX schrieb: Hallo Marie,

was Du schreibst, ist mir am Anfang auch passiert. Ich habe dann wann immer möglich diese Bereiche oder auch einzelne Zellen mit Namen versehen und mit diesen Namen im Code gearbeitet. Vorteil: wenn es zu solchen Verschiebungen kommt, wie Du es beschrieben hast, muss der Code nicht angepasst werden, da die Namen "mitwandern".

Z. B. Dein X15 gibst Du einen aussagekräftigen Namen wie etwa Summe_Neu oder ..... irgendetwas anderes (im Namensmanager von Excel)
Im Code dimensionierst Du eine Variable z. B. Dim i As Long oder ....... was Du brauchst (Range, Integer etc.)
i = Tabelle1.Range("Summe_Neu").Row
oder wie ähnlich im Beitrag von Ralf A beschrieben in anderen Konstellationen bei Bereichen als Range

Grüße

Norbert.


Das mit den Namen klingt bisher am einfachsten umzusetzen (für mich).
Das werde ich beim nächsten Projekt angehen.
Antworten Top
#15
Moin Marie!
Zitat:"... müsste ich immer noch jede Variable manuell anpassen ..."
Das konnte ich in meinem Mehrsprachen-Projekt damit vereinfachen, indem ich meine Variablen nicht (wie oft und meist durchaus richtig empfohlen) sprechend benannt habe, sondern einfach nach Typ und dann durchnumeriert. Das lässt sich mit einer simplen Mehrfach-Deklaration (mag der falsche Fachbegriff sein, aber ich erklär's ja gleich Wink) realisieren. Mit

Code:
Dim str_(10) as String

deklarierst Du elf (weil der Zähler 0-basiert) String-Variablen, die Du im Code mit str_(irgendein_Zeilen-Zähler) = aus einer Tabelle füllen kannst. Um dabei den Überblick nicht zu verlieren, habe ich mir die Tabelle mit den Entsprechungen zur Seite gelegt. Du sparst so endlose Deklarations-Orgien. Funktioniert sowohl innerhalb Moduln, Userforms, Tabellen als auch Private, Public und Global.


Wenn Du Deine Projekte vorab strukturiert planst, und sie nicht einfach so wachsen, kommst Du damit Deinem Ziel dynamischer Code erkennbar näher. 

Nur so als Anregung: Selbst das Anlegen und Formatieren von komplexen Tabellen oder die Gestaltung von Userforms lässt sich dynamisch realisieren. Ich erspare mir damit oft  z.B. die regelmäßig notwendige Formatierung von Textboxen und Labels in Userforms, oder die Anpassung an unterschiedliche Bilschirm-Auflösungen ohne gleich eigene Klassen programieren zu müssen (kann ich  eh nicht...)

Viel Spaß noch!

d`r Bastler von den VBAsteleien.de
Win 10 & 11, Office 2019 & 2021 & macOS X.15, XL 2019
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste