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

Definieren von Array

Definieren von Array
07.01.2020 15:05:12
Array
Hallo Liebe Excelgemeinde,
ich habe ein Problem, dass ich nicht verstehe. Ich habe für meine Tabellenblätter einen Array erzeugt:
Dim Tabellenblatt
Tabellenblatt = Array("TB1", "TB2", "TB3", "TB4", "TB5", "TB6")
Ich benutze Tabellenblatt ziemlich häufig und will es eigentlich beliebig anpassen. Wenn ich Diesen Aufruf im Modul nutze funktioniert es. Bsp:
Dim objChart As Object
For i = 0 To 5
For Each objChart In Sheets(Tabellenblatt(i)).ChartObjects
objChart.Delete
Next
Next i
Wenn ich es allerdings bei Formulare nutze dann spuckt er mir immer diese Fehlermeldung raus:
" Fehler beim Kompilieren: Außerhalb der Prozedur ungültig"
Die Hilfe schreibt ich soll es so machen:
Dim Tabellenblatt()
funktioniert leider aber auch nicht. Kann mir jemand sagen, woran es liegt?
Grüße
Karl

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Definieren von Array
07.01.2020 15:07:00
Array
Falls ihr eine Lösung habt, die Alternativ auch funktioniert bin ich offen dafür. Im Endeffekt will ich in meinem langen Code bloß nicht jedes mal den Array anpassen, wenn ich an der Tabellenanzahl etwas ändere.
AW: Definieren von Array
07.01.2020 15:11:09
Array
Hallo Karl,
zeig mal den Code bei dem es nicht funktioniert. "bei Formulare" sagt mir nichts.
Gruß
Nepumuk
AW: Definieren von Array
07.01.2020 15:29:09
Array
Achso, ich meine es läuft nicht beim Userform, sry mein Excel schreibts deutsch.
Also, ich schreibe das im Modul:
Dim Tabellenblatt
Tabellenblatt = Array("PPE", "MD", "EE", "SW", "LS-T", "AS")
For i = 0 To 5
If Sheets(Tabellenblatt(i)).Cells(1, 1) Like 1 Then
Sheets(Tabellenblatt(i)).Cells(1, 1).Clear
End If
Next i
Das Funktioniert. Wenn ich es aber im Userform gleich am Anfang schreibe, wenn ich die ganzen Parameter definiere dann meckert er die bereits genannte Fehlermeldung...
Anzeige
AW: Definieren von Array
07.01.2020 15:34:18
Array
HI
das DIM Tabellenblatt muss oberhalb der Makros stehen direkt unter Option Explicit (falls du damit arbeitest).
Dann kann die Variable in allen Makros des Moduls verwendet werden.
die Befüllung Tablelenblatt = Array(…) hingegen muss innerhalb eines Makros ausgeführt werden und zwar bevor du die Variable das erste mal lesend verwendest, dh bei einer Userform idealerweise im INITIALIZE-Event.
Gruß Daniel
AW: Definieren von Array
07.01.2020 15:38:46
Array
Ah super, Danke das funktioniert!
AW: Definieren von Array
07.01.2020 15:17:39
Array
Hallo,
meinst du so?
Public Sub bbb()
Dim ws As Worksheet, objChart As Object
For Each ws In ThisWorkbook.Worksheets
For Each objChart In ws.ChartObjects
objChart.Delete
Next objChart
Next ws
End Sub
Gruß Werner
Anzeige
AW: Definieren von Array
07.01.2020 15:30:50
Array
Hallo Werner, ich will dabei nicht alle Tabellen ansprechen sondern nur bestimmte, deshalb funktioniert das leider nicht.
AW: Definieren von Array
07.01.2020 15:36:58
Array
Hallo,
dann kannst du ja die Tabellenblätter, bei denen das nicht gemacht werden soll, in einer Select Case Anweisung aufnehmen.
Im Beispiel werden die ChartsObjekte nicht gelöscht, bei den Tabellenblättern, die in der Case Anweisung erfasst sind.
Public Sub bbb()
Dim ws As Worksheet, objChart As Object
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Blatt1", "Blatt2", "Blatt3"
'nix machen
Case Else
For Each objChart In ws.ChartObjects
objChart.Delete
Next objChart
End Select
Next ws
End Sub
Gruß Werner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige