online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Mr.Smooth vom 26.01.2021, 15:11 Options

Mit Makro Zeilen an bestimmter Stelle einfügen!

Hallo, ich bin auf der Suche nach einem Makro, welches mir eine Abfrage ausführt und dann an dieser bestimmten stelle eine Leerzeile einfügt.
suche Zeile in Spalte B mit dem Wert "2.01" und füge oberhalb dieser Zeile eine Leerzeile ein!

Vielen Dank im Voraus!


Antwort schreiben

Antwort 1 von fedjo vom 26.01.2021, 18:31 Options

Hallo Mr.Smooth
vielleicht hilft dir das Makro.

Gruß
fedjo

Option Explicit
Sub Suchen()
Dim strSuch As String, lngAnz As Long
strSuch = "2.01"
lngAnz = WorksheetFunction.CountIf(Columns(2), strSuch)
Columns(2).Find(what:=strSuch, LookIn:=xlValues, MatchCase:=False).EntireRow.Insert
End Sub

Antwort 2 von Mr.Smooth vom 27.01.2021, 08:31 Options

Hallo Fedjo,

erstmal vielen Dank für Deine schnelle Antwort.

Wenn ich Deine Lösung Ausführe wird nur in der ersten Zeile eine Leerzeile eingefügt. Was muss ich einfügen, um das gesamte Arbeitsblatt (1421 Zeilen) zubearbeiten?

Viele Grüße

Mr. Smooth

Antwort 3 von nighty vom 27.01.2021, 13:25 Options

hi all

wie gewuenscht

gruss nighty

Sub einfuegen()
    Dim zaehler As Long
    ReDim BereichA(Cells(Rows.Count, 1).End(xlUp).Row, 1) As Variant
    BereichA() = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    For zaehler = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        If BereichA(zaehler, 1) = "2.01" Then
            Rows(zaehler & ":" & zaehler).Insert Shift:=xlDown
        End If
    Next zaehler
End Sub

Antwort 4 von nighty vom 27.01.2021, 13:28 Options

hi all :-)

ups

hier fuer spalte b ^^

gruss nighty

Sub einfuegen()
    Dim zaehler As Long
    ReDim BereichA(Cells(Rows.Count, 2).End(xlUp).Row, 1) As Variant
    BereichA() = Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row)
    For zaehler = 1 To Cells(Rows.Count, 2).End(xlUp).Row
        If BereichA(zaehler, 1) = "2.01" Then
            Rows(zaehler & ":" & zaehler).Insert Shift:=xlDown
        End If
    Next zaehler
End Sub

Antwort 5 von Mr.Smooth vom 27.01.2021, 15:10 Options

Hi, dir auch vielen Dank für die schnelle Antwort.

Das Ergebnis der Ausführung ist nicht eindeutig. Mal fügt es unter der Zeile 2.01 eine Leerzeile ein, mal oberhalb der Zeile 2.01 und an anderer Stelle sehr willkürlich.


Die Tabelle sieht wie folgt aus:
Spalte A = 1
Spalte B = 0001
Spalte C = Kaliumdichromat 0,5% vas
Spalte D = 1
Spalte E = 2.01

1 0001 Kaliumdichromat 0,5% vas 1 2.01
................................................................................2 2.02
benötigte Leerzeile
2 0001/1 Kaliumdichromat 0,25% vas 1 2.01
................................................................................2 2.02
benötigte Leerzeile
3 0003 Thiuram Mix [A] 1% vas 1 2.01
.................................................................................2 2.02
.................................................................................3 2.03
.................................................................................4 2.04
.................................................................................5 2.05
benötigte Leerzeile
4 0003/1 Thiuram Mix [B] 1,25% vas 1 2.01
.................................................................................2 2.02
.................................................................................3 2.03
.................................................................................4 2.04
.................................................................................5 2.05
.................................................................................6 2.06
benötigte Leerzeile
5 0004 Neomycinsulfat 20% vas 1 2.01
..................................................................................2 2.02

Jeweils oberhalb der Zeile "2.01" benötige ich eine Leerzeile!

Vielen Dank Ihr seid mir eine große Hilfe!

Mr.Smooth

Antwort 6 von nighty vom 27.01.2021, 17:10 Options

hi all :-)

ups

gruss nighty

Sub einfuegen()
    Dim zaehler As Long
    ReDim BereichA(Cells(Rows.Count, 2).End(xlUp).Row, 1) As Variant
    BereichA() = Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row)
    For zaehler = Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1
        If BereichA(zaehler, 1) = "2.01" Then
            Rows(zaehler & ":" & zaehler).Insert Shift:=xlDown
            zaehler = zaehler - 1
        End If
    Next zaehler
End Sub

Antwort 7 von Mr.Smooth vom 27.01.2021, 23:32 Options

Tausend Dank nighty, du hast mir ne Menge Arbeit erspart. Die Lösung funktioniert hervorragend.

Viele Grüße

Mr. Smooth

Antwort 8 von nighty vom 28.01.2021, 06:48 Options

hi all :-)

fedjo seine loesung ist aber auch gut ,nur bisl langsamer :-)

daher ist dieses beispiel fuer fedjo,eine dynamische schleife

gruss nighty

Option Explicit
Sub Suchen()
    Dim suche As Range
    Dim zaehler As Long
    zaehler = 1
    Do
        Set suche = Workbooks(1).Worksheets(1).Range("A" & zaehler & ":A" & Workbooks(1).Worksheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row).Find("2.01")
        If Not suche Is Nothing Then
            Rem etwas gefunden
            zaehler = suche.Row + 1
        Else
            Rem nicht gefunden
            Exit Do
        End If
    Loop
End Sub

Antwort 9 von nighty vom 28.01.2021, 07:02 Options

hi all :-)

treffer waere dann

cells(suche.row,suche.column)

gruss nighty

Ähnliche Themen

Makro - Zeilen einfügen mit Spaltenbegrenzung
Orcman  13.08.2007 - 31 Hits - 6 Antworten

Zeilen einfügen
ala  02.04.2008 - 117 Hits - 8 Antworten

Makro: bestimmte Zeilen immer wieder einfügen
PierreHamburg  07.09.2008 - 40 Hits - 4 Antworten

Makro für Löschung Duplukate unter bestimmter Bedingung
Mona1980  17.01.2009 - 93 Hits - 4 Antworten

Einfügen von Werten wenn bestimmter Text in Zelle
Nordsee-Nacken  20.01.2009 - 108 Hits - 8 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026