Frage von StudentinLaura, 35

Wo ist bloß mein Fehler :(?

Hallo zusammen,
ich hoffe, dass ich keinen Fehler im Code habe^^,dennoch wäre ich sehr sehr dankbar, wenn jemand den unten stehenden Code checken könnte :)

? (ich hab shcon verschiedene Stichproben durchgeführt und bin der Meinung das es passt) Hab einfach angst einen Fehler zu machen >.>

Das folgende Sub soll erkennen in welcher Zeile ein Benutzer anfängt und in welcher Zeile es einen wechsel gibt.

1 Thomas

2 Thomas

3 Thomas

4 Justin

5 Justin

6 Justin

7 Tim

8 Tim

9 Tim

10 Tim

11 Tim

12 TIm

Sub Test2()
      Dim a As Integer
      Dim b As Integer
      Dim iGleicherBearbeiterStart As Integer
      Dim iGleicherBearbeiterEnde As Integer
                iGleicherBearbeiterEnde = 2
      Dim ilastrow As Integer
      Dim lastrow As Integer

      For ilastrow = 2 To 300
                If Worksheets("Kollision").Range("B" & ilastrow) = "" Then
                          lastrow = ilastrow - 2
                          Exit For
                End If
      Next ilastrow
                For a = iGleicherBearbeiterEnde To lastrow
                          Worksheets("Kollision").Range("B" & a - 1).Select
                          If Not Worksheets("Kollision").Range("B" & a - 1) = Worksheets("Kollision").Range("B" & a) Then
                                    iGleicherBearbeiterStart = a
                                    For b = iGleicherBearbeiterStart To 10
                                                                  If Not Worksheets("Kollision").Range("B" & b) = Worksheets("Kollision").Range("B" & b + 1) Then
                                                                            iGleicherBearbeiterEnde = b
                                                                            Worksheets("Kollision").Range("B" & b).Select
                                                                            Exit For
                                                                  End If
                                    
                                    Next b
                          End If
                Next a

End Sub

Antwort
von Britzcontrol, 12

In Deinem Makro passiert nichts ...
Willst Du Anfang und Ende feststellen, dann so:

Sub test1a()
lz = Range("B65536").End(xlUp).Row ' letzte benutzte Zeile
Cells(1, 3) = "Start " & Cells(1, 2) ' Ersteintrag

For i = 1 To lz ' Schleife
If Cells(i, 2) <> Cells(i + 1, 2) Then ' Unterschied?
ende = i ' wenn ja
Cells(i, 3) = "Ende " & Cells(i, 2) ' Ende eintragen
If i < lz Then Cells(i + 1, 3) = "Start " & Cells(i + 1, 2) 'Ende Daten?
End If
Next
End Sub

Es werden die Zellen der Spalte B miteinander verglichen (wie Ninombre vorschlug) und bei "Wechsel" dieser in Spalte C vermerkt.

Gruß aus Berlin

Expertenantwort
von Ninombre, Community-Experte für Excel, 17

mein Hirn ist gerade etwas ausgelaugt - ich kann den Code nicht ganz nachvollziehen bzw. wie er zum genannten Beispiel passt. Im Grunde reicht es doch, wenn Du den Wert bei Range("B"&i) mit Range("B"&i+1) vergleichst. Also, ob der Wert in der aktuellen Zeile, der gleiche ist, wie in der folgenden. Je nach Anforderung kann man das natürlich auch umdrehen und prüfen, ob der Wert der aktuellen Zeile der vorherigen entspricht (range("b"&i)=range("b"&i-1)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten