Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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

Code optimieren

Code optimieren
21.02.2016 11:06:06
PQuest:-)
Hallo,
ich erstelle gerade eine Kalenderübersicht für versch. europäische Standorte. Hier sollen die Kalendertage, die in einem der Länder gesetzliche Feiertage sind mit einem Kommentar hinterlegt werden. Wie das funktioniert ist soweit klar, aber:
Im Code der Datei habe ich einen Teil eingefügt, der
1. die jeweils letzte Zelle aus dem "Länderbereich" ermittelt und
2. die Range für diesen "Länderbereich" festlegt.

With wsPH
PHNlLast = .Cells(Rows.Count, ColNl).End(xlUp).Row
Set rngNl = .Range(.Cells(PHStartRow, ColNl), .Cells(PHNlLast, ColNl))
PHUkLast = .Cells(Rows.Count, ColUk).End(xlUp).Row
Set rngUk = .Range(.Cells(PHStartRow, ColUk), .Cells(PHUkLast, ColUk))
PHHunLast = .Cells(Rows.Count, ColHun).End(xlUp).Row
Set rngHun = .Range(.Cells(PHStartRow, ColHun), .Cells(PHHunLast, ColHun))
PHSzLast = .Cells(Rows.Count, ColSz).End(xlUp).Row
Set rngSz = .Range(.Cells(PHStartRow, ColSz), .Cells(PHSzLast, ColSz))
PHAusLast = .Cells(Rows.Count, ColAus).End(xlUp).Row
Set rngAus = .Range(.Cells(PHStartRow, ColAus), .Cells(PHAusLast, ColAus))
PHGerLast = .Cells(Rows.Count, ColGer).End(xlUp).Row
Set rngGer = .Range(.Cells(PHStartRow, ColGer), .Cells(PHGerLast, ColGer))
End With
Kommt jetzt noch ein Land hinzu, muss das Ganze wieder um 2 Zeilen ergänzt werden. Gleiches gilt dann später für die Überprüfung, ob es sich um einen Feiertag handelt und wenn ja, in welchem Land.
Frage:
Wie kann ich den Code so vereinfachen, dass ich die Codezeilen nicht immer neu schreiben muss?
Spontan fällt mir da das Array ein, aber damit habe ich mehr als nur ein Problem.
Kann mir jemand Hilfestellung geben?
Gruß,
PQuest:-)
Link zu Datei: https://www.herber.de/bbs/user/103747.xlsm

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code optimieren
21.02.2016 11:33:23
Raphael
Hallo Pquest,
willst du denn alle Feiertage im selben Kalender eintragen?
Und die Farbe zeigt welches Land es ist?
Was macht mann wenn ein Feiertag in mehreren Ländern vorhanden ist? z.B. 1. Januar?
Gruess
Raphael

AW: Code optimieren
21.02.2016 11:56:02
PQuest:-)
Hallo Raphael,
Zitat: Hier sollen die Kalendertage, die in einem der Länder gesetzliche Feiertage sind mit einem Kommentar hinterlegt werden.
Die Zellen, die in einem oder mehreren Ländern Feiertage sind, werden mit einem Kommentar versehen, in dem dann die Ländernamen erscheinen, in dem sie Feiertage sind.
Das ist aber nicht das zu lösende Problem.
Mir geht es erstmal um eine Vereinfachung des bisher vorhandenen Codes.
Gruß,
PQuest:-)

Anzeige
AW: Code optimieren
21.02.2016 14:36:07
PQuest:-)
Ups...vergessen das Ganze auf "nicht beantwortet" zu stellen.

AW: Code optimieren
21.02.2016 18:03:46
Raphael
PQuest,
was machst du denn mit den Ranges? Ich sehe nur das du sie "settest", aber danach kommen sie im Code nicht mehr vor. Bei der aktuellen Codelage ist die grösste Vereinfachung das weglassen der Ranges da sie nicht gebraucht werden.
Oder übersehe ich da irgendwas?
Gruess
Raphael

AW: Code optimieren
21.02.2016 18:35:20
PQuest:-)
Hallo Raphael,
ja, du übersiehst etwas, die tatsächliche Fragestellung. Die Ranges werden im späteren Verlauf genutzt, doch das ist hier nicht relevant.
Die Frage ist, ob und wie eine Wiederholung des (fast) gleichen Codes vermieden werden kann. Vor allem im Hinblick auf eine spätere Erweiterung.
Gruß,
PQuest:-)

Anzeige
AW: Code optimieren
21.02.2016 20:52:08
Raphael
Wohl kaum. Aber etwas zu optimieren von dem man nicht weiss wie es genutzt wird macht herzlich wenig Sinn.
Oder würdest du einen Bagger optimieren damit er auf der Autobahn 160 fahren kann nur um danach festzustellen dass er auf dem Berg auf dem er gebraucht wird kein Loch ausheben kann, weil man ihm die Schaufel abgenommen hat?
Aber um deine Fragestellung anhand der schwachen Infos doch zu Beantworten:
Ich die Sache mit einer verschachtelten Schleife lösen. Die Farbnummer würde bereits in der Tabelle mitgeben, so dass ich bei einer Erweiterung keine Anpassungen am Code mehr vornehmen müsste.
Gruess
Raphael

Anzeige
AW: Code optimieren
21.02.2016 23:04:51
PQuest:-)
Naja, Daniel hat scheinbar verstanden, was mit meinen schwachen Infos gemeint war. Du hingegen fängst hier schon wieder an etwas über Farben zu faseln.
Nettes Baggerbeispiel...es zeigt übrigens ziemlich deutlich, dass du nichts, aber auch wirklich nichts von meiner Frage verstanden hast.
Die Helfer hier im Forum haben meinen vollsten Respekt, dass sie ihr Wissen so freimütig weitergeben und Unwissenden wie mir helfen. Leider gibt es aber auch mal den ein oder anderen, der keine Ahnung hat und einfach nur die Klappe halten sollte.

natürlich hast du recht, und trotzdem ist...
21.02.2016 23:39:47
Raphael
Höflichkeit selten verkehrt, auch wenn man nicht verstanden wurde.

Anzeige
AW: natürlich hast du recht, und trotzdem ist...
22.02.2016 06:52:56
pquest:-)
Meine Höflickkeit endet genau an dem Punkt, an dem mir unhöflicherweise unterstellt wird, ich wäre nicht in der Lage meine Fragestellung allgemeinverständlich zu formulieren.
Und damit sollte diese Thema nun beendet sein.

AW: Code optimieren
21.02.2016 22:35:36
Daniel
Hi
ich würde da so vorgehen:
lege nicht für jedes Land eine eigene Variable an, sondern verwende ein Array (das kann auch Range-Variablen aufnehmen)
weise dann jedem Array-Index den entsprechenden Zellbereich des dazugehörigen Landes zu, der Array-Index entspricht der Spaltennummer.
sieht als Code dann so aus:
Dim rngPH() As Range
Dim sp As Long
With Sheets("PublicHolidays")
ReDim rngPH(1 To .Cells(1, .Columns.Count).End(xlToLeft).Column)
For sp = 1 To UBound(rngPH)
Set rngPH = .Range(.Cells(2, sp), .Cells(1, sp).End(xlDown))
Next
End With
im folgenden spricht du dann die einzelnen Bereiche für die Länder so an:
rngPH(colNL) anstelle von rngNL
rngPH(colGer) anstelle von rngGer
Gruß Daniel

Anzeige
AW: Code optimieren
21.02.2016 22:58:04
PQuest:-)
Hallo Daniel,
nach genau so einem Weg hatte ich gesucht.
Besten Dank dafür,
PQuest:-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige