Anzeige
Archiv - Navigation
628to632
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
628to632
628to632
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verkürzung der VBA-Lösung - Teil 3

Verkürzung der VBA-Lösung - Teil 3
02.07.2005 22:42:51
ILka
Hallo,
mit der im Dateianhang dargestellten VBA-Lösung wird ein Kostenbericht automatisch erstellt. Die VBA-Lösung funktioniert bereits, nur ist der Teil 3 der Programmierung sehr umfangreich und lässt sich mit Sicherheit noch zusammenfassen. Ich suche insbesondere eine Schleifenlösung für die Bearbeitung der einzelnen Kostenstellen im Teil 3.
Danke im voraus und Gruß
Ilka
Nachfolgend ist der Teil 3 dargestellt:
'Teil 3

' Übertragung der Werte auf die einzelnen Tabellenblätter
Dim zelle As Integer
Dim y As Integer
'Kostenstelle 1
'Blatt Kostenstelle 1 aktivieren
Worksheets("1").Activate
'Spalte für Monat berechnen
zelle = 4 + Monat.Text
'Schleife für Übertragung der Werte für jede Zeile
For y = 7 To 163
'Auswahl des aktuellen Feldes
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
'SVERWEIS Formel mit Fehlerabfrage #NV verschwindet
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C6:C7,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C6:C7,2,FALSE))"
'Kopieren der Zelle
Selection.Copy
'Nur Zellwert wird in dieselbe Zelle wieder eingefügt
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Autofilter wird auf Summenansicht zurückgesetzt
Selection.AutoFilter Field:=1, Criteria1:="1"
'Auswahl der Kostenstelle-Zelle (OPTIK!!!)
Cells(2, 5).Select
End If
Next y
'Kostenstelle 2
Worksheets("2").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C8:C9,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C8:C9,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 11
Worksheets("11").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C10:C11,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C10:C11,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 12
Worksheets("12").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C12:C13,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C12:C13,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 21
Worksheets("21").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C14:C15,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C14:C15,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 22
Worksheets("22").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C16:C17,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C16:C17,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 31
Worksheets("31").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C18:C19,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C18:C19,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 32
Worksheets("32").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C20:C21,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C20:C21,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 41
Worksheets("41").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C22:C23,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C22:C23,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 51
Worksheets("51").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C24:C25,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C24:C25,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 60
Worksheets("60").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C26:C27,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C26:C27,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 61
Worksheets("61").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C28:C29,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C28:C29,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 62
Worksheets("62").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C30:C31,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C30:C31,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
'Kostenstelle 63
Worksheets("63").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C32:C33,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C32:C33,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Datei mit der integrierten VBA-Lösung:
https://www.herber.de/bbs/user/24417.zip
Datei Kst ausführlich 052005 zur Erstellung des Monatsberichtes 05/2005
(wird zur Ausführung des Programmes benötigt):

Die Datei https://www.herber.de/bbs/user/24418.zip wurde aus Datenschutzgründen gelöscht

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

Betreff
Datum
Anwender
Anzeige
AW: Verkürzung der VBA-Lösung - Teil 3
03.07.2005 00:04:39
Ramses
Hallo
Grundsätzlich ohne Select arbeiten
Das heisst, anstelle von
Worksheets("63").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
Cells(y, zelle).Select
If (ActiveCell.Offset(0, -(zelle - 1)) = 2) Then
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C32:C33,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C32:C33,2,FALSE))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:="1"
Cells(2, 5).Select
End If
Next y
Sollte das so geschrieben sein
Worksheets("63").Activate
zelle = 4 + Monat.Text
For y = 7 To 163
    If (Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
        Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C32:C33,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C32:C33,2,FALSE))"
        Cells(y, zelle).Value = Cells(y, zelle).Value
        'Für was soll das gut sein bei 156 Aktionen den Autofilter
        'zu aktivieren ?
        'Selection.AutoFilter Field:=1, Criteria1:="1"
    End If
Next y


'...oder auch so
'dann kann das Sheet Aktivieren vermieden werden


With Worksheets("63")
    'Auf die Punkte achten !!!!
    zelle = 4 + Monat.Text
    For y = 7 To 163
        If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
            .Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C32:C33,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C32:C33,2,FALSE))"
            .Cells(y, zelle).Value = .Cells(y, zelle).Value
            'Für was soll das gut sein bei 156 Aktionen den Autofilter
            'zu aktivieren ?
            'Selection.AutoFilter Field:=1, Criteria1:="1"
        End If
    Next y
End With

Gruss Rainer
Anzeige
AW: Verkürzung der VBA-Lösung - Teil 3
03.07.2005 22:40:45
Ilka
Hallo,
vielen Dank - die verkürzte Lösung hat funktioniert.
Kannst Du die einzelne Abarbeitung der genannten Tabellenblätter evtl. über eine Schleifenlösung zusammenfassen? Ich habe es zwar versucht, bin jedoch damit gescheitert.
Für die fest definierten Tabellenblätter "1","2","11","12","21","22","31","32","41","51","60","61","62" und "63" ist jeweils der gleiche VBA-Ablauf auszuführen- einzige Abweichung: der Suchbereich aus dem Tabellenblatt Kosten ändert sich jeweils pro Tabellenblatt (z.B. von "C6:C7" in "C8:C9" usw.).
Gruß
Ilka
Nachfolgend die aktuelle VBA-Lösung :
' Übertragung der Werte auf die einzelnen Tabellenblätter
Dim zelle As Integer
Dim y As Integer

'Tabellenblatt „1“
With Worksheets("1")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C6:C7,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C6:C7,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „2“
With Worksheets("2")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C8:C9,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C8:C9,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt“11“
With Worksheets("11")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C10:C11,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C10:C11,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „12“
With Worksheets("12")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C12:C13,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C12:C13,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „21“
With Worksheets("21")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C14:C15,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C14:C15,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „22“
With Worksheets("22")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C16:C17,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C16:C17,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „31“
With Worksheets("31")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C18:C19,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C18:C19,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „32“
With Worksheets("32")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C20:C21,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C20:C21,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „41“
With Worksheets("41")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C22:C23,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C22:C23,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „51“
With Worksheets("51")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C24:C25,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C24:C25,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „60“
With Worksheets("60")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C26:C27,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C26:C27,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „61“
With Worksheets("61")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C28:C29,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C28:C29,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „62“
With Worksheets("62")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C30:C31,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C30:C31,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
'Tabellenblatt „63“
With Worksheets("63")
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C32:C33,2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C32:C33,2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
Anzeige
AW: Verkürzung der VBA-Lösung - Teil 3
03.07.2005 22:43:40
Ramses
Hallo
Da auf jedem Tabellenblatt eine andere Formel einzufügen ist, und die Tabellen nicht einer Schleife angeordnet werden können, sehe ich keine weitere Möglichkeit.
Gruss Rainer
AW: Verkürzung der VBA-Lösung - Teil 3
03.07.2005 22:46:41
Ilka
Hallo Rainer,
schade, daß eine Schleifenlösung nicht möglich ist, aber trotzdem vielen Dank für deine Tips.
Gruß
Ilka
Array - Lösung
03.07.2005 23:04:39
Ramses
Hallo
Probier das mal aus
Option Explicit
Option Base 1

Sub test()
    Dim myArr() As Variant
    Dim arrC As Integer
    Dim myLoop As Integer
    myArr = Array("1", "2", "11", "12", "21", "22", "31", "32", "41", "51", "60", "61", "62", "63")
    arrC = 1
    For myLoop = 6 To 32 Step 2
        With Worksheets(myArr(arrC))
            zelle = 4 + Monat.Text
            For y = 7 To 163
                If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
                    .Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C" & myLoop & "6:C" & mylopop + 1 & ",2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C" & myLoop & "6:C" & mylopop + 1 & ",2,FALSE))"
                    .Cells(y, zelle).Value = .Cells(y, zelle).Value
                End If
            Next y
        End With
        arrC = arrC + 1
    Next myLoop
End Sub

Im Array sind alle Tabellenblätter aufgelistet die durchlaufen werden sollen.
Gruss Rainer
Anzeige
AW: Array - Lösung
04.07.2005 12:35:27
Ilka
Hallo,
ich habe deinen Vorschlag ausprobiert, komme jedoch nur bis zur Fehlermeldung Laufzeitfehler "9"-Index ausserhalb des gültigen Bereichs. Die Zeile " With Worksheets(myArr(arrC))" wird dann gelb markiert.
Kannst Du diesen Fehler beheben ?
Gruß
Ilka
' Übertragung der Werte auf die einzelnen Tabellenblätter
Dim myArr() As Variant
Dim arrC As Integer
Dim myLoop As Integer
myArr = Array("1", "2", "11", "12", "21", "22", "31", "32", "41", "51", "60", "61", "62", "63")
arrC = 1
For myLoop = 6 To 32 Step 2
With Worksheets(myArr(arrC))
zelle = 4 + Monat.Text
For y = 7 To 163
If (.Cells(y, zelle).Offset(0, -(zelle - 1)) = 2) Then
.Cells(y, zelle).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC3,'Kosten'!C" & myLoop & "6:C" & myLoop + 1 & ",2,FALSE)),"""",VLOOKUP(RC3,'Kosten'!C" & myLoop & "6:C" & myLoop + 1 & ",2,FALSE))"
.Cells(y, zelle).Value = .Cells(y, zelle).Value
End If
Next y
End With
arrC = arrC + 1
Next myLoop

Anzeige
AW: Array - Lösung
04.07.2005 20:25:00
Ramses
Hallo
dann hast du die Anweisung "Option Base 1" nicht eingebaut in das Modul, oder deine Tabellen heissen anders.
Ich habe den Code getestet und er funktioniert
Gruss Rainer

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige