Wie funktioniert Array
09.01.2009 22:45:00
adi
es gibt 1 Tabelle in der sind eine Hebeliste und Ga_1_32
Nach Eingabe einer Zahl sollen aus der Hebeliste die Daten, die rechts von der Zahl liegen,
eingelesen werden. Dann sollen die Daten nach Ga_1_32 abgelegt werden.
Der unten stehende Code legt die Daten nicht an der richtigen Stelle ab.
Ich weis nicht woran das liegt. Ich möchte gerne die funktionsweise der Array
Formel verstehen, kann jemand zwischen den Zeilen eine Erklärung schreiben?
Option Explicit
Sub Garten_Test_1_32_Übertragen()
Dim SpaH As Long, SpaG, wksH As Worksheet, wksG As Worksheet, Finde As Range
Dim GartenNr
Set wksH = Worksheets("Hebeliste")
Set wksG = Worksheets("Ga_1_32")
SpaG = Array(11, 13, 14, 15, 16, 18, 20, 22, 23, 24, 26, 28, 29, 30, 31)
' Application.ScreenUpdating = False
With wksG
GartenNr = InputBox("Garten-Nr. ACHTUNG Zahl zwischen 1 + 32 :", "GartenNr", Selection())
If Not IsNumeric(GartenNr) Then Exit Sub
If GartenNr 32 Then: MsgBox "Die Eingabe ist zu gross": Exit Sub
.Unprotect
wksH.Range("A2").Value = GartenNr 'kopiert die Nr in A2
Set Finde = wksH.Range("A4:A35").Find(GartenNr)
If Finde Is Nothing Then
MsgBox "GartenNr nicht gefunden."
Exit Sub
End If
For SpaH = 0 To 14
.Cells(GartenNr + 4, SpaG(SpaH)) = wksH.Cells(Finde.Row, 1 + SpaH)
Next SpaH
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.StatusBar = "Der Betrag: " & GartenNr & " ist eingetragen worden."
MsgBox "Der Betrag: " & GartenNr & " ist eingetragen worden."
.Range("A3").Select
End With
Application.ScreenUpdating = True
End Sub
Beispiel Tabelle