hmm habe noch ein kleines problemchen.. habe eine sehr große liste mit rohrleitungsnr. die alle in der spalte a stehen will nu die liste übersichtlicher machen indem wenn zb in zeile 28 eine neue rohrleitungsnr anfängt eine leere zeile eingefügt wird. und das solange text in spalte a steht.
das müste man doch irgendwie mit einem vergleich in spalte a. und dann immer weiter vergleichen und jedesmal wenn ein neuer text in spalte a steht eine leerzeile einfügen.
ist sowas aufwendig in basic?
gruß gunnar
der übersicht wegen.. zeile einfügen.
Moderator: Moderatoren
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Zeilen einfügen
Ich gehe davon aus, dass in der Spalte A (Rohrleitungsnummer) ein numerischer Wert steht. Z.B.
1
1
1
2
2
3
3 u.s.w.
mit dem folgenden Code wird bei einer neuen Nummer eine Leerzeile eingefügt, falls keine vorhanden ist. Das Makro läuft bis zum Antreffen von zwei Leerzeilen.
sub RohrNummern
dim merknr as long
dim zeile as long
doc=thiscomponent
rn=doc.sheets(0)
zeile=1
merknr=rn.getcellbyposition(0,zeile).value
do until merknr = 0
if rn.getcellbyposition(0,zeile).value > 0 and rn.getcellbyposition(0,zeile).value <> merknr then
rn.rows.insertbyindex(zeile,1)
zeile = zeile + 1
merknr=rn.getcellbyposition(0,zeile).value
else
zeile = zeile + 1
end if
if rn.getcellbyposition(0,zeile).value = 0 then merknr = rn.getcellbyposition(0,zeile + 1).value
loop
end sub
Probiers mal aus.
Gruß, Friedhelm
1
1
1
2
2
3
3 u.s.w.
mit dem folgenden Code wird bei einer neuen Nummer eine Leerzeile eingefügt, falls keine vorhanden ist. Das Makro läuft bis zum Antreffen von zwei Leerzeilen.
sub RohrNummern
dim merknr as long
dim zeile as long
doc=thiscomponent
rn=doc.sheets(0)
zeile=1
merknr=rn.getcellbyposition(0,zeile).value
do until merknr = 0
if rn.getcellbyposition(0,zeile).value > 0 and rn.getcellbyposition(0,zeile).value <> merknr then
rn.rows.insertbyindex(zeile,1)
zeile = zeile + 1
merknr=rn.getcellbyposition(0,zeile).value
else
zeile = zeile + 1
end if
if rn.getcellbyposition(0,zeile).value = 0 then merknr = rn.getcellbyposition(0,zeile + 1).value
loop
end sub
Probiers mal aus.
Gruß, Friedhelm
nein das geht leider net... setzt keine leerzeilen.. aber das liegt vielleicht dran das die rohrnr. zb wie folgt heißen:
42B221-CIPV-01-H05-50
42B221-CIPV-01-H05-50
42B221-CIPV-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-02-H05-40
42B411-VEW-02-H05-40
42B411-VEW-02-H05-40
42B411-VEW-02-H05-40
42B411-VEW-02-H05-40
42P222-CIPR-01-H05-40
42P222-CIPR-01-H05-40
42P222-CIPR-01-H05-40
42B221-CIPV-01-H05-50
42B221-CIPV-01-H05-50
42B221-CIPV-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-01-H05-50
42B411-VEW-02-H05-40
42B411-VEW-02-H05-40
42B411-VEW-02-H05-40
42B411-VEW-02-H05-40
42B411-VEW-02-H05-40
42P222-CIPR-01-H05-40
42P222-CIPR-01-H05-40
42P222-CIPR-01-H05-40
es gibt wenigstens keine fehlermeldung aber es fügt eine leerzeile nach der anderen ohne aufzuhören. aber ich hoffe das ich es richtig umgesetzt habe das makro lautet jetzt:
sub RohrNummern
dim merknr as long
dim zeile as long
doc=thiscomponent
rn=doc.sheets(0)
zeile=1
merknr=rn.getcellbyposition(0,zeile).string
do until merknr = 0
if rn.getcellbyposition(0,zeile).string <>"" and rn.getcellbyposition(0,zeile).string <> merknr then
rn.rows.insertbyindex(zeile,1)
zeile = zeile + 1
merknr=rn.getcellbyposition(0,zeile).string
else
zeile = zeile + 1
end if
if rn.getcellbyposition(0,zeile).string = 0 then merknr = rn.getcellbyposition(0,zeile + 1).string
loop
end sub
sub RohrNummern
dim merknr as long
dim zeile as long
doc=thiscomponent
rn=doc.sheets(0)
zeile=1
merknr=rn.getcellbyposition(0,zeile).string
do until merknr = 0
if rn.getcellbyposition(0,zeile).string <>"" and rn.getcellbyposition(0,zeile).string <> merknr then
rn.rows.insertbyindex(zeile,1)
zeile = zeile + 1
merknr=rn.getcellbyposition(0,zeile).string
else
zeile = zeile + 1
end if
if rn.getcellbyposition(0,zeile).string = 0 then merknr = rn.getcellbyposition(0,zeile + 1).string
loop
end sub
Hallo Gunnar
Sorry, das umschreiben auf Textformat ist doch etwas schwieriger, folgendes sollte laufen:
Gruß Karo
Sorry, das umschreiben auf Textformat ist doch etwas schwieriger, folgendes sollte laufen:
Code: Alles auswählen
sub RohrNummern
dim z as long
doc=thiscomponent
rn=doc.sheets(0)
z = 0
do until rn.getcellbyposition(0,z).string = ""
z = z + 1
loop
z = z - 1
for z = z to 1 step (-1)
if rn.getcellbyposition(0,z).string <> rn.getcellbyposition(0,z-1).string then
rn.rows.insertbyindex(z,1)
end if
next z
end sub
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Hallo ihr,
ich melde mich hier noch mal kurz zu Wort. Der von mir erstellte Code auf String-Bearbeitung umgebaut sieht wie folgt aus:
sub RohrNummern
dim merknr as string
dim zeile as long
doc=thiscomponent
rn=doc.sheets(0)
zeile=1
merknr=rn.getcellbyposition(0,zeile).string
do until merknr = ""
if rn.getcellbyposition(0,zeile).string <> "" and rn.getcellbyposition(0,zeile).string <> merknr then
rn.rows.insertbyindex(zeile,1)
zeile = zeile + 1
merknr=rn.getcellbyposition(0,zeile).string
else
zeile = zeile + 1
end if
if rn.getcellbyposition(0,zeile).string = "" then merknr = rn.getcellbyposition(0,zeile + 1).string
loop
end sub
Der Vorteil dieser Variante liegt darin, dass es hier ohne Probleme möglich ist, den Code mehrfach über die Tabelle laufen zu lassen und es werden auch nachträglich angefügte Zeilen (also hinter einem bereits strukturierten Teil) noch in das gewünschte Format gebracht.
Gruß, Friedhelm
ich melde mich hier noch mal kurz zu Wort. Der von mir erstellte Code auf String-Bearbeitung umgebaut sieht wie folgt aus:
sub RohrNummern
dim merknr as string
dim zeile as long
doc=thiscomponent
rn=doc.sheets(0)
zeile=1
merknr=rn.getcellbyposition(0,zeile).string
do until merknr = ""
if rn.getcellbyposition(0,zeile).string <> "" and rn.getcellbyposition(0,zeile).string <> merknr then
rn.rows.insertbyindex(zeile,1)
zeile = zeile + 1
merknr=rn.getcellbyposition(0,zeile).string
else
zeile = zeile + 1
end if
if rn.getcellbyposition(0,zeile).string = "" then merknr = rn.getcellbyposition(0,zeile + 1).string
loop
end sub
Der Vorteil dieser Variante liegt darin, dass es hier ohne Probleme möglich ist, den Code mehrfach über die Tabelle laufen zu lassen und es werden auch nachträglich angefügte Zeilen (also hinter einem bereits strukturierten Teil) noch in das gewünschte Format gebracht.
Gruß, Friedhelm