Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

brauche Hilfe bei Laufzeitfehler

Betrifft: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 18:06:47

Moin Leute,

habe nun, auch mit Hilfe hier aus dem Board, diese Makros in Tabelle1:

Sub ausblenden()

Select Case Range("D18")
Case 1
s = "A": s1 = "G"
Case 2
s = "A": s1 = "L"
Case 3
s = "A": s1 = "Q"
Case 4
s = "A": s1 = "V"
Case 5
s = "A": s1 = "AA"

End Select

ActiveSheet.Protect "passwort", UserInterfaceOnly:=True
Sheets(1).Columns.EntireColumn.Hidden = False
Sheets(1).Columns("A:" & s).EntireColumn.Hidden = True
Sheets(1).Columns(s1 & ":AA").EntireColumn.Hidden = True
Sheets(1).Rows("150:65536").EntireRow.Hidden = True

Select Case Range("F20")
Case 1
s = "1": s1 = "44:135"
Case 2
s = "1": s1 = "90:135"
Case 3
s = "1": s1 = "150:65536"
Case Else
Exit Sub
End Select

Sheets(1).Rows("44:65536").EntireRow.Hidden = False
Sheets(1).Rows(s1).EntireRow.Hidden = True

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim bereich1 As Range
Dim bereich2 As Range
Dim bereich3 As Range
Dim bereich4 As Range
Dim bereich5 As Range
Dim bs
num = Target
bs = 3
Do Until bs = 257
Set bereich1 = Range(Cells(24, bs), Cells(38, bs))
Set bereich2 = Range(Cells(47, bs), Cells(61, bs))
Set bereich3 = Range(Cells(70, bs), Cells(84, bs))
Set bereich4 = Range(Cells(93, bs), Cells(107, bs))
Set bereich5 = Range(Cells(116, bs), Cells(130, bs))
If Not Intersect(Target, bereich1) Is Nothing Then
    On Error GoTo FehlerRoutine
    Call sndPlaySound32("C:\Programme\EZ\dartsounds\Sounds\" & num & ".wav", 1)
    End
GoTo ende
End If
If Not Intersect(Target, bereich2) Is Nothing Then
    On Error GoTo FehlerRoutine
    Call sndPlaySound32("C:\Programme\EZ\dartsounds\Sounds\" & num & ".wav", 1)
    End
GoTo ende
End If
If Not Intersect(Target, bereich3) Is Nothing Then
    On Error GoTo FehlerRoutine
    Call sndPlaySound32("C:\Programme\EZ\dartsounds\Sounds\" & num & ".wav", 1)
    End
GoTo ende
End If
If Not Intersect(Target, bereich4) Is Nothing Then
    On Error GoTo FehlerRoutine
    Call sndPlaySound32("C:\Programme\EZ\dartsounds\Sounds\" & num & ".wav", 1)
    End
GoTo ende
End If
If Not Intersect(Target, bereich5) Is Nothing Then
    On Error GoTo FehlerRoutine
    Call sndPlaySound32("C:\Programme\EZ\dartsounds\Sounds\" & num & ".wav", 1)
    End
GoTo ende
End If
bs = bs + 5
Loop
FehlerRoutine:
    MsgBox "Bitte Pfad und Namen der WAV-Datei anpassen!"
ende:
End Sub

Sub musik()
num = ActiveCell.Value
num = ActiveCell.Offset(-1, 0).Value
On Error GoTo FehlerRoutine
Call sndPlaySound32("C:\Programme\EZ\dartsounds\Sounds\" & num & ".wav", 1)
End
FehlerRoutine:
MsgBox "Bitte Pfad und Namen der WAV-Datei anpassen!"
End Sub

Und dies in Modul1:

Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long


Wenn ich nun aber etwas in die Zellen I5:I18 eingeben möchte kriege ich immer Fehlermeldung 1004 Anwendungs- oder Objektorientierter Fehler.
Wenn ich dann auf debuggen gehe zeigt er mir diesen Bereich gelb an:

Set bereich1 = Range(Cells(24, bs), Cells(38, bs))

Ich kenne mich allerdings nicht mit VBA aus, und weiss daher auch nicht, was anders gemacht werden kann.


Ich hoffe mal, dass ihr was damit anfangen könnt.
MfG, Dennis
  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: DieterB
Geschrieben am: 29.08.2004 19:19:47

Hallo Dennis,

ich weiss jetzt zwar nicht, was "bs" ist,
aber: cells(1, 1) ist Zelle A1

Du sprichst hier die Zeilen 24 und 38 an

versuchs mal mit Cells(24, 71)

Gruß

DieterB


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 19:33:08

Hallo Dieter,

bs ist Spalte C, soviel habe ich schon raus.
Set bereich1 = Range(Cells(24, bs), Cells(38, bs)) ist also der Bereich C24:C38
und das soll auch so sein.

nur mit dem Fehler weiss ich nicht, woher der kommt.
der kommt sogar, wenn ich in einer komplett neuen Excel-Tabelle den kompletten Code eingebe.

MfG, Dennis


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: DieterB
Geschrieben am: 29.08.2004 19:34:57

Dann kommentiere die Zeile mal aus,
und schau ob der Fehler in der nächsten auch kommt.

Gruß

DieterB


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 19:52:09

was meinst du mit auskommentieren?

also, ich hol mal noch ein bischen weiter aus:

in die Zellen I5, I8, I11, I14 und I17 sollen Namen eingegeben werden, also das wird grob gesehen eine Teilnehmerliste.
die Namen werden dann per dieser Formel:

=WENN(I5="";"";I5)

in die folgenden Zellen eingetragen: in B, G, L, Q und V

Ich hatte es auch schon so gemacht, das die Namen z.B. in die Spalten K, l oder M usw. eingetragen werden.

Vielleicht kannst du ja nun etwas damit anfangen?!

MfG, Dennis


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: DieterB
Geschrieben am: 29.08.2004 19:58:14

setze in der entsprechenden Zeile (im VBA-Code)
ein '
dann kommentierst du sie aus.

So kannst du sehen, ob derselbe Fehler auch bei der
nächsten Code-Zeile auftritt

Gruß

DieterB


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 20:08:23

wenn der auskommentierte code dann grün ist, denke ich mal, das ich es richtig gemacht hab.
Aber du hast recht, der Fehler tritt dann in der nächsten Zeile auf.
Du kannst es auch selber ausprobieren, einfach den kompletten Code in ein leeres Excelblatt, dann noch den Code von dem Modul dazu, und etwas in z.B. I5 eingeben oder einfach nur löschen drücken.

MfG, Dennis


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: DieterB
Geschrieben am: 29.08.2004 20:10:27

Hab ich schon versucht
der Code vom Modul ist aber nicht vollständig.
Jedenfalls läuft das bei mir nicht

Gruß

DieterB


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 20:19:41

ne, ist klar, du hast ja auch den ordner mit meinen .wav-dateien nicht.
ich hatte es so gemacht, das, wenn ich eine Zahl z.B. eine 56 in Zelle C20 eingebe, dann 56.wav abgespielt wird.
Das funktioniert auch. nur das mit den Namen noch nicht.

MfG, dennis


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: mealone
Geschrieben am: 29.08.2004 20:17:20

auskommentieren

'hochkomma vor die betroffene zeile

anm. bei meinem off xp hat eine tabelle nur 256 spalten d.h.
versuch mal

Do Until bs = 256
anstelle
Do Until bs = 257

gruss mealone


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: DieterB
Geschrieben am: 29.08.2004 20:22:10

das ist mir gar nicht aufgefallen.

habe aber aus bs mal 71 gemacht, den Fehler hab' ich raus.

Gruß

DieterB


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: mealone
Geschrieben am: 29.08.2004 20:28:59

klingt danach als ob die 257 schuld gewesen wäre

cu
mealone


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 20:36:34

@mealone,
daran liegts leider nicht,

@Dieter,
soll ich nun überall da, wo jetzt bs steht eine 71 draus machen?
Set bereich1 = Range(Cells(24, 71))
das wird mir aber auch mit dem selben Fehler gelb markiert.

MfG, Dennis


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: DieterB
Geschrieben am: 29.08.2004 20:38:58

Schade,

leider läuft das ganze bei mir nicht.

Müsste erst die Ordner anlegen und Wav-Dateien erstellen.
Somit kann ich das bei mir nicht reproduzieren.
Tut mir leid.

Gruß

DieterB


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 20:43:26

Hallo Dieter,
ich könnte dir den Ordner mit den Wave-Dateien per mal schicken?

MfG, Dennis


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: DieterB
Geschrieben am: 29.08.2004 20:45:40

wenn du ihn zippst.
mein Postfach verkraftet nur 2MB
hast du die möglichkeit, ihn zum download auf einen server zu schieben?


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 21:02:36

kannst du dir hier abholen:

http://www.dartsportseite.de/dartsounds.ace

wenn du möchtest, kann ich dir auch noch meine exceldatei mithochladen.
Dann siehst du auch was ich vorhabe.

MfG, Dennis


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: DieterB
Geschrieben am: 29.08.2004 21:07:47

das macht sinn


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 21:22:56

@Dieter
hier die Tabelle:
http://www.dartsportseite.de/501neu2.zip

@mealone,
bs = bs + 5
das steht drinne,
+5 deshalb, weil der nächste eintrag erst wieder in H, dann in M. R, usw gemacht werden kann, da die Zellen/Spalten dazwischen gesperrt sind.

MfG, Dennis


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: mealone
Geschrieben am: 29.08.2004 21:12:56

also doch näher hinschauen

bs = 3 ' hier wird bs auf 3 gesetzt
Do Until bs = 257 '257 ist jetzt doch richtig
Set bereich1 = Range(Cells(24, bs), Cells(38, bs))
Set bereich2 = Range(Cells(47, bs), Cells(61, bs))
.
.
.
bs = bs + 1 ' und diese zeile fehlt sie zählt bs hoch
loop

gruss mealone


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: mealone
Geschrieben am: 29.08.2004 21:20:51

oh mann es ist schon spät
hab grad das bs=bs+5 gesehen

und genau da ist der fehler
denn wenn mann das aufaddiert kommt mann nie auf 257

Do Until bs = 258

müsste dein problem lösen

gruss mealone


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 21:31:00

@ Mealone,

SUPER!!!
die 258 wars. nun funktioniert alles tadellos!

Und vielen Dank auch nochmal an Dieter, dafür, das du dich nun schon seid 3,5 Stunden mit mir rumplagen musstest.

Danke Euch beiden!!!

MfG, Dennis


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: DieterB
Geschrieben am: 29.08.2004 21:33:25

Mannomann
dafür hab ich jetzt 'n haufen wav-dateien

Gruß

DieterB


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 21:49:57

@ Dieter,
aber wenn du Lust hast, kannst du mir bei etwas anderem noch behilflich sein.
Ausserdem passt das gut, da du ja die Tabelle und die Wave-Dateien vorliegen hast.

Ich hätte es gerne so, dass wenn man z.B. bei Anzahl Gewinnlegs "Best of 5"(heisst das derjenige gewinnt, der als erster 3 hat) auswählt,
und z.B. "3 Spieler", das dann eben nur der Zellbereich B2:P43 und B136:P149 angezeigt wird.
und nach jedem Leg die Inhalte der Zellen B24:B38, H24:H38 und M24:M38 gelöscht werden, und das was unten bei gesamt steht, weitergezählt wird(das kann auch ruhig in ein neues Tabellenblatt geschrieben werden).

Wenn du dazu noch Lust hast?

MfG, Dennis


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: DieterB
Geschrieben am: 29.08.2004 21:52:00

ich kann es mal bei Gelegenheit versuchen.


  


Betrifft: AW: brauche Hilfe bei Laufzeitfehler von: Dennis
Geschrieben am: 29.08.2004 22:06:52

das wäre super!
hier nochmal meine mail-addi:
d.kaulen@t-online.de

und vielen dank nochmal für deine Hilfe!

MfG, Dennis


 

Beiträge aus den Excel-Beispielen zum Thema "brauche Hilfe bei Laufzeitfehler"