Hi Anton,
Zuerst danke ich dir nochmal, das du dir soviel Zeit nimmst.
Leider funktioniert es bei mir nicht so richtig.
Wenn ich in F1 etwas eingebe, wird keine Makro gestartet (Was
muß ich hier genau eingeben? (jan, Feb, oder nur die
Monatszahlen?)
Januar, Februar,… in der Schreibweise, die bei Daten–Gültigkeit definiert ist.
Wenn ich das Makro per Hand starte, copiert er mir immer den
Monat Mai in Tabelle 2.
Dann wird Mai in F1 stehen.
Was bewirkt der Befehl Array genau?
z.B. Verkürzung, bessere ansprechmöglichkeiten von Variablen.
x0=„Hamburg“
x1=„München“
x2=„Berlin“
…
x20=„Osnabrück“
S=Input(„Stadt“)
if S = x0 then
if S = x1 then
if S = x2 then
…
if S = x20 then
wird verkürzt zu
x=array(„Hamburg“,„München“,„Berlin“,…,„Osnabrück“)
S=Input(„Stadt“)
for n = 0 to ubound(x)
if S = x(n) then
next n
Die Datei. http://www.hostarea.de/server-10/Oktober-9ad401c5fc.xls
enthält in Tabelle1:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address „$F$1“ Then Exit Sub
Call Uebertragen
End Sub
in Modul1:
Option Explicit
Option Base 1
'
Sub Uebertragen()
Dim M As Byte, Von As Long, Bis As Long
With Worksheets("Tabelle1")
M = Month("1." & .Range("F1").Value & ".2007")
While Month(.Cells(Von + 1, 1)) M
Von = Von + 1
If Von = .Rows.Count Then
MsgBox "Monat nicht vorhanden"
Exit Sub
End If
Wend
Von = Von + 1
Bis = Von
' Ohne And "" läuft es bei M=12 bis \> 65537 ???
While (Month(.Cells(Bis + 1, 1)) = M) And (Bis "")
Bis = Bis + 1
Wend
Tabelle2.UsedRange.ClearContents
.Rows(Von & ":" & Bis).Copy Tabelle2.[A1]
End With
End Sub
Wähle in F1 verschiedene Moate aus und beobachte Tabelle2.
Das hätte auch schon mit der Vorgängerversion der Codes geklappt.
Änderungen hatten andere Gründe.
Und zu der Frage nach Arrays, tja nun, rtfm, prisweret Bücher zu XL97-Vba langen dicke zum Lernen, Nachschauen.
Gruß
Reinhard