111 Aufrufe
Gefragt in Tabellenkalkulation von addeguddi Experte (2.7k Punkte)
Hallo,

wer kann mir helfen? Beispiel: Bezug bezieht sich auf Zelle NR5, wenn da eine 2,3,4,5, oder 6 steht soll in diesem Code automatisch ein Wechsel stattfinden. Von B19 findet Wechsel statt, doch sowie in Zelle B20=3 dann sollte er in B19 wechseln doch das macht er nicht.  Ist der Code falsch?

Das ist mein Code.

' Wurf in die richtige Zeile (Spieler) eintragen
Select Case SpielerAnzahl
    Case 2
        If Cells(19, lngWSpalte).Value >= 3 And Cells(19, lngWSpalte).Value <= 60 Then
            lngWZeile = 20
        ElseIf Cells(20, lngWSpalte).Value >= 3 And Cells(20, lngWSpalte).Value <= 60 Then
            lngWZeile = 19
        End If
    Case 3
        If Cells(19, lngWSpalte).Value >= 3 And Cells(19, lngWSpalte).Value <= 60 Then
            lngWZeile = 20
        ElseIf Cells(20, lngWSpalte).Value >= 3 And Cells(20, lngWSpalte).Value <= 60 Then
            lngWZeile = 21
        ElseIf Cells(21, lngWSpalte).Value >= 3 And Cells(21, lngWSpalte).Value <= 60 Then
            lngWZeile = 19
        End If
    Case 4
        If Cells(19, lngWSpalte).Value >= 3 And Cells(19, lngWSpalte).Value <= 60 Then
            lngWZeile = 20
        ElseIf Cells(20, lngWSpalte).Value >= 3 And Cells(20, lngWSpalte).Value <= 60 Then
            lngWZeile = 21
        ElseIf Cells(21, lngWSpalte).Value >= 3 And Cells(21, lngWSpalte).Value <= 60 Then
            lngWZeile = 22
        ElseIf Cells(22, lngWSpalte).Value >= 3 And Cells(22, lngWSpalte).Value <= 60 Then
            lngWZeile = 19
        End If
    Case 5
        If Cells(19, lngWSpalte).Value >= 3 And Cells(19, lngWSpalte).Value <= 60 Then
            lngWZeile = 20
        ElseIf Cells(20, lngWSpalte).Value >= 3 And Cells(20, lngWSpalte).Value <= 60 Then
            lngWZeile = 21
        ElseIf Cells(21, lngWSpalte).Value >= 3 And Cells(21, lngWSpalte).Value <= 60 Then
            lngWZeile = 22
        ElseIf Cells(22, lngWSpalte).Value >= 3 And Cells(22, lngWSpalte).Value <= 60 Then
            lngWZeile = 23
        ElseIf Cells(23, lngWSpalte).Value >= 3 And Cells(23, lngWSpalte).Value <= 60 Then
            lngWZeile = 19
        End If
    Case 6
        If Cells(19, lngWSpalte).Value >= 3 And Cells(19, lngWSpalte).Value <= 60 Then
            lngWZeile = 20
        ElseIf Cells(20, lngWSpalte).Value >= 3 And Cells(20, lngWSpalte).Value <= 60 Then
            lngWZeile = 21
        ElseIf Cells(21, lngWSpalte).Value >= 3 And Cells(21, lngWSpalte).Value <= 60 Then
            lngWZeile = 22
        ElseIf Cells(22, lngWSpalte).Value >= 3 And Cells(22, lngWSpalte).Value <= 60 Then
            lngWZeile = 23
        ElseIf Cells(23, lngWSpalte).Value >= 3 And Cells(23, lngWSpalte).Value <= 60 Then
            lngWZeile = 24
        ElseIf Cells(24, lngWSpalte).Value >= 3 And Cells(24, lngWSpalte).Value <= 60 Then
            lngWZeile = 19
        End If
End Select

Gruß Adde

2 Antworten

0 Punkte
Beantwortet von xlking Experte (1.9k Punkte)
Bearbeitet von xlking

Hi Adde,

sieht auf Anhieb schlüssig aus. Sollte eigentlich funktionieren. Wenn es das nicht tut, prüfe folgendes:

  • Wurde zuvor der Variablen SpielerAnzahl überhaupt ein Wert zugewiesen, der zwischen 2 und 6 liegt?
  • Wurde der Variablen lngWSpalte zuvor der korrekte Wert zugewiesen, der auf die gewünschte Spalte verweist?
  • Wird die Variable lngWZeile später im Code weiterverarbeitet?
  • Steht der Code im richtigen Modul? Er darf sich nicht in einem Tabellenmodul befinden, welches nicht der gewünschten Tabelle entspricht.
  • Wird die If-Bedingung evtl. vorzeitig abgebrochen, weil z.B. in Zeile 19 ein Wert zwischen 3 und 60 steht, du aber erwartest dass von Zeile 20 oder höher gewechselt wird?

So wie ich das sehe hilft dir hier nur ein Debugging im Einzelschritt (mit F8) dann kannst du Schritt für Schritt prüfen, ob die Variablen überhaupt Werte haben indem du mit dem Mauszeiger draufzeigst.

Gruß Mr. K.

0 Punkte
Beantwortet von addeguddi Experte (2.7k Punkte)
Vielen Dank Mr. K.

werde es testen.

Gruß Adde
...