Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1432to1436
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

Zeile einfügen nach jeder Hauptposition

Zeile einfügen nach jeder Hauptposition
01.07.2015 09:10:26
Jürgen
Hallo Leute
Wieder mal ein kleines Problem wo ich nicht hinbekomme.
Hab einige Codes gefunden und probiert, aber keinen hinbekommen der mir die abfrage macht und dann noch die zellen einfärbt
Ich habe eine Tabelle da muss ich immer von Hand nach jeder Hauptposition eine Zeile einfügen und Grau füllen.
Allerdings nervt das langsam da es meistens an die 30 zeilen sind.
Gibt es eine Möglichkeit dies mittel Commandbutton auszulösen?
In Spalte B stehen alle Positionsnummern,die erste Nummer ist die Hauptposition
01/001
01/002
02/001
02/002
02/003
.
.
.
Spalte A-AC müsste das ganze grau eingefärbt werden
Hat da jemand eine Idee?
Danke für eure Hilfe
mfg
Jürgen

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile einfügen nach jeder Hauptposition
01.07.2015 09:55:45
Michael
Hallo Jürgen!
Geht bspw. so:
Sub Trennzeile()
Dim i As Long
Dim zEnde As Long
zEnde = Worksheets("Tabelle1").Range("B1").End(xlDown).Row
For i = zEnde To 2 Step -1
If Left(Worksheets("Tabelle1").Cells(i, 2).Value, 2)  _
Left(Worksheets("Tabelle1").Cells(i - 1, 2).Value, 2) Then
Worksheets("Tabelle1").Rows(i).EntireRow.Insert
Worksheets("Tabelle1").Range(Cells(i, 1), Cells(i, 29)).Interior.Color = _
RGB(190, 190, 190)
End If
Next i
End Sub
Nachdem Du keine weiteren Angaben geliefert hast, musst Du den Code für Deine Tabelle vermutlich noch etwas anpassen --> "Tabelle1" musst Du mit Deinem Tabellenblatt-Namen ersetzen; außerdem gehe ich davon aus, dass Du ab B1 gleich die Daten stehen hast, ohne Überschrift. Hast Du in Zeile 1 noch eine Überschrift, müsstest Du [For i = zEnde To 2 Step -1] auf [For i = zEnde To 3 Step -1] tauschen.
Das kannst Du natürlich auch mit einer Schaltfläche auslösen lassen. Passt?
LG
Michael

Anzeige
AW: Zeile einfügen nach jeder Hauptposition
01.07.2015 10:07:12
Jürgen
Hallo Michael
Vielen Dank
Klappt wunderbar echt geil, hast mir den Tag gerettet.
mfg
Jürgen

Gerne, Danke für die Rückmeldung! LG Michael owT
01.07.2015 10:43:00
Michael
.

AW: Zeile einfügen nach jeder Hauptposition
04.07.2015 17:01:31
Jürgen
Hallo Leute
Michael hat mir ja ein geilen Code gebastelt der super funktioniert.
Jetzt ist nur ein Problem aufgetaucht, wenn man das makro ausgeführt hat und dann noch was ergänzt wird funktioniert es nicht mehr.
Meine Frage:
Wäre es möglich wenn schon eine leere zeile nach der Hauptposition existiert, das diese eingefärbt wird wenn nicht dann soll sie eingefügt werden. ich hab maximal 600 ausgefüllte zeilenm in dennen was stehen kann.
Hier der Code
Private Sub CommandButton3_Click() ' Zeilen einfügen
Dim i As Long
Dim zEnde As Long
zEnde = Worksheets("DATENBANK").Range("B1").End(xlDown).Row
For i = zEnde To 3 Step -1
If Left(Worksheets("DATENBANK").Cells(i, 2).Value, 2)  _
Left(Worksheets("DATENBANK").Cells(i - 1, 2).Value, 2) Then
Worksheets("DATENBANK").Rows(i).EntireRow.Insert
Worksheets("DATENBANK").Range(Cells(i, 1), Cells(i, 29)).Interior.Color = _
RGB(150, 150, 150)
End If
Next i
End Sub
Danke für eure Hilfe
mfg
Jürgen

Anzeige
AW: Zeile einfügen nach jeder Hauptposition
05.07.2015 17:45:36
Michael
Hallo zusammen,
nachdem mein freundlicher Namensvetter nicht am Platz ist, habe ich mir Deinen Code kurz vorgenommen:
Private Sub CommandButton3_Click() ' Zeilen einfügen
Dim i As Long
Dim zEnde As Long
Dim zeile_leer As Boolean
zEnde = Worksheets("DATENBANK").Range("B" & Rows.Count).End(xlUp).Row
For i = zEnde To 3 Step -1
zeile_leer = Worksheets("DATENBANK").Cells(i, 2).Value = ""
If zeile_leer Then
Worksheets("DATENBANK").Range(Cells(i, 1), Cells(i, 29)).Interior.Color = _
RGB(150, 150, 150)
i = i - 1                   ' gleich eine Zeile weiter springen
Else
If Left(Worksheets("DATENBANK").Cells(i, 2).Value, 2)  _
Left(Worksheets("DATENBANK").Cells(i - 1, 2).Value, 2) And _
Worksheets("DATENBANK").Cells(i - 1, 2).Value  "" Then
Worksheets("DATENBANK").Rows(i).EntireRow.Insert
Worksheets("DATENBANK").Range(Cells(i, 1), Cells(i, 29)).Interior.Color = _
RGB(150, 150, 150)
End If
End If
Next i
End Sub
Dazu gibt es zu sagen:
a) es scheint mit ein paar Testdaten zu tun
b) die Variable zeile_leer wurde deshalb eingeführt, da es sein könnte, daß Du das Kriterium in der Zuweisung dieser Variablen ändern möchtest: es wird nur die Spalte B abgefragt, man könnte aber auch abfragen, ob die komplette Zeile leer ist - aber nicht bei der Hitze!
c) ich habe die Ermittlung von zEnde geändert: wenn Leerzeilen vorhanden sind, kommst Du mit Deinem alten Code nämlich *nicht* an die unterste, befüllte Zeile, sondern nur bis zu nächsten Leerzeile.
d) die Verschachtelung der IFs ist nicht gerade genial, aber es ist zu heiß für eine klare Logik
Grundsätzlich finde ich es vorteilhafter, unterschiedliche Informationen in unterschiedliche Spalten zu schreiben, also etwa A: 01,02 usw. und B:100,200 usw. Das hat den Vorteil, daß man nämlich die Spalten nach beiden Kriterien sortieren kann, und wenn sie denn sortiert sind, kann man den ganzen Vorgang mit etwas anderer Optik, aber ggf. automatischen Berechnungen versehen, nämlich mit "Teilergebnissen".
Schöne Grüße,
Michael

Anzeige
AW: Zeile einfügen nach jeder Hauptposition
05.07.2015 18:20:42
Gerd
Hallo Jürgen!
Private Sub CommandButton3_Click() ' Zeilen einfügen
Dim i As Long
With Worksheets("DATENBANK")
For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 3 Step -1
If Left(.Cells(i, 2).Value, 2)  _
Left(.Cells(i - 1, 2).Value, 2) Then
If WorksheetFunction.CountBlank(.Rows(i)) = .Columns.Count Then
.Range(.Cells(i, 1), .Cells(i, 29)).Interior.Color = RGB(150, 150, 150)
Else
.Rows(i).EntireRow.Insert
End If
End If
Next i
End With
End Sub
Gruß Gerd

AW: Zeile einfügen nach jeder Hauptposition
06.07.2015 05:12:14
Jürgen
Hallo Gerd
Hallo Michael
@ Gerd
Danke für den Code er funktioniert nur nicht so wie ich wollte, er fügt trotzdem immer eine Zeile ein färbt diese aber nicht mehr ein. Danke für deine Mühe aber Michael hat es genau getroffen
@Michael
Danke genau das wollte ich jetzt funktioniert er super, vielen vielen Dank
mfg
Jürgen

Anzeige
freut mich, danke für die Rückmeldung und
06.07.2015 18:12:33
Michael
schöne Grüße rundrum,
Michael

Am Wochenende bin ich selten bis nie im Forum...
06.07.2015 09:01:35
Michael
Hallo Jürgen,
... aber viele andere schon - super, dass Dir schon geholfen wurde!
@ andere Helfer: Danke für's "Einspringen" in den Faden!
LG
Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige