|
Community
Szene & News
Locations
Impressum
|
Forum / Bits und Bytes
Excel VBA fehler 400 ( Es liegt nicht am button)

mcsuperbusen - 34
Halbprofi
(offline)
Dabei seit 07.2005
176
Beiträge
|
|
Geschrieben am: 07.07.2011 um 17:03 Uhr
|
|
Hey leute um meine VBA Kenntnisse wieder ein wenig zu reaktivieren habe ich mir eine kleine Aufgabe ausgedacht.
So weit hat auch alles auf Anhieb funktioniert, jedoch kommt etwa nach jeder 4ten Ausführung der Fehler 400.
Bei meinem Programm geht es darum, speisen aus dem dritten Blatt zufällig zu einem Essensplan auf das erste zu setzen.
Public Sub test()
Dim i As Integer
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim e As String ' Wochentage
Dim f As String
Dim g As String
Dim h As String
Dim j As String
Dim k As String ' Dies sind die vorherigen Tage
f = Sheets("Essensplan").Cells(5, 3)
g = Sheets("Essensplan").Cells(5, 4)
h = Sheets("Essensplan").Cells(5, 5)
j = Sheets("Essensplan").Cells(5, 6)
k = Sheets("Essensplan").Cells(5, 7) 'Einlesen der vorherigen Woche
Sheets("Essensplan").Cells(5, 2) = Date
Do
i = Rnd * 15
a = Sheets("Rezepte").Cells(i, 1)
Loop While a = f Or a = g Or a = h Or a = k Or a = j
Sheets("Essensplan").Cells(5, 3) = a
Do
i = Rnd * 15
b = Sheets("Rezepte").Cells(i, 1)
Loop While b = a Or b = f Or b = g Or b = h Or b = k Or b = j
Sheets("Essensplan").Cells(5, 4) = b
Do
i = Rnd * 15
c = Sheets("Rezepte").Cells(i, 1)
Loop While c = a Or c = b Or c = f Or c = g Or c = h Or c = k Or c = j
Sheets("Essensplan").Cells(5, 5) = c
Do
i = Rnd * 15
d = Sheets("Rezepte").Cells(i, 1)
Loop While d = a Or d = b Or d = c Or d = f Or d = g Or d = h Or d = k Or d = j
Sheets("Essensplan").Cells(5, 6) = d
Do
i = Rnd * 15
e = Sheets("Rezepte").Cells(i, 1)
Loop While e = a Or e = b Or e = c Or e = d Or e = f Or e = g Or e = h Or e = k Or e = j
Sheets("Essensplan").Cells(5, 7) = e
ActiveWorkbook.Save
End Sub
Vielen Dank für eure Antworten.
Ps. ich benutze noch Excel 2003 dies sollte jedoch kein prob sein.
|
|
KnC - 40
Halbprofi
(offline)
Dabei seit 12.2004
155
Beiträge
|
Geschrieben am: 07.07.2011 um 17:18 Uhr
Zuletzt editiert am: 07.07.2011 um 17:48 Uhr
|
|
Ist die Zeilenanordnung die gleiche wie du hier reingeschrieben hast oder hat es sich beim einfügen nur verschoben?
Zitat von mcsuperbusen:
1. Sheets("Essensplan").Cells(5, 5) = c
2. Do
3. i = Rnd * 15
4. d = Sheets("Rezepte").Cells(i, 1)
5. Loop While d = a Or d = b Or d = c Or d = f Or d = g Or d = h Or d = k
6. Or d = j
Wenn ja, musst du schauen, dass die 6 mit in die 5. Zeile reinkommt.
|
|
Viva-La-Ben - 38
Experte
(offline)
Dabei seit 12.2005
1185
Beiträge
|
Geschrieben am: 07.07.2011 um 18:11 Uhr
Zuletzt editiert am: 07.07.2011 um 18:11 Uhr
|
|
Ich tippe darauf, dass i = Rnd * 15 irgendwann für i 0 ausgibt, versuch das mal a = Sheets("Rezepte").Cells(i, 1) beizubringen.
Am besten machst du einfach i = Rnd * 15 zu i = Rnd * 15 + 1
du bist verrückt, ich mag dich :-D | SysP ID 32513
|
|
mcsuperbusen - 34
Halbprofi
(offline)
Dabei seit 07.2005
176
Beiträge
|
|
Geschrieben am: 07.07.2011 um 18:30 Uhr
|
|
yeahhh du hast recht =)
die null war das prob.
|
|
Forum / Bits und Bytes
|