Anzeige
Archiv - Navigation
1464to1468
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
Inhaltsverzeichnis

Wert finden u Zeile einfügen nach bestimmten Wert

Wert finden u Zeile einfügen nach bestimmten Wert
27.12.2015 18:44:05
Stefan
Hallo,
ich habe ein kleines Excel-Makro welches Werte sortiert, dies funktioniert auch soweit. In einem Punkt komme ich nicht weiter. Ich benötige den Code für die Suche nach einen bestimmten Wert (z.B. Hallo) in einer Spalte (kann mehrfach vorkommen), wenn der Wert gefunden wurde soll eine neue Zeile unter einen bestimmten anderen Wert (z.B. Montag) eingefügt werden (kann auch mehrfach vorkommen). Bekomme es nur hin, dass eine neue Zeile unter oder über dem Wert (Hallo) eingefügt wird.
Vielleicht kann mir jemand helfen. Ich bin neu hier und kenne mich nicht mit den Gepflogenheiten in einem Forum aus und bitte um Nachsicht.
Schöne Grüße
Stefan

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert finden u Zeile einfügen nach bestimmten Wert
27.12.2015 19:34:48
Michael
Hallo Stephan,
eine Beispieldatei mit dem, was Du bereits hast, wäre ganz sinnvoll.
Die Geschichte als solche ist nicht recht nachvollziehbar: woher soll Excel wissen, bei welchem "Montag" es beim jeweiligen Treffer von "Hallo" aktiv werden soll? Da muß es noch einen Zusammenhang geben, den Du uns nicht genannt hast.
Schöne Grüße,
Michael

Wert finden u Zeile einfügen nach bestimmten Wert
27.12.2015 20:43:06
Stefan
Hallo Michael,
vielen Dank für deine schnelle Antwort.
Also in Spalte F stehen verschiedene Wörter unter anderem "Hallo" und "Montag". Wenn ein "Hallo" kommt folgt immer irgendwann ein "Montag" vor dem nächsten "Hallo". Hier soll zu jedem Hallo unter dem jeweiligen "Montag" eine Zeile "Storno Hallo" eingefügt werden.
Bsp.:
Spalte F
Bezeichnung
Haus
Garten
Hallo
Tanzen
Auto
Montag
Haus
Garten
Hallo
Auto
Montag
...
Bisher habe ich folgenden Code, dieser fügt aber nur unter dem "Hallo" direkt ein "Storno Hallo" ein.
For e = 1 To 300
If Cells(e, 6).Value = "Hallo" Then
Cells((e + 1), 6).Select
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.FormulaR1C1 = "Storno Hallo"
End If
MfG
Stefan

Anzeige
AW: Wert finden u Zeile einfügen nach bestimmten Wert
27.12.2015 21:11:35
Sepp
Hallo Stefan,
Sub Hallo()
Dim rngH As Range, rngM As Range
Dim strFirst As String

With ActiveSheet
  Set rngH = .Range("F:F").Find(What:="Hallo", LookIn:=xlValues, LookAt:=xlWhole, _
    MatchCase:=False, SearchFormat:=False, After:=.Cells(.Rows.Count, 6), _
    SearchDirection:=xlNext, SearchOrder:=xlByRows)
  If Not rngH Is Nothing Then
    strFirst = rngH.Address
    Do
      Set rngM = Nothing
      Set rngM = .Range("F:F").Find(What:="Montag", LookIn:=xlValues, LookAt:=xlWhole, _
        MatchCase:=False, SearchFormat:=False, After:=rngH)
      If Not rngM Is Nothing And rngM.Row > rngH.Row Then
        rngM.Offset(1, 0).Insert xlDown, xlFormatFromLeftOrAbove
        rngM.Offset(1, 0) = "Storno Hallo"
      End If
      Set rngH = .Range("F:F").Find(What:="Hallo", LookIn:=xlValues, LookAt:=xlWhole, _
        MatchCase:=False, SearchFormat:=False, After:=rngH)
    Loop While Not rngH Is Nothing And strFirst <> rngH.Address
  End If
End With


Set rngH = Nothing
Set rngM = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Wert finden u Zeile einfügen nach bestimmten Wert
27.12.2015 21:36:23
Stefan
Hi Sepp,
vielen Dank, es funktioniert soweit schon einmal gut. Aber die Werte die in Spalte A bis E stehen werden nicht weiter geschoben. Er soll schon eine ganze Zeile einfügen und den zugehörigen Wert aus Spalte E ebenfalls kopieren. Hätte ich vielleicht schon erwähnen sollen. Sorry!
MfG
Stefan

AW: Wert finden u Zeile einfügen nach bestimmten Wert
27.12.2015 22:01:32
Sepp
Hallo Stefan,
Sub Hallo()
Dim rngH As Range, rngM As Range
Dim strFirst As String

With ActiveSheet
  Set rngH = .Range("F:F").Find(What:="Hallo", LookIn:=xlValues, LookAt:=xlWhole, _
    MatchCase:=False, SearchFormat:=False, After:=.Cells(.Rows.Count, 6), _
    SearchDirection:=xlNext, SearchOrder:=xlByRows)
  If Not rngH Is Nothing Then
    strFirst = rngH.Address
    Do
      Set rngM = Nothing
      Set rngM = .Range("F:F").Find(What:="Montag", LookIn:=xlValues, LookAt:=xlWhole, _
        MatchCase:=False, SearchFormat:=False, After:=rngH)
      If Not rngM Is Nothing And rngM.Row > rngH.Row Then
        rngM.Offset(1, 0).EntireRow.Insert xlDown, xlFormatFromLeftOrAbove
        rngM.EntireRow.Copy .Cells(rngM.Row + 1, 1)
        rngM.Offset(1, 0) = "Storno Hallo"
      End If
      Set rngH = .Range("F:F").Find(What:="Hallo", LookIn:=xlValues, LookAt:=xlWhole, _
        MatchCase:=False, SearchFormat:=False, After:=rngH)
    Loop While Not rngH Is Nothing And strFirst <> rngH.Address
  End If
End With


Set rngH = Nothing
Set rngM = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Wert finden u Zeile einfügen nach bestimmten Wert
28.12.2015 20:38:21
Stefan
Hey Sepp,
das funktioniert, aber er kopiert mir die Werte Spalten A bis E von "Montag" und nicht von "Hallo" nach "Storno Hallo". Hast du dazu noch eine Idee, brauche die gleichen Werte wie in Zeile "Hallo".
Gruß
Stefan

AW: Wert finden u Zeile einfügen nach bestimmten Wert
28.12.2015 20:51:20
Sepp
Hallo Stefan,
ein bisschen selber nachdenken und man könnte auf die Lösung kommen!
Statt
rngM.EntireRow.Copy .Cells(rngM.Row + 1, 1)

einfach
rngH.EntireRow.Copy .Cells(rngM.Row + 1, 1)
Gruß Sepp

Anzeige
AW: Wert finden u Zeile einfügen nach bestimmten Wert
28.12.2015 21:11:45
Stefan
Danke Sepp,
funktioniert sehr gut. Vielen Dank nochmal.
Gruß
Stefan

184 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige