Hey,
ich muss seit langem malwieder VBA machen, und komme deshalb leider selber nichtmehr so schnell darauf, wo meine Fehler liegen, bzw. kenne ich mich nicht mehr so gut mit VBA aus. Ich wäre euch doch sehr verbunden, wenn ihr mal über meine Programmierung rüberschaut und mir sagt, weshalb die Meldung: "Laufzeitfehler - Index außerhalb des gültigen Bereichs" auftaucht.
Option Explicit
Sub Berechnung_freieZimmer()
Dim Zeile As Byte
Dim Spalte As Byte
Dim Einzelzimmer As Byte
Dim Doppelzimmer As Byte
Dim KomfortDZ As Byte
Dim TerassenDZ As Byte
Dim PanoramaDZ As Byte
Dim PanoramaTerassenDZ As Byte
Zeile = 2
Spalte = 12
Einzelzimmer = 0
Doppelzimmer = 0
KomfortDZ = 0
TerassenDZ = 0
PanoramaDZ = 0
PanoramaTerassenDZ = 0
Do
If Cells(Zeile, Spalte) = "Einzelzimmer" Then
Select Case Cells(Zeile, Spalte + 1)
Case "frei"
Einzelzimmer = Einzelzimmer + 1
Case "besetzt"
Zeile = Zeile + 1
End Select
ElseIf Cells(Zeile, Spalte) = "Doppelzimmer" Then
Select Case Cells(Zeile, Spalte + 1)
Case "frei"
Doppelzimmer = Doppelzimmer + 1
Case "besetzt"
Zeile = Zeile + 1
End Select
ElseIf Cells(Zeile, Spalte) = "KomfortDZ" Then
Select Case Cells(Zeile, Spalte + 1)
Case "frei"
KomfortDZ = KomfortDZ + 1
Case "besetzt"
Zeile = Zeile + 1
End Select
ElseIf Cells(Zeile, Spalte) = "TerassenDZ" Then
Select Case Cells(Zeile, Spalte + 1)
Case "frei"
TerassenDZ = TerassenDZ + 1
Case "besetzt"
Zeile = Zeile + 1
End Select
ElseIf Cells(Zeile, Spalte) = "PanoramaDZ" Then
Select Case Cells(Zeile, Spalte + 1)
Case "frei"
PanoramaDZ = PanoramaDZ + 1
Case "besetzt"
Zeile = Zeile + 1
End Select
ElseIf Cells(Zeile, Spalte) = "PanoramaTerassenDZ" Then
Select Case Cells(Zeile, Spalte + 1)
Case "frei"
PanoramaTerassenDZ = PanoramaTerassenDZ + 1
Case "besetzt"
Zeile = Zeile + 1
End Select
End If
Loop Until Cells(Zeile, Spalte) = ""
With Worksheets("tbl_Hotel")
.Cells(3, 4) = Einzelzimmer
.Cells(4, 4) = Doppelzimmer
.Cells(5, 4) = KomfortDZ
.Cells(6, 4) = TerassenDZ
.Cells(7, 4) = PanoramaDZ
.Cells(8, 4) = PanoramaTerassenDZ
End With
End Sub
MfG
|