Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
480to484
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
480to484
480to484
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Probleme mit Array

Probleme mit Array
08.09.2004 19:14:45
Torsten
Hallo beisammen,
ich möchte in meinen Kostendateien in verschiedenen Worksheets einen Text mit Formatierung hinzufügen. Aus einem anderen Code habe ich die Zeile mit dem Array gefunden und nunmehr auf meine Belange angepaßt.(Hinweis: im WS "FILES" sind die Dateien aufgelistet, die mit dem Code angepaßt werden sollen).

Private Sub CommandButton1_Click()
If MsgBox("Soll der Text jetzt in die Kostendateien eingefügt werden?", vbYesNo) = vbYes Then
Dim i As Integer
Dim i2 As Integer
Dim ws As Integer
Dim Arr As Integer
Dim irow As Integer
Dim wbName As String
On Error GoTo errHandler
Application.ScreenUpdating = False
Application.StatusBar = "Dieser Vorgang dauert ein paar Minuten. Bitte Geduld haben..."
Application.DisplayAlerts = False
Application.EnableEvents = False
For i = 1 To Sheets("FILES").Range("A1").End(xlDown).Row
wbName = Sheets("FILES").Cells(i, 1)
Workbooks.Open wbName, 3
Arr = Array("ET120", "ET140", "ET150", "ET210", "ET220", "ET600", "ETMISC")
For i2 = LBound(Arr, 1) To UBound(Arr, 1)
Sheets(Arr(i2)).Unprotect password:="maze"
Next i2
For Each ws In Arr
Worksheets(ws).Activate
With Range("B2")
.FormulaR1C1 = "'C = Realisierung nicht vor dem 01.10.2005!"
.Font.ColorIndex = 3
.Font.Bold = True
.Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
End With
(...usw...)
End Sub

Leider bleibt Excel an der Stelle
For i2 = LBound(Arr, 1) To UBound(Arr, 1)
mit der Meldung: "Erwartet Datenfeld" hängen. Das Wort "LBound" ist unterlegt.
Ich weiß nicht, warum das mit dem Array in einem anderen Code funktioniert, hier aber nicht.Kann mir jemand weiterhelfen?
Vielen Dank im voraus.
Gruß
Torsten

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

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Array
08.09.2004 19:27:13
Nepumuk
Hallo Torsten,
du hast falsch dimensioniert.
Ändere
Dim Arr As Integer
in
Dim Arr As Variant
Gruß
Nepumuk
AW: Probleme mit Array
Torsten
Hallo Nepumuk,
vielen Dank für Deine Rückmeldung.
Der Hinweis war gut. Allerdings bleibt Excel jetzt hier hängen:
For Each ws In Arr
Worksheets(ws).Activate
(unterlegte Zeile: For Each ws in Arr) und meldet: "Objekt erforderlich".
Kannst Du mir nochmal helfen?
Gruß
Torsten
AW: Probleme mit Array
08.09.2004 19:54:55
Nepumuk
Hallo Thorsten,
ws muss auch als Variant deklariert sein.
Gruß
Nepumuk
AW: Probleme mit Array
Torsten
Hallo Nepumuk,
ich habe nunmehr auch ws als Variant deklariert und nach mehreren Versuchen und Umstellungen komme ich jedoch immer noch nicht weiter:

Private Sub CommandButton1_Click()
If MsgBox("Soll der Text jetzt in die Kostendateien eingefügt werden?", vbYesNo) = vbYes Then
Dim i As Integer
Dim i2 As Integer
Dim ws As Variant
Dim Arr As Variant
Dim irow As Integer
Dim wbName As String
'On Error GoTo errHandler
Application.ScreenUpdating = False
Application.StatusBar = "Dieser Vorgang dauert ein paar Minuten. Bitte Geduld haben..."
Application.DisplayAlerts = False
Application.EnableEvents = False
For i = 1 To Sheets("FILES").Range("A1").End(xlDown).Row
wbName = Sheets("FILES").Cells(i, 1)
Workbooks.Open wbName, 3
Arr = Array("ET120", "ET140", "ET150", "ET210", "ET220", "ET600", "ETMISC")
For i2 = LBound(Arr, 1) To UBound(Arr, 1)
Sheets(Arr(i2)).Unprotect password:="maze"
For Each ws In Arr
Worksheets(ws).Activate
With Range("B2")
.Value = "'C = Realisierung nicht vor dem 01.10.2005!"
.Font.ColorIndex = 3
.Font.Bold = True
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
Next ws
Next i2
Arr = Array("ET120", "ET140", "ET150", "ET210", "ET220", "ET600", "ETMISC")
For i2 = LBound(Arr, 1) To UBound(Arr, 1)
Sheets(Arr(i2)).Protect password:="maze"
Next i2
ActiveWorkbook.Save
ActiveWorkbook.Close , True
Next i
Application.DisplayAlerts = True
Application.StatusBar = False
Application.EnableEvents = True
MsgBox "Dateien wurden aktualisiert", vbOKOnly
Application.ScreenUpdating = True
Else
End If
Exit Sub
errHandler:
Application.DisplayAlerts = True
Application.StatusBar = False
Application.EnableEvents = True
MsgBox "Beim Update der Datei" & vbCr & wbName & vbCr & _
"ist ein Fehler aufgetreten!", vbCritical + vbOKOnly, "ABBRUCH!"
'ActiveWorkbook.Close , True
End Sub

Excel trägt den Text("C=Realisierbar nicht vor dem....") in das Workbook, aus dem ich ich heraus das Makro starte und nicht in die einzelnen ws des Array und bleibt hängen bei
.HorizontalAlignment = xlCenter
mit der Meldung: "Die Horizontal-Eigenschaft des Range-Objekts kann nicht festgelegt werden". Was ist denn noch falsch an meinem Code?
Kannst Du da nochmal drüberschauen?
Vielen Dank im voraus.
Gruß
Torsten
Anzeige
AW: Probleme mit Array
Udo
With Range("B2")
.Value = "'C = Realisierung nicht vor dem 01.10.2005!"
.Font.ColorIndex = 3
.Font.Bold = True
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

End With
Zelle B2 wird nicht selektiert aber als Selection angesprochen!
Udo
AW: Probleme mit Array
Torsten
Hallo Udo,
vielen Dank für Deine Rückmeldung.
Das sehe ich jetzt auch so, aber auch mit
(...)
With Range("B2")
.Value = "'C = Realisierung nicht vor dem 01.10.2005!"
.Font.ColorIndex = 3
.Font.Bold = True
.Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
(...)
will's nicht klappen. Außerdem bleibt ja die Frage, warum der Eintrag "C=Realisierung..." in der Datei eingetragen wird, aus der ich heraus das Makro starte und nicht in die einzelnen WS des Arrays.
Hast Du noch weitere Ideen?
Gruß
Torsten
Anzeige
AW: Probleme mit Array
09.09.2004 21:40:15
Nepumuk
Hallo Torsten,
da war viel Unsinn in dem Makro. Ganz optimiert ist es noch nicht, aber dein Chef gibt mir ja auch kein Geld dafür.


Private Sub CommandButton1_Click()
    Dim As Integer
    Dim i2 As Integer
    Dim Arr As Variant
    Dim wbName As String
    If MsgBox("Soll der Text jetzt in die Kostendateien eingefügt werden?", vbYesNo) = vbYes Then
        Arr = Array("ET120", "ET140", "ET150", "ET210", "ET220", "ET600", "ETMISC")
        On Error GoTo errHandler
        With Application
            .ScreenUpdating = False
            .StatusBar = "Dieser Vorgang dauert ein paar Minuten. Bitte Geduld haben..."
            .EnableEvents = False
        End With
        For i = 1 To Sheets("FILES").Range("A1").End(xlDown).Row
            wbName = Sheets("FILES").Cells(i, 1)
            Workbooks.Open wbName, 3
            With ActiveWorkbook
                For i2 = LBound(Arr) To UBound(Arr)
                    With .Worksheets(Arr(i2))
                        .Protect password:="maze", UserInterfaceOnly:=True
                        With .Range("B2")
                            .Value = "'C = Realisierung nicht vor dem 01.10.2005!"
                            .Font.ColorIndex = 3
                            .Font.Bold = True
                            .HorizontalAlignment = xlCenter
                            .VerticalAlignment = xlBottom
                            .Borders(xlEdgeTop).Weight = xlThin
                        End With
                    End With
                Next
                .Close True
            End With
        Next
        With Application
            .StatusBar = False
            .EnableEvents = True
            .ScreenUpdating = True
        End With
        MsgBox "Dateien wurden aktualisiert"
    End If
    Exit Sub
errHandler:
    With Application
        .StatusBar = False
        .EnableEvents = True
        .ScreenUpdating = True
    End With
    MsgBox "Beim Update der Datei" & vbLf & wbName & vbLf & "ist ein Fehler aufgetreten!", 16, "ABBRUCH!"
End Sub


Gruß
Nepumuk
Anzeige
AW: erledigt - mT
Torsten
Hallo Nepumuk,
soso, viel Unsin also! :-(
Na gut, ich hoffe, daß ich nach meiner Budgetphase dazu komme, meinen "Unsinn" mit Deiner Lösung zu vergleichen, damit ich aus meinen Fehlern lernen kann.
Ansonsten läuft Dein Code in meinen Test-Dateien problemlos durch. Heute Abend werde ich meine 30 Realdateien angehen.
In der Zwischenzeit danke ich Dir sehr für Deine Unterstützung.
Viele Grüße
Torsten
AW: Probleme mit Array
Ramses
Hallo Nepumuk
wäre der ganze Aufbau so nicht sinnvoller ?
For i = 1 To UBound(Arr)
With Worksheets(i)
With Range("B2")
.FormulaR1C1 = "'C = Realisierung nicht vor dem 01.10.2005!"
.Font.ColorIndex = 3
.Font.Bold = True
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
End With
End With
Next i
Da flackert nix und die Variablendeklaration könnte man behalten ?
Gruss Rainer
Anzeige
AW: Probleme mit Array
08.09.2004 20:12:01
Nepumuk
Hallo Rainer,
ich habe mir den Code, bis auf die fehlerhaften Zeilen nicht genau angesehen. Aber:
1. For i = 1 To UBound(Arr) 'LBound des von Arr fängt bei 0 an.
2. Du bearbeitest die ersten sechs Tabellen. Das müssen nicht die sein, die Torsten benötigt.
3. .FormulaR1C1 = "'C = Realisierung ... 'sieht nach Makroaufzeichnung aus, besser Value verwenden.
und 4. Zum Beitrag von dir an Andreas:
eieieieieiei!!!

Function Check_Protect(wks As String) As Boolean
If Worksheets(wks).ProtectContents = True Then Check_Protect = True
End Function


Function Check_Protect(wks As String) As Boolean
Check_Protect = Worksheets(wks).ProtectContents
End Function

Gruß
Nepumuk :-)
Anzeige
AW: Probleme mit Array
Ramses
Hallo Nepumuk
Ich habe mir den Code auch nicht ganz angesehen, bin bloss über das Activate gestolpert :-)
EiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEi
Oh Gott, oh Gott,.....
Du hast recht,... Asche über mein Haupt.
Wie hat heute jemand gesagt,... bloss gut, dass einer mit Verstand drüber schaut
Gruss Rainer

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige