Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Änderung im windows(book:index)activate

VBA Änderung im windows(book:index)activate
27.07.2024 16:50:42
Willi Bohr
Hallo,
Ich bin neu im Forum aber nicht unbedingt neu im Excel.
Folgende Problematik:
Ich habe ein WorkBook.xlsm "geerbt" das von der interaktion mehrere Tabellenblätter lebt und in dem viele Makros arbeiten.
Es werden aus den Macros's jeweils in verscheiden Macros maximal 6 ActiveWindow.NewWindow befehle abgesetzt.
Diese werden in den Macros immer auf folgende Art und Weise angesprochen:
Windows (Workbookname;x)Axtivate vobei x für eins der geöffneten Fenster steht.
Das funktioniert so unter office 365 nicht mehr.
Für einen Teil absolut nicht notwenig aber minimum 3 Fenster müssen bestehen bleiben. Auch werden in den einzeln Fenstern immer wieder auf integrierte Tabellen zu gegriffen, wobei es sich bei einer Tabelle um eine Daten/Steuertabelle für alle Tabellen handelt.
Ich weiss man sollte die windwos.activate und sheets.select vermeiden.
Wie komme ich nun da hin eine globale Variable zu generieren die bei bedarf in der Daten/steuer-Tabelle einen oder mehrere Werte liest und die dann entsprechend weiterverarbeitet werden.
Ich bin da so langsam am verzweifeln.
Meine Idee war ein Public-Object das als inhalt eine Zeiger auf das Daten/SteuerBlatt-des Workbooks hat :
Public pubvarDATENSTEUER as Workbook.sheets("35" oder wie auch immer)
und damit könnte ich dann folgendes realisieren.
Im Macro1:
Zeilenhöhe = pubvarDATENSTEUER).Range("A444").value
oder ähnliches
In Macro2 dann:
Leistung: = pubvarDatenSteuer.Range("D666").value

Dadurch würde ich viel Code sparen und das Ding würde endlich mal schneller laufen.

Ich hoffe, auf eure Hilfe!
Gruß
Willi
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Änderung im windows(book:index)activate
27.07.2024 16:59:29
schauan
Hallöchen,

Du kannst Dir mal aufgezeichneten Code anschauen. Bei mir klapt das so:

 Sub Makro1()

'
' Makro1 Makro
'

'
ActiveWindow.NewWindow
Application.Left = 1723
Application.Top = 220
Windows("Mappe1 - 1").Activate
Windows("Mappe1 - 2").Activate
Windows("Mappe1 - 1").Activate
End Sub


Da ist jetzt keine Erweiterung dabei, weil die Datei nicht gespeichert wurde.

Anzeige
AW: VBA Änderung im windows(book:index)activate
27.07.2024 17:14:44
Willi Bohr
Ja das habe ich auch probiert und funktioniert aber hilft mir in der Problematok nicht viel weiter da ich das activate und select für die Daten-SteuerTabelle vermeiden möchte und praktische diese Tabelle von jedem MAcro aus ansprechen können will ohne jedes mal activate und select sagen zu müssen.
AW: VBA Änderung im windows(book:index)activate
27.07.2024 17:59:04
schauan
Hallöchen,

der entsprechende Code von Dir sollte Fenster wechseln, also verschiedene "Ansichten" des Blattes bzw. der Datei. Anscheinend meintest Du mit den integrierten Tabellen, wohin Du wechseln willst, keine "intelligenten" sondern Tabellenblätter?

Du könntest die einzelnen Blätter Variablen zuweisen - oder auch Bereiche auf diesen Blättern - und dann damit arbeiten.

Im Prinzip

Set wsh_1 = Tabelle1
Set wsh_2 = Tabelle2

und dann Daten von dort holen, z.B.

Wert1= wsh_1.Range("A1")
Wert2= wsh_2.Range("B1")

oder eben direkt
Set Werttabelle1=Tabelle1.Range("A1:A10")
Set Werttabelle2=Tabelle2.Range("B1:B10")

oder Du holst die Werte in ein Array
arrWerte1=Tabelle1.Range("A1:A10")
arrWerte2=Tabelle2.Range("B1:B10")

Wenn Du Daten in ein Array holst, sollte klar sein, dass sich da bei Änderungen auf dem Blatt nichts tut. Du müsstest nach einer Änderung den Wert oder das komplette Array neu einlesen. Wenn Du das Array öfter benötigst und dazwischen könnten Änderungen erfolgt sein, könntest Du es auch vor jeder Nutzung neu einlesen.

Wie das bei den Set's ist, teste es mal aus :-)


Anzeige
AW: VBA Änderung im windows(book:index)activate
27.07.2024 17:04:20
ralf_b
ändern sich die Einträge in der Steuertabelle zwischendurch oder bleiben die konstant?
sind die Einträge dort überschaubar oder ist es eine größere Tabelle?

Sollte ich es richtig verstanden haben, agiert diese Tabelle als eine Settingsquelle. Ich hab manchmal eine Funktion verwendet, die solche Daten bei Bedarf neu in globale Variablen einliest.
Z.b. zu Beginn eines Makros wird geprüft ob eine wichtige Variable bekannt ist , wenn nicht dann die Settings neu einlesen.
Anzeige
AW: VBA Änderung im windows(book:index)activate
27.07.2024 17:17:16
Willi Bohr
es handelst sich tatsächlich wie du festgestellt hast als eine Setting tabelle deren Werte sich während einer Sitzung jedoch ändern können. Sie ist auch nicht gerade klein
AW: VBA Änderung im windows(book:index)activate
27.07.2024 18:02:32
Ulf
Hi Willi,
anbei ein Beispiel, wie meinereiner das seit ewig löst.
Sollte leicht nachvollziehbar sein.

https://www.herber.de/bbs/user/171298.xlsm

hth
Ulf
Anzeige
AW: VBA Änderung im windows(book:index)activate
28.07.2024 09:15:45
Willi Bohr
Die lösung ist genau das was ich gesucht habe, Ein Dank dir ulf und auch an schauan
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige