Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Abstand zwischen Zeilen bestimmen

Abstand zwischen Zeilen bestimmen
04.06.2008 14:28:58
Tommi
Hallöchen,
und noch eine Frage. Ich möchte den Abstand zwischen 2 Zeilen (mit dem Wort Anfang) bestimmen. Im Moment lasse ich eine Schleife vom Stil
Abstand = 1
Do While Left(Cells(zeile + Abstand, 1), 6) "Anfang"
Abstand = Abstand + 1
Loop
laufen. Ist das so okay oder gibt es da irgendeine Funktion für um Abstände zu bestimmen oder das ganze vlt. auch schneller zu machen (For-Next...). Ist ein Schleifentyp überhaupt zu bevorzugen, also was die Geschwindigkeit angeht?
Anfang
sdf
sdf
sdf
sdfsdf
Anfang
sdf
sdf
sdf
Anfang
usw.
LG,
Tommi

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ermitteln der Zeilendifferenz gleicher Werte
04.06.2008 14:50:53
NoNet
Hallo Tommi,
grundsätzlich ist die DO....LOOP Variante schon dafür geeignet, nur würde ich nicht JEDE Zelle einzeln überprüfen, sondern gezielt die SUCH-Funktion von Excel verwenden, um die jeweils nächste Zelle mit diesem Wert zu ermitteln :
VBA-Code:
Sub AbstandBestimmen()
    Dim strWort As String
    Dim lngAnfang As Long, lngEnde As Long
    Dim rngZelle As Range
    strWort = "Anfang"
    If Application.CountIf([A:A], strWort) > 1 Then
        Set rngZelle = [A:A].Find(strWort, lookat:=xlWhole, LookIn:=xlValues)
        If [A1] = strWort Then Set rngZelle = [A1]
        lngAnfang = rngZelle.Row
        Do
            Set rngZelle2 = [A:A].FindNext(after:=rngZelle)
            If Not rngZelle2 Is Nothing Then
                lngEnde = rngZelle2.Row
                If lngEnde > lngAnfang Then
                    MsgBox "Abstand : " & lngAnfang & " bis " & lngEnde & " : " & lngEnde - lngAnfang & " Zeile(n)"
                    Set rngZelle = rngZelle2
                    lngAnfang = lngEnde
                End If
            End If
        Loop Until lngEnde < lngAnfang
    ElseIf Application.CountIf([A:A], strWort) = 1 Then
        Set rngZelle = [A:A].Find(strWort, lookat:=xlWhole, LookIn:=xlValues)
        MsgBox rngZelle.Address, vbOKOnly + vbInformation, "Suchbegriff nur einmalig in Spalte A vorhanden :"
    Else
        MsgBox strWort, vbOKOnly + vbInformation, "Suchbegriff nicht in Spalte A gefunden !"
    End If
End Sub
Hier wird zunächst geprüft, wie häufig der Suchbegriff in Spalte A vorhanden ist und eine entsprechende Meldung angezeigt.
Gruß, NoNet

Anzeige
AW: Abstand zwischen Zeilen bestimmen
04.06.2008 22:43:33
Daniel
Hi
wenn die erste Zeile mit dem Wort "Anfang" gegeben ist, dann so vielleicht:

Dim Zeile1 As Long
Dim Zeile2 As Long
Dim Abstand As Long
Zeile1 = 1 '--- das sei mal ein bekannter Zeilenwert für "Anfang"´
Zeile2 = Columns(1).Find(what:="Anfang", after:=Cells(Zeile1, 1)).Row
Abstand = Zeile2 - Zeile1


ist Zeile1 schon die letze Zeile mit dem Inhalt Abstand, so wird Zeile2 kleiner oder gleich Zeile1 (Excel beginnt wieder von vorne zu suchen)
Gruß, Daniel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige