Zahlen in Zahlenfolge hinzufügen
Moderator: Moderatoren
-
- **
- Beiträge: 34
- Registriert: Sa, 24.03.2018 14:38
Re: Zahlen in Zahlenfolge hinzufügen
Super, jetzt verstehe ich. Dankeschön!
-
- **
- Beiträge: 34
- Registriert: Sa, 24.03.2018 14:38
Re: Zahlen in Zahlenfolge hinzufügen
Ich hatte gestern Abend noch selber versucht eine eigene Lösung zu finden.
Ich habe die Zahlen in eine Zelle gepackt und durch Suchen & Ersetzen die Zahlen 12 und 21 ausgetauscht.
Suche 12 ersetze durch 122, suche 21 ersetze durch 211.
Das hat wunderbar geklappt! Allerdings bekomme ich nun die Zahlen die in dieser Zelle sind nicht mehr in eine Spalte.
Dadurch das es sich hierbei um 60.000 Zahlen handelt, kann ich Transponieren nicht verwenden, da es zu wenig Spalten sind.
Im Anhang findet ihr diese Zahlen, nicht wundern. Das x habe ich als Trenner genutzt.
Auch wenn ich schon eine Lösung habe, würde mich das interessieren. Jemand eine Idee?
Ich habe die Zahlen in eine Zelle gepackt und durch Suchen & Ersetzen die Zahlen 12 und 21 ausgetauscht.
Suche 12 ersetze durch 122, suche 21 ersetze durch 211.
Das hat wunderbar geklappt! Allerdings bekomme ich nun die Zahlen die in dieser Zelle sind nicht mehr in eine Spalte.
Dadurch das es sich hierbei um 60.000 Zahlen handelt, kann ich Transponieren nicht verwenden, da es zu wenig Spalten sind.
Im Anhang findet ihr diese Zahlen, nicht wundern. Das x habe ich als Trenner genutzt.
Auch wenn ich schon eine Lösung habe, würde mich das interessieren. Jemand eine Idee?
- Dateianhänge
-
- Zelle.ods
- (9.66 KiB) 61-mal heruntergeladen
Re: Zahlen in Zahlenfolge hinzufügen
Moin,
habe dir ein kurzes Makro geschrieben:
Gruß R
habe dir ein kurzes Makro geschrieben:
Code: Alles auswählen
Sub S_INSERT_NUMBERS
oSheet = ThisComponent.Sheets.Getbyname("Tabelle1")
oRange1 = oSheet.getcellrangebyName("K1:K10")
oRange2 = oSheet.getcellrangebyName("L1:L10")
oRangeTarget = oSheet.Columns.getbyName("M")
nCounter = 0
For i = 0 to uBound(oRange1.data)
oRangeTarget.getCellByPosition(0,nCounter+i).Value = oRange1.getCellByPosition(0,i).Value
if oRange2.getCellByPosition(0,i).Value > 0 then
nCounter = nCounter+1
oRangeTarget.getCellByPosition(0,nCounter+i).Value = oRange2.getCellByPosition(0,i).Value
endif
next i
End Sub
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
-
- **
- Beiträge: 34
- Registriert: Sa, 24.03.2018 14:38
Re: Zahlen in Zahlenfolge hinzufügen
Hallo R,
ich nutze zum ersten Mal ein Makro. Ziemlich cool! Vielen Dank
ich nutze zum ersten Mal ein Makro. Ziemlich cool! Vielen Dank
Re: Zahlen in Zahlenfolge hinzufügen
Moin,
was bedeutet "Ziemlich cool!" Hast du es schon mit deinen 60000 Zeilen ausprobiert?
Wohl nicht, denn es gibt eine Fehlermeldung.
Daher habe ich das Makro weiter verbessert:Nicht ungeduldig werden, bei mir läuft es über 60000 Zeilen etwa 66 Sekunden, kann je nach Rechner mehr oder weniger werden.
Gruß R
was bedeutet "Ziemlich cool!" Hast du es schon mit deinen 60000 Zeilen ausprobiert?
Wohl nicht, denn es gibt eine Fehlermeldung.
Daher habe ich das Makro weiter verbessert:
Code: Alles auswählen
Sub S_INSERT_NUMBERS
dim i as long
t1 = Getsystemticks()
oSheet = ThisComponent.Sheets.Getbyname("Tabelle1")
oRange1 = oSheet.getcellrangebyName("K1:K60000")
oRange2 = oSheet.getcellrangebyName("L1:L60000")
oRangeTarget = oSheet.Columns.getbyName("M")
nCounter = 0
For i = 0 to oRange1.rows.Count -1
oRangeTarget.getCellByPosition(0,nCounter+i).Value = oRange1.getCellByPosition(0,i).Value
if oRange2.getCellByPosition(0,i).Value > 0 then
nCounter = nCounter+1
oRangeTarget.getCellByPosition(0,nCounter+i).Value = oRange2.getCellByPosition(0,i).Value
endif
next i
t2 = Getsystemticks()
msgbox "Fertig, Dauer: " & (t2-t1)/1000 &" s"
End Sub
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Zahlen in Zahlenfolge hinzufügen
Moin,
und nochmal verbessert, das folgende Makro läuft bei mir in 2,8 s durch 60000 Zeilen.
Beispiel anbei.
Damit das Makro laufen darf, stellst du unter Extras/Einstellungen/OpenOffice/Sicherheit/Makrosicherheit oder Extras/Optionen/LibreOffice/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.
Gruß R
und nochmal verbessert, das folgende Makro läuft bei mir in 2,8 s durch 60000 Zeilen.
Code: Alles auswählen
Sub S_INSERT_NUMBERS
dim i as long
t1 = Getsystemticks()
oSheet = ThisComponent.Sheets.Getbyname("Tabelle1")
oRange1 = oSheet.getcellrangebyName("K1:K60000")'hier den zu untersuchenden Bereich eintragen
oRange1data = oRange1.dataarray
oRange2 = oSheet.getcellrangebyName("L1:L60000")'hier den zu untersuchenden Bereich eintragen
oRange2data = oRange2.dataarray
oRangeTarget = oSheet.getcellrangebyName("M1:M120000")'Doppelt so lang wie Spalte K
oRangeTargetdata = oRangeTarget.dataarray
nCounter = 0
For i = 0 to oRange1.rows.Count -1
oRangeTargetdata(nCounter+i)(0)= oRange1data(i)(0)
if oRange2data(i)(0) <> "" then
nCounter = nCounter+1
oRangeTargetdata(nCounter+i)(0) = oRange2data(i)(0)
endif
next i
oRangeTarget.SetDataarray(oRangeTargetdata)
t2 = Getsystemticks()
msgbox "Fertig, Dauer: " & (t2-t1)/1000 &" s"
End Sub
Damit das Makro laufen darf, stellst du unter Extras/Einstellungen/OpenOffice/Sicherheit/Makrosicherheit oder Extras/Optionen/LibreOffice/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.
Gruß R
- Dateianhänge
-
- Nummern_einfügen.ods
- (208.62 KiB) 67-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
-
- **
- Beiträge: 34
- Registriert: Sa, 24.03.2018 14:38
Re: Zahlen in Zahlenfolge hinzufügen
Mit den 60.000 Zahlen hatte ich es noch nicht probiert, nur mit 10 Zahlen zum Testen.
Das fande ich schon cool
Vielen vielen Dank R, das schaue ich mir in Ruhe später an.
Erstmal was essen
Das fande ich schon cool
Vielen vielen Dank R, das schaue ich mir in Ruhe später an.
Erstmal was essen
-
- **
- Beiträge: 34
- Registriert: Sa, 24.03.2018 14:38
Re: Zahlen in Zahlenfolge hinzufügen
Hallo R,
bei mir hat es auch 2,8 Sekunden gedauert. Echt Klasse wie das funktioniert!
Ich bin begeistert.
Nun habe ich leider ein weiteres Problem. Ich würde mich freuen, wenn du mir nochmal hilfst.
Für Spalte K gab es für jede Zelle ein passendes Datum. Dadurch das ja nun Zahlen aber hinzugekommen sind und sich alles verschiebt, fehlt mir dieses Datum in der neuen Zahlenfolge. Im Anhang findest du meine Tabelle.
bei mir hat es auch 2,8 Sekunden gedauert. Echt Klasse wie das funktioniert!
Ich bin begeistert.
Nun habe ich leider ein weiteres Problem. Ich würde mich freuen, wenn du mir nochmal hilfst.
Für Spalte K gab es für jede Zelle ein passendes Datum. Dadurch das ja nun Zahlen aber hinzugekommen sind und sich alles verschiebt, fehlt mir dieses Datum in der neuen Zahlenfolge. Im Anhang findest du meine Tabelle.
- Dateianhänge
-
- Zahlenfolge Renko.ods
- (300.93 KiB) 60-mal heruntergeladen
Re: Zahlen in Zahlenfolge hinzufügen
Moin,
so geht es, die Daten (Mehrzahl von Datum) werden in Spalte I eingesetzt:
Gruß R
so geht es, die Daten (Mehrzahl von Datum) werden in Spalte I eingesetzt:
Code: Alles auswählen
Sub S_INSERT_NUMBERS
dim i as long
t1 = Getsystemticks()
oSheet = ThisComponent.Sheets.Getbyname("Sheet1")
oDataSourceRange = oSheet.getcellrangebyName("H1:H60000")'hier den zu untersuchenden Bereich eintragen
oDataTargetRange = oSheet.getcellrangebyName("I1:I120000")'Doppelt so lang
oDataRangeSourcedata = oDataSourceRange.dataarray
oDataRangeTargetdata = oDataTargetRange.dataarray
oRange1 = oSheet.getcellrangebyName("K1:K60000")'hier den zu untersuchenden Bereich eintragen
oRange1data = oRange1.dataarray
oRange2 = oSheet.getcellrangebyName("L1:L60000")'hier den zu untersuchenden Bereich eintragen
oRange2data = oRange2.dataarray
oRangeTarget = oSheet.getcellrangebyName("M1:M120000")'Doppelt so lang wie Spalte K
oRangeTargetdata = oRangeTarget.dataarray
nCounter = 0
For i = 0 to oRange1.rows.Count -1
oRangeTargetdata(nCounter+i)(0)= oRange1data(i)(0)
oDataRangeTargetdata(nCounter+i)(0) = oDataRangeSourcedata(i)(0)
if oRange2data(i)(0) <> "" then
nCounter = nCounter+1
oRangeTargetdata(nCounter+i)(0) = oRange2data(i)(0)
oDataRangeTargetdata(nCounter+i)(0) = oDataRangeSourcedata(i)(0)
endif
next i
oRangeTarget.SetDataarray(oRangeTargetdata)
oDataTargetRange.SetDataarray(oDataRangeTargetdata)
t2 = Getsystemticks()
msgbox "Fertig, Dauer: " & (t2-t1)/1000 &" s"
End Sub
- Dateianhänge
-
- Zahlenfolge Renko F3K.ods
- (201.63 KiB) 60-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
-
- **
- Beiträge: 34
- Registriert: Sa, 24.03.2018 14:38
Re: Zahlen in Zahlenfolge hinzufügen
Perfekt. Ich danke dir !