Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Globaler Array

Forumthread: Globaler Array

Globaler Array
29.02.2008 14:22:00
Fred
Hallo,
bisher habe ich Zwischenvariablen immer irgendwo in Sheets kopiert und dann darüber wieder darauf zugegriffen. Eigentlich sollte das aber ja einfacher mit ARRAYS gehen. Dazu habe ich eine Frage:
Folgende Schleife kopiert mir bestimmte Tabellen in ein neues Sheet (ist nur ein Auszug, die Schleife funktioniert aber - zumindest gibt es keine Fehlermeldung):

Public Sub copytablesforprint()
Dim i As Integer
Dim druckbereich, drucksheets
Dim anzdb As Integer
Dim letztezeile As Integer
Dim sPrinter As String
Application.ScreenUpdating = False
'Berichte_drucken.Visible = False
' HIER WIRD FESTGELEGT, WO SICH ZU KOPIERENDE TABELLEN BEFINDEN
drucksheets = Array("GuV", "GuV", "Bilanz", "Bilanz", "KFR", "KFR") '
druckrange = Array("B10:M45", "B49:M76", "B10:M72", "B47:M60", "B10:M54", "B47:M60")
anzdb = Application.CountA(druckrange) ' Anzahl der verschiedenen Druckbereiche
' Erstelle temporäres Sheet [Sheets("tempdrucken")]
Application.DisplayAlerts = False
On Error Resume Next
Sheets("tempdrucken").Delete
Worksheets.Add
ActiveSheet.Name = "tempdrucken"
Application.DisplayAlerts = True
' Kopiere gewünschten Tabellen in temporäres Sheet
letztezeile = 0 ' Initialisierung der Variablen
Sheets("tempdrucken").Activate
nseiten = 1
For i = 1 To anzdb
If Berichte_drucken.Controls("Checkbox" & i).Value = True Then
'Sheets(drucksheets(i - 1)).Visible = xlsheetsvisible
'Sheets(drucksheets(i - 1)).Range(druckrange(i - 1)).Select
'Selection.SpecialCells(xlCellTypeVisible).Select
'Selection.Copy
Sheets(drucksheets(i - 1)).Range(druckrange(i - 1)).Copy
With ActiveSheet.Cells(letztezeile + 2, 2)
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
End With
Application.CutCopyMode = False
If i 


Auf den Array "zeilenindex" möchte ich in anderen Makros wieder zugreifen können. Ich habe diesen deshalb in einem Modul folgendermaßen definiert
Public zeilenindex As Variant
Leider kann ich aber in einem anderen Makro nicht darauf zugreifen. Was mache ich falsch? Definiere ich den Array falsch, oder "fülle" ich ihn falsch? Für Hilfe wäre ich dankbar!!
Gruß
Fred

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Globaler Array
29.02.2008 14:51:02
Renee
Hi Fred,
zumindest gibt es keine Fehlermeldung
klar, nimm diese Zeile raus: On Error Resume Next
Schreib als allererste Zeile in jedem Modul: Option Explicit
... und du wirst dich wundern...
Dein Array wird z.B. nirgends dimensioniert! Dein Code läuft durch, aber x-Befehle nicht!
GreetZ Renée

Anzeige
AW: Globaler Array
29.02.2008 15:05:46
Fred
Hallo Renée,
vielen Dank für die schnelle Antwort. Das kannte ich alles noch nicht! Hilft enorm weiter!
Meine On Error Resume Next Zeile habe ich, um keine Fehlermeldung zu erhalten, falls es das Sheet nicht gibt. Wie schalte ich die Fehlermeldungen danach wieder ein? Geht das mit On Error GoTo 0?
Ich habe den Array mit Redim zeileindex(1 to anzdb, 1 to 1) jetzt dimensioniert. Kann ich dem Array jetzt auch standardmäßig den Wert 0 zuweisen, so dass in jeder Zelle vom Array 0 steht?
Vielen Dank für Deine Hilfe.
Gruß
Fred

Anzeige
AW: Globaler Array
29.02.2008 15:17:56
Renee
Hi Fred,
Wenn du mit Sicherheit weisst, dass eine Codezeile einen Fehler verursachen könnte, denn du mit Sicherheit im folgenden Code ignorieren kannst, dann so:

Dein sauberer, fehlerfreier Code
On Error Resume Next
DeineCodeZeileDieEinenFehlerVerursachenKönnte
On Error Goto 0
Dein sauberer restlicher Code


GreetZ Renée
GreetZ Renée

Anzeige
AW: Globaler Array
29.02.2008 15:42:44
Fred
Hi Renée,
vielen Dank für Deine Hilfe!
Gruß
Fred
;

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