CALC: Daten von einem Tabellenblatt in ein anderes kopieren
Moderator: Moderatoren
CALC: Daten von einem Tabellenblatt in ein anderes kopieren
Hallo ihr Lieben
Ich wäre überglücklich, wenn mir wer helfen könnte
Ich habe eine Tabelle mit vielen Daten. Ein Tabellenblatt ist das Stammdatenblatt (Hersteller). Und aus diesem Datenblatt sollen die Hersteller auf die Saison Datenblätter (Datenblatt 2015_FS2015, Datenblatt HW2015.... usw) verteilt werden. Aber nur, WENN bei der jeweilgen Saison bzw Spalte ein X gesetzt ist.
In der angehängten Datei ist schon ein Marko drin, was auch so halbwegs funzt. Aber eben nur halbwegs. Kann da vielleicht ein Kenner mal drübergucken und mir sagen wo es hängt? bzw. ich weiß wo es hängt (nämlich an der zeilenangabe "z" und "i") Aber wenn ich das vom Tabellenanfang durchlaufen lasse, dann ist Calc 15min am arbeiten. Calc soll mir ja nicht jedes mal alle Hersteller verteilen, wenn man auf Hersteller verteilen drückt. Sondern nur, wenn am Ende der Tabelle ein neuer hinzugefügt wurde.
Für eure Hilfe wäre ich sehr dankbar. Ich hab auch schon alles durchgesucht aber nicht das passende gefunden.... Und ich hoffe ich habe mich einigermaßen verständlich ausgedrückt...
LG und vielen Dank schonmal
PS: Die angehängte Datei ist eine ziemlich abgespeckte Version meiner eigentlichen Datei, weil sie sonst zu groß gewesen wäre. Also nicht wundern, wenn sie ein bisschen komisch aussieht
Ich wäre überglücklich, wenn mir wer helfen könnte
Ich habe eine Tabelle mit vielen Daten. Ein Tabellenblatt ist das Stammdatenblatt (Hersteller). Und aus diesem Datenblatt sollen die Hersteller auf die Saison Datenblätter (Datenblatt 2015_FS2015, Datenblatt HW2015.... usw) verteilt werden. Aber nur, WENN bei der jeweilgen Saison bzw Spalte ein X gesetzt ist.
In der angehängten Datei ist schon ein Marko drin, was auch so halbwegs funzt. Aber eben nur halbwegs. Kann da vielleicht ein Kenner mal drübergucken und mir sagen wo es hängt? bzw. ich weiß wo es hängt (nämlich an der zeilenangabe "z" und "i") Aber wenn ich das vom Tabellenanfang durchlaufen lasse, dann ist Calc 15min am arbeiten. Calc soll mir ja nicht jedes mal alle Hersteller verteilen, wenn man auf Hersteller verteilen drückt. Sondern nur, wenn am Ende der Tabelle ein neuer hinzugefügt wurde.
Für eure Hilfe wäre ich sehr dankbar. Ich hab auch schon alles durchgesucht aber nicht das passende gefunden.... Und ich hoffe ich habe mich einigermaßen verständlich ausgedrückt...
LG und vielen Dank schonmal
PS: Die angehängte Datei ist eine ziemlich abgespeckte Version meiner eigentlichen Datei, weil sie sonst zu groß gewesen wäre. Also nicht wundern, wenn sie ein bisschen komisch aussieht
- Dateianhänge
-
- Bsp8.ods
- (78.13 KiB) 180-mal heruntergeladen
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
Hat denn keiner eine Idee zu meinem Problem?
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
es beschleunigt den Ablauf des Makros erheblich erst alle Werte in ein Array einzulesen und dann mit dem Array zu arbeiten, z.B. sinngemäß so hier:
hierbei sollten dann konsequenterweise aber auch noch die 'SChreibausgaben':
nicht direkt geschrieben werden sondern ihrerseits in einem Array gesammelt und das komplette Array am Ende in die Datei mittels .SetDataArray() geschrieben werden.
z ist entbehrlich wenn man die jeweils erste leere Zeile bestimmt, z.B.:
Gruß
Stephan
Code: Alles auswählen
z = 767
oDoc = ThisComponent
werte = oDoc.Sheets().getByName("Hersteller").getCellRangeByName("A3:J1500").getDataArray()
For i = 0 To UBOUND(werte())
tmp = werte(i)
If tmp(4) = "X" Then 'Spalte E
oDoc.Sheets().GetByName("Datenblatt 2015_FS2015").getCellRangeByName("B" & z),FormulaLocal = tmp(0)
z = z + 1
End If
Next i
Code: Alles auswählen
oDoc.Sheets().GetByName("Datenblatt 2015_FS2015").getCellRangeByName("B" & z),FormulaLocal = tmp(0)
z ist entbehrlich wenn man die jeweils erste leere Zeile bestimmt, z.B.:
Code: Alles auswählen
cur = ThisComponent.Sheets().GetByName("Datenblatt 2015_FS2015").createCursor
cur.GotoEndOfUsedArea(True)
letzte_zeile = cur.GetRangeAddress.EndRow
Stephan
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
Hallo Stephan
Ich weiß...es ist schon eine Ewigkeit her als du mir eine Antwort auf mein Problem geschrieben hattest. Ich hatte nur leider keine Zeit daran weiter zu arbeiten bzw. habe erstmal kleinere Baustellen in Angriff genommen.
Leider kenne ich mich mit Arrays so überhaupt nicht aus. Also noch weniger als überhaupt mit Makros Ich weiß, es ist hier nicht gern gesehen...aber könntest du mir vielleicht ein fertiges Makro zu meinem Problem schreiben? Ich habe keinen Plan wie ich das schreiben soll.
Mein Entwurf sieht jetzt so aus
Irgendwas macht LO auch, wenn ich es ausführe...aber es schreibt nix ans Ende der Tabelle. Es kommt auch keine Fehlermeldung. Und das Netz gibt in Sachen LO und Arrays nicht viel her
Schonmal VIELEN DANK im voraus
Gruß Katte
Ich weiß...es ist schon eine Ewigkeit her als du mir eine Antwort auf mein Problem geschrieben hattest. Ich hatte nur leider keine Zeit daran weiter zu arbeiten bzw. habe erstmal kleinere Baustellen in Angriff genommen.
Leider kenne ich mich mit Arrays so überhaupt nicht aus. Also noch weniger als überhaupt mit Makros Ich weiß, es ist hier nicht gern gesehen...aber könntest du mir vielleicht ein fertiges Makro zu meinem Problem schreiben? Ich habe keinen Plan wie ich das schreiben soll.
Mein Entwurf sieht jetzt so aus
Code: Alles auswählen
Sub Herstellerdaten_uebertragen
odoc = ThisComponent
cur = ThisComponent.Sheets().GetByName("Datenblatt 2015_FS2015").createCursor
cur.GotoEndOfUsedArea(True)
z = cur.GetRangeAddress.EndRow 'letzte_Zeile
werte = oDoc.Sheets().getByName("Hersteller").getCellRangeByName("A3:V1500").getDataArray()
For i = 0 To UBOUND(werte())
tmp = werte(i)
If tmp(4) = "X" Then 'Spalte E
oDoc.Sheets().GetByName("Datenblatt 2015_FS2015").getCellRangeByName("B" & z).FormulaLocal = tmp(0)
'z = z + 1
End If
Next i
End Sub
Schonmal VIELEN DANK im voraus
Gruß Katte
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
Dein Code schreibt einmalig in die nächsthöhere Zeile, das muss doch auffallen.Irgendwas macht LO auch, wenn ich es ausführe...aber es schreibt nix ans Ende der Tabelle.
der richtige Code ist:
Code: Alles auswählen
Sub Herstellerdaten_uebertragen
odoc = ThisComponent
cur = ThisComponent.Sheets().GetByName("Datenblatt 2015_FS2015").createCursor
cur.GotoEndOfUsedArea(True)
z = cur.GetRangeAddress.EndRow 'letzte_Zeile
werte = oDoc.Sheets().getByName("Tabelle1").getCellRangeByName("A3:V1500").getDataArray()
For i = 0 To UBOUND(werte())
tmp = werte(i)
If tmp(4) = "X" Then 'Spalte E
oDoc.Sheets().GetByName("Datenblatt 2015_FS2015").getCellRangeByName("B" & z+1).FormulaLocal = tmp(0)
z = z + 1
End If
Next i
End Sub
Stephan
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
Hallo Stephan
Sorry, dass es wieder was gedauert hat...hatte leider keine Zeit. Aber dafür jetzt reichlich
Ein Problem hab ich noch. Die Zeilenanzahl im Blatt "Hersteller" und "Datenblatt 2015_FS2015" stimmen nicht überein. Wenn ich im Blatt "Hersteller" einen neuen anlege wird er zB in Zeile 926 geschrieben, weil das das Ende der Tabelle ist und beim Übertragen in "Datenblatt 2015_FS2015" wird er auch in Zeile 926 geschrieben. Dort ist das Tabellenende aber 767. Wie sage ich LO, dass er auch das Tabellenende in im "Datenblatt 2015_FS2015" nimmt?
Danke schon mal
VG
Sorry, dass es wieder was gedauert hat...hatte leider keine Zeit. Aber dafür jetzt reichlich
Ein Problem hab ich noch. Die Zeilenanzahl im Blatt "Hersteller" und "Datenblatt 2015_FS2015" stimmen nicht überein. Wenn ich im Blatt "Hersteller" einen neuen anlege wird er zB in Zeile 926 geschrieben, weil das das Ende der Tabelle ist und beim Übertragen in "Datenblatt 2015_FS2015" wird er auch in Zeile 926 geschrieben. Dort ist das Tabellenende aber 767. Wie sage ich LO, dass er auch das Tabellenende in im "Datenblatt 2015_FS2015" nimmt?
Danke schon mal
VG
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
indem Du das Ende DIESES Datenblatts bestimmst, also:Wie sage ich LO, dass er auch das Tabellenende in im "Datenblatt 2015_FS2015" nimmt?
Code: Alles auswählen
odoc = ThisComponent
cur = ThisComponent.Sheets().GetByName("Datenblatt 2015_FS2015").createCursor
cur.GotoEndOfUsedArea(True)
z = cur.GetRangeAddress.EndRow
Code: Alles auswählen
odoc = ThisComponent
cur = ThisComponent.Sheets().GetByName("Hersteller").createCursor
cur.GotoEndOfUsedArea(True)
z = cur.GetRangeAddress.EndRow
Gruß
Stephan
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
aber das tu ich ja schon
So steht das auch in deinem Makro...trotzdem schreibt er in dem Tabellenblatt in die gleiche Zeile wie in dem Blatt der Hersteller.
Code: Alles auswählen
odoc = ThisComponent
cur = ThisComponent.Sheets().GetByName("Datenblatt 2015_FS2015").createCursor
cur.GotoEndOfUsedArea(True)
z = cur.GetRangeAddress.EndRow
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
und wie ich gerade festgestellt habe...werden alle hersteller aus dem Blatt "Hersteller" wirklich ans Ende der Tabelle geschrieben...alle 926. Eigentlich soll ja nur die letzte Zeile des Blatts "Hersteller" in die anderen Blätter in die letzte freie Zeile geschrieben werden. Denn das Ende der Tabelle ist weiter unten, weil da noch einige Formeln drin sind....da erkennt LO das wohl als Ende der Tabelle. Also muss ich LO sagen, dass es die letzte freie Zelle in Reihe B nehmen muss...oder?! Aber wie mach ich das?
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
was soll ich darauf antworten? Anhand des Codes, und einiger sinnvoller Annahmen wie der restliche Code ist, kann das nicht sein.aber das tu ich ja schon
Wenn es aber doch so ist, dann wirst Du wohl den kompletten Code posten müssen der diesen Fehler hervorbringt, denn nur so kann man die Ursache finden.
Gruß
Stephan
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
der komplette Code ist
Code: Alles auswählen
Sub Herstellerdaten_uebertragen
odoc = ThisComponent
cur = ThisComponent.Sheets().GetByName("Datenblatt 2015_FS2015").createCursor
cur.GotoEndOfUsedArea(True)
z = cur.GetRangeAddress.EndRow 'letzte_Zeile
werte = oDoc.Sheets().getByName("Tabelle1").getCellRangeByName("A3:V1500").getDataArray()
For i = 0 To UBOUND(werte())
tmp = werte(i)
If tmp(4) = "X" Then 'Spalte E
oDoc.Sheets().GetByName("Datenblatt 2015_FS2015").getCellRangeByName("B" & z+1).FormulaLocal = tmp(0)
z = z + 1
End If
Next i
End Sub
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
Hallo Katte,
Du arbeitest wohl mit LO (LibreOffice 4.4.2.2). Auch wenn LO einige Excel eigenarten übernommen hat, so ist dennoch solch eine Formel nicht wirklich empfehlenswert.
Denn da sind 2 Sachen in der SVERWEIS drin die unter umständen dir noch zusätzlich das Leben versauern können.
Die Formel ist in den 3 'Saison Datenblättern' in deiner abgespeckten Beispieldatei in der Spalte C.
1.
Das Suchkriterium ist eine Zelle und kein Zellbereich.
Also nicht
sondern
Natürlich könnte auch ein feststehendes Kriterium gesucht werden, asber hier geht es um eine Zelle.
2.
Auch wenn es funktioniert, so ist es dennoch empfehlenswert den 4. Parameter in der SVERWEIS einzutragen. Denn in LO funktioniert das, aber nicht in AOO.
Also nicht
sondern
Und dadurch wurde dann die gesamte Formel wie folgt aussehen.
Ach ja, noch etwas wichtiges, auch wenn es dir nicht gefallen wird.
Mach deine Datei noch mal komplett neu, bis auf die Makros. Denn Du überarbeitest eine wohl ehemalige Excel-Datei. Und von daher ist es besser wenn sie neu erstellt wird, da eventuelle Probleme sich einschleichen können, oder sich schon eingeschlichen haben (ist wohl nicht garantiert, aber Sicher ist Sicher). Und außerdem ist die Datei ja durch den Einsatz von StarBasic (Makro) so wie so nicht mehr zu 100% unter Excel lauffähig.
Und nun zu deinem Code, besser gesagt zu deinem Problem damit.
Wenn ich dich richtig verstehe, dann willst Du aus dem Blatt *Hersteller* den letzten Hersteller finden der gleichzeitig in der Spalte E den Marker X hat, um ihn dann auf das Blatt *Datenblatt 2015_FS2015* in die dortige erste freie Zelle nach der letzten benutzten Zelle zu kopieren.
Und wenn ich jetzt mal etwas weiter meine Gedanken freien Lauf lasse, möchtest Du im Endeffekt eigentlich viel lieber den letzten eingetragenen Hersteller in das, oder die 'Saison Datenblättern' automatisch verteilen lassen da ein Hersteller durchaus in mehreren Blättern eingetragen werden kann. Wobei die Kürzel für die 'Saison Datenblättern' in der Kopfzeile (Zeile 2) stehen. Und Du hattest dir bestimmt gedacht, wenn Du das mit dem gegebenen Beispiel für 2015 hinbekommst, dann könntest Du das für die anderen Blätter einfach dementsprechend anpassen. Und aus diesem Grude ist der Button im Blatt *Hersteller* auch mit "Hersteller verteilen" beschriftet.
Die einfachste Methode wäre wie folgt.
a) Im Blatt *Hersteller* den letzten Hersteller finden
b) anschließend schauen in welchen Zellen der gleichen Zeile in den Spalten D bis J ein X-Marker steht
c) wenn Marker gefunden, dann in dem dementsprechenden Blatt die letzte benutzte Zeile finden, und aus dem Blatt *Hersteller* den Hersteller in dieses Blatt in die nächste leere Zelle nach der letzten benutzten Zelle kopieren
d) da ja ein Hersteller in mehreren Blättern vertreten sein kann/darf, die Schritte b) und c) so lange wiederholen bis man in der letzten Spalte (J) angelangt ist.
Ich habe deine Beispieldatei auf 7 'Saison-Datenblätter' erweitert, da Du ja im Blatt *Hersteller* eigentlich auch 7 vorgegeben hast; Spalte D bis J. Und dadurch liese sich folgendes Makro erstellen.
Ist wohl nicht schön und könnte man auch noch etwas überarbeiten, aber es funktioniert so wie ich es eben bei den Punkten a) bis d) beschrieben habe.
W I C H T I G !!!!
Die 'Saison-Datenblätter' müssen VOR dem Blatt *Hersteller* stehen! Also auf keinem Fall dahinter. Und außerdem müssen sie noch momentan mit der Reihenfolge der Spalten D bis J übereinstimmen.
Würde in der Zeile 2 die exakt gleichen Namen stehen wie in den Blattregistern (oder umgekehrt), dann könnte man das Makro noch etwas sicherer schreiben. Denn so besteht die Gefahr, das wenn man ein Blatt aus versehen verschiebt, die richtigen Daten in das falsche Blatt übertragen werden. Oder man müsste mein Makro dementsprechend kompliziert umschreiben, wozu ich jetzt keine Lust hatte.
Ach ja, beinahe vergessen.
Drücke auf den Button im Blatt *Hersteller*, und schon wird der dort als letzter eingetragene Hersteller auf 2 Blätter aufgeteilt. Das geht sehr schnell , mit einer Rückmeldung. Du kannst aber auch mehr als 2 Blätter auswählen, einfach in den Spalten D bis J einen X-Marker setzen.
Viel Spaß damit
Gruß
balu
Du arbeitest wohl mit LO (LibreOffice 4.4.2.2). Auch wenn LO einige Excel eigenarten übernommen hat, so ist dennoch solch eine Formel nicht wirklich empfehlenswert.
Code: Alles auswählen
=WENN('Datenblatt 2016_FS2016'.B4="";"";SVERWEIS('Datenblatt 2016_FS2016'.$B$4:$B$1493;$Hersteller.$A$3:$C$1505;3; ))
Die Formel ist in den 3 'Saison Datenblättern' in deiner abgespeckten Beispieldatei in der Spalte C.
1.
Das Suchkriterium ist eine Zelle und kein Zellbereich.
Also nicht
Code: Alles auswählen
SVERWEIS('Datenblatt 2016_FS2016'.$B$4:$B$1493;$Hersteller.$A$3:$C$1505;3; ))
Code: Alles auswählen
SVERWEIS('Datenblatt 2016_FS2016'.$B4;$Hersteller.$A$3:$C$1505;3; ))
2.
Auch wenn es funktioniert, so ist es dennoch empfehlenswert den 4. Parameter in der SVERWEIS einzutragen. Denn in LO funktioniert das, aber nicht in AOO.
Also nicht
Code: Alles auswählen
SVERWEIS('Datenblatt 2016_FS2016'.$B4;$Hersteller.$A$3:$C$1505;3; ))
Code: Alles auswählen
SVERWEIS('Datenblatt 2016_FS2016'.$B4;$Hersteller.$A$3:$C$1505;3;0))
Und dadurch wurde dann die gesamte Formel wie folgt aussehen.
Code: Alles auswählen
=WENN('Datenblatt 2016_FS2016'.B4="";"";SVERWEIS('Datenblatt 2016_FS2016'.$B4;$Hersteller.$A$3:$C$1505;3;0))
Ach ja, noch etwas wichtiges, auch wenn es dir nicht gefallen wird.
Mach deine Datei noch mal komplett neu, bis auf die Makros. Denn Du überarbeitest eine wohl ehemalige Excel-Datei. Und von daher ist es besser wenn sie neu erstellt wird, da eventuelle Probleme sich einschleichen können, oder sich schon eingeschlichen haben (ist wohl nicht garantiert, aber Sicher ist Sicher). Und außerdem ist die Datei ja durch den Einsatz von StarBasic (Makro) so wie so nicht mehr zu 100% unter Excel lauffähig.
Und nun zu deinem Code, besser gesagt zu deinem Problem damit.
Wenn ich dich richtig verstehe, dann willst Du aus dem Blatt *Hersteller* den letzten Hersteller finden der gleichzeitig in der Spalte E den Marker X hat, um ihn dann auf das Blatt *Datenblatt 2015_FS2015* in die dortige erste freie Zelle nach der letzten benutzten Zelle zu kopieren.
Und wenn ich jetzt mal etwas weiter meine Gedanken freien Lauf lasse, möchtest Du im Endeffekt eigentlich viel lieber den letzten eingetragenen Hersteller in das, oder die 'Saison Datenblättern' automatisch verteilen lassen da ein Hersteller durchaus in mehreren Blättern eingetragen werden kann. Wobei die Kürzel für die 'Saison Datenblättern' in der Kopfzeile (Zeile 2) stehen. Und Du hattest dir bestimmt gedacht, wenn Du das mit dem gegebenen Beispiel für 2015 hinbekommst, dann könntest Du das für die anderen Blätter einfach dementsprechend anpassen. Und aus diesem Grude ist der Button im Blatt *Hersteller* auch mit "Hersteller verteilen" beschriftet.
Die einfachste Methode wäre wie folgt.
a) Im Blatt *Hersteller* den letzten Hersteller finden
b) anschließend schauen in welchen Zellen der gleichen Zeile in den Spalten D bis J ein X-Marker steht
c) wenn Marker gefunden, dann in dem dementsprechenden Blatt die letzte benutzte Zeile finden, und aus dem Blatt *Hersteller* den Hersteller in dieses Blatt in die nächste leere Zelle nach der letzten benutzten Zelle kopieren
d) da ja ein Hersteller in mehreren Blättern vertreten sein kann/darf, die Schritte b) und c) so lange wiederholen bis man in der letzten Spalte (J) angelangt ist.
Ich habe deine Beispieldatei auf 7 'Saison-Datenblätter' erweitert, da Du ja im Blatt *Hersteller* eigentlich auch 7 vorgegeben hast; Spalte D bis J. Und dadurch liese sich folgendes Makro erstellen.
Code: Alles auswählen
Sub Main
Dim odoc as Object, oBlattHersteller as Object, oSucheBlatt as Object
Dim sSucheBlattName as String
odoc = ThisComponent
oBlattHersteller = odoc.Sheets().GetByName("Hersteller")
'------------------------------------------------------------------------------
With oBlattHersteller
x = .Columns(0).queryEmptyCells() 'Spalte A
iEndeQuelle = x(x.Count-1).RangeAddress.StartRow-1
End With
'------------------------------------------------------------------------------
for i = 3 to 9
if oBlattHersteller.getCellByPosition(i, iEndeQuelle ).string = "X" then
sSucheBlattName = odoc.Sheets.ElementNames(i-3)
oSucheBlatt = odoc.Sheets.GetByName( sSucheBlattName )
With oSucheBlatt
x = .Columns(1).queryEmptyCells() 'Spalte B
iEndeZiel = x(x.Count-1).RangeAddress.StartRow+1
End With
oSucheBlatt.getCellRangeByName( "B" & iEndeZiel ).string = oBlattHersteller.getCellByPosition( 0, iEndeQuelle ).string
end if
'------------------------------------------------------------------------------
next i
'------------------------------------------------------------------------------
print "Fäddisch :-)))"
End Sub
W I C H T I G !!!!
Die 'Saison-Datenblätter' müssen VOR dem Blatt *Hersteller* stehen! Also auf keinem Fall dahinter. Und außerdem müssen sie noch momentan mit der Reihenfolge der Spalten D bis J übereinstimmen.
Würde in der Zeile 2 die exakt gleichen Namen stehen wie in den Blattregistern (oder umgekehrt), dann könnte man das Makro noch etwas sicherer schreiben. Denn so besteht die Gefahr, das wenn man ein Blatt aus versehen verschiebt, die richtigen Daten in das falsche Blatt übertragen werden. Oder man müsste mein Makro dementsprechend kompliziert umschreiben, wozu ich jetzt keine Lust hatte.
Ach ja, beinahe vergessen.
Drücke auf den Button im Blatt *Hersteller*, und schon wird der dort als letzter eingetragene Hersteller auf 2 Blätter aufgeteilt. Das geht sehr schnell , mit einer Rückmeldung. Du kannst aber auch mehr als 2 Blätter auswählen, einfach in den Spalten D bis J einen X-Marker setzen.
Viel Spaß damit
Gruß
balu
- Dateianhänge
-
- Bsp8-v_0.2.ods
- (127.33 KiB) 144-mal heruntergeladen
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
Hallo balu
Das ist ja der Wahnsinn Ich danke dir erstmal für die Mühe, die du dir gemacht hast. Ich werde mich da morgen mal dran setzen und deine Ratschläge versuchen umzusetzen. Ich hab ein bisschen Ahnung von Excel bzw hier LibreOffice...aber im Vergleich zu euch Profis ist das wahrscheinlich lächerlich
Wahrscheinlich melde ich mich morgen noch mal mit jeder Menge Fragen
Ich danke dir schon mal wie verrückt
Schönen Abend noch
LG Katte
Das ist ja der Wahnsinn Ich danke dir erstmal für die Mühe, die du dir gemacht hast. Ich werde mich da morgen mal dran setzen und deine Ratschläge versuchen umzusetzen. Ich hab ein bisschen Ahnung von Excel bzw hier LibreOffice...aber im Vergleich zu euch Profis ist das wahrscheinlich lächerlich
--- Ich habe schon mal eine ähnliche Datei entworfen, aber da andere damit arbeiten müssen, die so gar keine Ahnung von Excel haben, wollte ich das vereinfachen und habe zwar noch mal komplett neu angefangen aber das Grundgerüst der alten Datei verwendet. Die Datei, die ich hier als Beispiel hochgeladen habe, ist ja nur ein kleiner Schnipsel von der eigentlichen. Das ist mittlerweile ein Mörderding und einigen würden wahrscheinlich die Haare zu Berge stehen, wenn sie die Formeln und Makros sehen Aber bis jetzt funzt das alles....bis auf dieses "Herstellerproblem" Was auch schon das Problem in der alten Version war.Denn Du überarbeitest eine wohl ehemalige Excel-Datei.
--- seit heute hab ich LO 5.0.0.5 oder so. Aber vorher war es 4.4.2.2. Was ich LO schon verflucht habe...es raubt mir manchmal den letzten Nerv.Du arbeitest wohl mit LO (LibreOffice 4.4.2.2).
--- was ist AOO?Denn in LO funktioniert das, aber nicht in AOO.
Wahrscheinlich melde ich mich morgen noch mal mit jeder Menge Fragen
Ich danke dir schon mal wie verrückt
Schönen Abend noch
LG Katte
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
Hallo Katte,
Gute Nacht
balu
Der Profi hier ist Stephan. Ich bin nur ein kleiner fortgeschrittener Anfänger.aber im Vergleich zu euch Profis
Freut mich wirklich zu hören. Danke dafür.Das ist ja der Wahnsinn Ich danke dir erstmal für die Mühe, die du dir gemacht hast.
ApacheOpenOffice. Das ist ferner der reguläre Nachfolger von OpenOffice.org (OO.o).--- was ist AOO?
Tu das ruhig. Ich weiß blos nicht ob ich dir dann aus Zeitgründen helfen kann, können auch andere.Wahrscheinlich melde ich mich morgen noch mal mit jeder Menge Fragen
Gute Nacht
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden
Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren
Hallo balu
Ich habe mich als erstes mal deinem Code gewidmet. Jetzt hab ich nur das Problem....ich weiß nicht wie bzw wo ich angebe, in welche Tabellenblätter der Hersteller verteilt werden soll. Ich habe in meiner eigentlichen Datei 12 Tabellenblätter, die für die "Saisons" sind. Von Position 11 bis 22. In dem Blatt Hersteller werden die Saisons von Spalte E bis V eingetragen. also in LO-Sprache 4 to 22
Kannst du mir an dem Makro vielleicht noch erklären was welche Zeile für einen Sinn hat?! Damit ich das besser verstehen kann?
Und eigentlich müssten die Hersteller dann auch noch auf Tabellenblätter für die Teams aufgeteilt werden (Textil (Blatt , Parts (Blatt 5), Equipment (Blatt 3)) anhand der Spalte C im Blatt Hersteller. Wie gesagt, das ist wirklich nur ein Ausschnitt von meiner eigentlichen Datei. Und ich dachte wirklich, wenn man mir einen Denkanstoß gibt und ich das auch noch verstehe, dann kann ich den Rest alleine machen Will ja nicht alles jemand anderen machen lassen, möchte ja auch was lernen dabei Aber manchmal ist das mit den Makros gar nicht so einfach...zu mal man im Netz auch nicht vieles findet.
Danke schon mal und viele Grüße
Katte
Ich habe mich als erstes mal deinem Code gewidmet. Jetzt hab ich nur das Problem....ich weiß nicht wie bzw wo ich angebe, in welche Tabellenblätter der Hersteller verteilt werden soll. Ich habe in meiner eigentlichen Datei 12 Tabellenblätter, die für die "Saisons" sind. Von Position 11 bis 22. In dem Blatt Hersteller werden die Saisons von Spalte E bis V eingetragen. also in LO-Sprache 4 to 22
Kannst du mir an dem Makro vielleicht noch erklären was welche Zeile für einen Sinn hat?! Damit ich das besser verstehen kann?
Stephan hat mir mit meinem Porjekt auch schon sehr viel weiter geholfen und ich bin ihm da auch sehr dankbar. Aber fortgeschrittene Anfänger können den nicht so weit fortschrittenen Anfängern wie mich (vor allem was Makros angeht) manchmal einige Sachen besser erklären.Der Profi hier ist Stephan. Ich bin nur ein kleiner fortgeschrittener Anfänger.
du hast den Nagel auf den Kopf getroffenWenn ich dich richtig verstehe, dann willst Du aus dem Blatt *Hersteller* den letzten Hersteller finden der gleichzeitig in der Spalte E den Marker X hat, um ihn dann auf das Blatt *Datenblatt 2015_FS2015* in die dortige erste freie Zelle nach der letzten benutzten Zelle zu kopieren.
Und wenn ich jetzt mal etwas weiter meine Gedanken freien Lauf lasse, möchtest Du im Endeffekt eigentlich viel lieber den letzten eingetragenen Hersteller in das, oder die 'Saison Datenblättern' automatisch verteilen lassen da ein Hersteller durchaus in mehreren Blättern eingetragen werden kann. Wobei die Kürzel für die 'Saison Datenblättern' in der Kopfzeile (Zeile 2) stehen. Und Du hattest dir bestimmt gedacht, wenn Du das mit dem gegebenen Beispiel für 2015 hinbekommst, dann könntest Du das für die anderen Blätter einfach dementsprechend anpassen. Und aus diesem Grude ist der Button im Blatt *Hersteller* auch mit "Hersteller verteilen" beschriftet.
Und eigentlich müssten die Hersteller dann auch noch auf Tabellenblätter für die Teams aufgeteilt werden (Textil (Blatt , Parts (Blatt 5), Equipment (Blatt 3)) anhand der Spalte C im Blatt Hersteller. Wie gesagt, das ist wirklich nur ein Ausschnitt von meiner eigentlichen Datei. Und ich dachte wirklich, wenn man mir einen Denkanstoß gibt und ich das auch noch verstehe, dann kann ich den Rest alleine machen Will ja nicht alles jemand anderen machen lassen, möchte ja auch was lernen dabei Aber manchmal ist das mit den Makros gar nicht so einfach...zu mal man im Netz auch nicht vieles findet.
Danke schon mal und viele Grüße
Katte