CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Katte
**
Beiträge: 23
Registriert: Mo, 04.05.2015 11:13

CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Katte »

Hallo ihr Lieben

Ich wäre überglücklich, wenn mir wer helfen könnte :D

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
Katte
**
Beiträge: 23
Registriert: Mo, 04.05.2015 11:13

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Katte »

Hat denn keiner eine Idee zu meinem Problem? :(
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Stephan »

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:

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
hierbei sollten dann konsequenterweise aber auch noch die 'SChreibausgaben':

Code: Alles auswählen

oDoc.Sheets().GetByName("Datenblatt 2015_FS2015").getCellRangeByName("B" & z),FormulaLocal = tmp(0)
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.:

Code: Alles auswählen

cur = ThisComponent.Sheets().GetByName("Datenblatt 2015_FS2015").createCursor
cur.GotoEndOfUsedArea(True)
letzte_zeile = cur.GetRangeAddress.EndRow
Gruß
Stephan
Katte
**
Beiträge: 23
Registriert: Mo, 04.05.2015 11:13

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Katte »

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

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
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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Stephan »

Irgendwas macht LO auch, wenn ich es ausführe...aber es schreibt nix ans Ende der Tabelle.
Dein Code schreibt einmalig in die nächsthöhere Zeile, das muss doch auffallen.

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
Gruß
Stephan
Katte
**
Beiträge: 23
Registriert: Mo, 04.05.2015 11:13

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Katte »

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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Stephan »

Wie sage ich LO, dass er auch das Tabellenende in im "Datenblatt 2015_FS2015" nimmt?
indem Du das Ende DIESES Datenblatts bestimmst, also:

Code: Alles auswählen

odoc = ThisComponent
cur = ThisComponent.Sheets().GetByName("Datenblatt 2015_FS2015").createCursor
cur.GotoEndOfUsedArea(True)
z = cur.GetRangeAddress.EndRow
wohingegen das Ende des anderen Datenblattes ("Hersteller") ja wäre:

Code: Alles auswählen

odoc = ThisComponent
cur = ThisComponent.Sheets().GetByName("Hersteller").createCursor
cur.GotoEndOfUsedArea(True)
z = cur.GetRangeAddress.EndRow

Gruß
Stephan
Katte
**
Beiträge: 23
Registriert: Mo, 04.05.2015 11:13

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Katte »

aber das tu ich ja schon

Code: Alles auswählen

odoc = ThisComponent
cur = ThisComponent.Sheets().GetByName("Datenblatt 2015_FS2015").createCursor
cur.GotoEndOfUsedArea(True)
z = cur.GetRangeAddress.EndRow
So steht das auch in deinem Makro...trotzdem schreibt er in dem Tabellenblatt in die gleiche Zeile wie in dem Blatt der Hersteller. :?:
Katte
**
Beiträge: 23
Registriert: Mo, 04.05.2015 11:13

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Katte »

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?
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Stephan »

aber das tu ich ja schon
was soll ich darauf antworten? Anhand des Codes, und einiger sinnvoller Annahmen wie der restliche Code ist, kann das nicht sein.

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
Katte
**
Beiträge: 23
Registriert: Mo, 04.05.2015 11:13

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Katte »

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
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von balu »

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.

Code: Alles auswählen

=WENN('Datenblatt 2016_FS2016'.B4="";"";SVERWEIS('Datenblatt 2016_FS2016'.$B$4:$B$1493;$Hersteller.$A$3:$C$1505;3; ))
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

Code: Alles auswählen

SVERWEIS('Datenblatt 2016_FS2016'.$B$4:$B$1493;$Hersteller.$A$3:$C$1505;3; ))
sondern

Code: Alles auswählen

SVERWEIS('Datenblatt 2016_FS2016'.$B4;$Hersteller.$A$3:$C$1505;3; ))
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

Code: Alles auswählen

SVERWEIS('Datenblatt 2016_FS2016'.$B4;$Hersteller.$A$3:$C$1505;3; ))
sondern

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
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 :D, 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 :D
Katte
**
Beiträge: 23
Registriert: Mo, 04.05.2015 11:13

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Katte »

Hallo balu

Das ist ja der Wahnsinn :D 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 :o
Denn Du überarbeitest eine wohl ehemalige Excel-Datei.
--- 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 ;) :D Aber bis jetzt funzt das alles....bis auf dieses "Herstellerproblem" Was auch schon das Problem in der alten Version war.
Du arbeitest wohl mit LO (LibreOffice 4.4.2.2).
--- 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.
Denn in LO funktioniert das, aber nicht in AOO.
--- was ist AOO?

Wahrscheinlich melde ich mich morgen noch mal mit jeder Menge Fragen :D

Ich danke dir schon mal wie verrückt

Schönen Abend noch
LG Katte
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von balu »

Hallo Katte,
aber im Vergleich zu euch Profis
Der Profi hier ist Stephan. Ich bin nur ein kleiner fortgeschrittener Anfänger.

Das ist ja der Wahnsinn :D Ich danke dir erstmal für die Mühe, die du dir gemacht hast.
Freut mich wirklich zu hören. Danke dafür.

--- was ist AOO?
ApacheOpenOffice. Das ist ferner der reguläre Nachfolger von OpenOffice.org (OO.o).

Wahrscheinlich melde ich mich morgen noch mal mit jeder Menge Fragen
Tu das ruhig. Ich weiß blos nicht ob ich dir dann aus Zeitgründen helfen kann, können auch andere.



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 :D
Katte
**
Beiträge: 23
Registriert: Mo, 04.05.2015 11:13

Re: CALC: Daten von einem Tabellenblatt in ein anderes kopieren

Beitrag von Katte »

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?! :D Damit ich das besser verstehen kann?
Der Profi hier ist Stephan. Ich bin nur ein kleiner fortgeschrittener Anfänger.
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.
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.
du hast den Nagel auf den Kopf getroffen :D

Und eigentlich müssten die Hersteller dann auch noch auf Tabellenblätter für die Teams aufgeteilt werden (Textil (Blatt 8), 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 :D 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
Antworten