Du bist nicht eingeloggt.

Login

Pass

Registrieren

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.

  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -