HERBERS Excel-Forum - das Archiv

Thema: Sportfest optimieren durch Makro?

Sportfest optimieren durch Makro?
Fibonacci144
A: Schülerliste mit vier Spalten: Klasse (z.B. 5a), Name, Vorname, Sex
B: neues Mappe = Schreibliste: mehrere Reiter (5a_m, 5a_w, 5b_m, 5b_w, usw.)

Können die Daten aus A in die einzelnen Reiter von B gelangen? Ohne copy & paste ;-) Leider meine aktuelle Variante ;-(

Anmerkung: Die Anzahl der Jungs bzw. Mädchen einer Klasse ist variabel (bis zu 20 Zeilen pro Reiter)

Ich bin gespannt wie ein "Flitzebogen", ob mein erster Beitrag ausreichend formuliert wurde.

LG
AW: Sportfest optimieren durch Makro?
ReginaR
Hi,
Antwort auf Dene Frage: Ja! geht!

Rückfrage: Makro erlaubt? Beispielmappe?

VG Regina
AW: Sportfest optimieren durch Makro?
Fibonacci144
Ich würde gerne eine Datei uploaden. Allein, sie wird mir nicht angezeigt. Keine Leerzeichen im Namen, 36 kb. Abgelegt direkt unter C:\

Makro erlaubt? Ja.
AW: Sportfest optimieren durch Makro?
Fibonacci144
Der Upload mit einem anderen Browser hat geklappt. Danke an RPP63 und Onur ;-)

https://www.herber.de/bbs/user/170756.xlsx
AW: Sportfest optimieren durch Makro?
Onur
Ja, aber eine Datei alleine wird nix bringen.
AW: Sportfest optimieren durch Makro?
Fibonacci144
Hier die Ursprungsdatei mit vier Spalten:

https://www.herber.de/bbs/user/170757.xlsx
AW: Sportfest optimieren durch Makro?
Onur
Dafür müsste idealerweise der Blattname irgendwo auf dem Blättern stehen. Ist das ok?
AW: Sportfest optimieren durch Makro?
Uduuh
Hallo,
in ein Modul:
Option Explicit


Sub KlassenErstellen()
Dim objKlassen As Object, oObj
Dim vntDaten, vntOUT, vntTmp, i As Long
Dim strKey As String
Dim wks As Worksheet
Set objKlassen = CreateObject("scripting.dictionary")
vntDaten = Sheets(1).Cells(1, 1).CurrentRegion

For i = 2 To UBound(vntDaten)
objKlassen(vntDaten(i, 1) & "_" & vntDaten(i, 4)) = 0
Next

For i = 2 To UBound(vntDaten)
strKey = vntDaten(i, 1) & "_" & vntDaten(i, 4)
objKlassen(strKey) = objKlassen(strKey) & "|" & vntDaten(i, 2) & "#" & vntDaten(i, 3)
Next

For Each oObj In objKlassen
vntTmp = Split(objKlassen(oObj), "|")
ReDim vntOUT(1 To UBound(vntTmp), 1 To 2)
vntOUT(1, 1) = "Name"
vntOUT(1, 2) = "Vorname"

For i = 2 To UBound(vntTmp)
vntOUT(i, 1) = Split(vntTmp(i), "#")(0)
vntOUT(i, 2) = Split(vntTmp(i), "#")(1)
Next i

On Error Resume Next
Set wks = Worksheets(oObj)
On Error GoTo 0
If wks Is Nothing Then Set wks = Worksheets.Add(after:=Sheets(Sheets.Count))

With wks
.Cells(1, 1) = oObj
.Cells(1, 1).Font.Bold = True
.Cells(3, 1).Resize(UBound(vntOUT), 2) = vntOUT
.Name = oObj
End With

Next oObj

End Sub

Gruß aus'm Pott
Udo
AW: Sportfest optimieren durch Makro?
Fibonacci144
Werde ich mir morgen ansehen und dann eine Rückmeldung geben. Erstmal: Danke und Grüße in den Pott ;-)
AW: Sportfest optimieren durch Makro?
Fibonacci144
Moin Udo,

ich habe dein Modul kopiert und in 170757.xlsx eingefügt (Alt+F11, usw.), dann gespeichert (mit Makro), habe aber keinen Output. Da ich wirklich noch nie mit einem Modul gearbeitet habe, kann ich mir leider auch gar nicht vorstellen, was ich zu erwarten habe. Danach habe ich dein Modul noch in 170759 eingefügt. Wieder kein sichtbares Ergebnis.

Da mir die Lösung von Onur genügt, verbleibe ich mit echter Dankbarkeit für deinen Einsatz und wünsche dir einen wunderbaren Start in die Woche.

LG
AW: Sportfest optimieren durch Makro?
Fibonacci144
Selbstverständlich ;-) Danke für deine Mühe.
AW: Sportfest optimieren durch Makro?
Eifeljoi 5
Hallo

Anbei mein Vorschlag als PQ/ Pivot Lösung, da ich eine no go Mensch für das verteilen auf mehrere Register bin.
https://www.herber.de/bbs/user/170758.xlsx
AW: Sportfest optimieren durch Makro?
Onur
Der Blattname muss immer in M3 stehen.
Einfach die Formel jeweils in B6 kopieren (vorher 3x Dateiname in der Formel anpassen).
https://www.herber.de/bbs/user/170759.xlsx
AW: Sportfest optimieren durch Makro?
Fibonacci144
Ich werde mir das morgen ansehen. Schreibe jetzt von einem anderen Rechner. Herzlichen Dank für die Unterstützung ;-)
Gerne !
Onur
AW: Gerne !
Fibonacci144
Lieber Onur, deine Idee mit der LET-Funktion und den Verknüpfungen klappt großartig ;-) Ganz herzlichen Dank!

Auf dem Dienstrechner meiner Kollegen ist leider Excel 2019 (statt 365 Business), weshalb nur ich von deinem Wissen profitieren kann. Stand heute = völlig ausreichend. Trotzdem die Frage, könnte ich deine Eingabe (also in B6) für meine Kollegen anpassen?

Ich wünsche dir einen wunderbaren Start in die Woche.
AW: Gerne !
Onur
So sollte es als Notlösung auch bei 2019 klappen (ist zwar ungefiltert, aber da wird ja eh nix manuell eingetragen).
https://www.herber.de/bbs/user/170769.xlsx
Wie gehabt, Pfad und Dateiname anpassen.
Die Formeln in den blauen Zellen ggf als Arrayformeln abschliessen.
AW: Gerne !
Onur
Die Formeln in N, O und Q könnte man, statt in jedes Blat, in EIN separates Blatt schreiben, dann müsste die Formel in B6 entsprechend angepasst werden (Blattnamen mitangeben).
AW: Gerne !
Fibonacci144
Eine Solche Lösung hatte ich ursprünglich selbst. Die ist nicht stabil.
Deine Lösung über LET ist spitze. Kannte ich nicht. Ich kann die Dateien verschieben und umbenennen, trotzdem läuft alles wie am Schnürchen ;-)

Besten Dank
AW: Sportfest optimieren durch Makro?
Eifeljoi 5
Hallo

Ich bin der Meinung dazu benötigt man kein VBA.
Außerdem dem fehlt wie in den meisten Fällen die Beispieldatei und das Wunschergebnis.
AW: Sportfest optimieren durch Makro?
Fibonacci144
Ich würde gerne eine Datei uploaden. Allein, sie wird mir nicht angezeigt. Keine Leerzeichen im Namen, 36 kb. Abgelegt direkt unter C:\
Dateiupload
RPP63
Moin!
Du musst unter Dateityp im Auswahldialog "Alle Dateien *.*" auswählen, dann werden Dir auch die .xls* angezeigt.
Ist ein kleiner Bug der Forensoftware.

Gruß Ralf
AW: Dateiupload
Onur
Liegt wohl eher am Rechner (Mac ?) bzw Webbrowsersoftware (Edge ?).
AW: Dateiupload
Onur
Hast wohl Recht, die Kombi aus Webbrowser und Bug.
Bei Firefox passiert das nie. und bei Edge nur bei Herber.