Hilfe beim erweitern eines Markos welches Zeilen einfügt

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Dennis2077
Beiträge: 4
Registriert: Do, 30.03.2017 16:06

Hilfe beim erweitern eines Markos welches Zeilen einfügt

Beitrag von Dennis2077 »

Hallo,

ich bräuchte Hilfe bei einem Makro, das genau folgendes tut:

Es werden alle Zeilen in Tabelle1 durchsucht.
Es wird geprüft, ob die aktuelle Zeile einen Nullwert in Spalte I hat. Falls nein, wird unter der aktuellen Zeile eine Zeile eingefügt und die Spalten A, I und M kopiert von der aktuellen Zeile in die neu geschaffene Zeile kopiert. Dann wird mit der nächsten Zeile weitergemacht (Natürlich nicht die Zeile, die grade angefügt wurde.)

Ich habe schon ein Makro gefunden, welches Leerzeilen einfügt aber es war mir nicht möglich, es zu erweitern.

Gruß
Dennis

Code: Alles auswählen

Sub S_insert_rows
    osheet = thiscomponent.sheets.getbyname("Tabelle1")
    orows = osheet.rows
    ocursor = osheet.createcursor
    ocursor.gotoendofusedarea(False)
    nrow = ocursor.rangeaddress.endrow
    for i = nrow to 1 step -1
        orows.insertbyindex(i,1)      
    next i
End Sub
Zuletzt geändert von Dennis2077 am Di, 04.04.2017 07:48, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Hilfe beim erweitern eines Markos welches Zeilen einfügt

Beitrag von Stephan »

Es werden alle Zeilen in Tabelle1 durchsucht.
Es wird geprüft, ob die aktuelle Zeile einen Nullwert in Spalte I hat. Falls nein, wird unter der aktuellen Zeile eine Zeile eingefügt
das folgende Makro tut das:

Code: Alles auswählen

Sub S_insert_rows
 osheet = thiscomponent.sheets.getbyname("Tabelle1")
 orows = osheet.rows
 ocursor = osheet.createcursor
 ocursor.gotoendofusedarea(False)
 nrow = ocursor.rangeaddress.endrow
 j = nrow
 for i = 0 To j
	 If thiscomponent.sheets.getbyname("Tabelle1").getCellByPosition(8,i).Value <> 0 Then
		 orows.insertbyindex(i+1,1) 
		 i = i + 1
		 j = j + 1
	 End If
 next i
 End Sub
Hinweis: das Makro ist nicht sehr schnell, falls viele Zeilen zu bearbeiten sind müsste man das anders programmieren, momentan wollte ich das nicht tun weil es für Dich mutmaßlich so wie es jetzt ist leichter zu verstehen ist.
und die Spalten A, I und M kopiert
Wohin denn?
Dann wird mit der nächsten Spalte weitergemacht (Natürlich nicht die Spalte, die grade angefügt wurde.)
?
Gerade eingefügt wurde eine Zeile, warum ist jetzt plötzlich von Spalte die Rede? Ich könnte ja mutmaßen es geht doch um Zeilen, aber vielleicht ist genau da falsch weil es die ganze Zeit um Spalten geht, dann wäre auch obiges Makro ungeeignet.


Gruß
Stephan
Dennis2077
Beiträge: 4
Registriert: Do, 30.03.2017 16:06

Re: Hilfe beim erweitern eines Markos welches Zeilen einfügt

Beitrag von Dennis2077 »

und die Spalten A, I und M kopiert
In die aktuelle eere Zeile, die grade eingefügt wurde.
Gerade eingefügt wurde eine Zeile, warum ist jetzt plötzlich von Spalte die Rede? Ich könnte ja mutmaßen es geht doch um Zeilen, aber vielleicht ist genau da falsch weil es die ganze Zeit um Spalten geht, dann wäre auch obiges Makro ungeeignet.
Natürlich meinte ich Zeile, da hab ich mich vertippt.

Weshalb ich das geschrieben habe -> Weil ja in die Spalte kopiert wird. Sonst wird die erste Zeile, wo das I greift ewig weiterkopiert.

Vielen Dank schonmal für das Macro!
Antworten