BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Makro auf allen Tabellenblättern

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
BlinkyBill
Beiträge: 5
Registriert: Mi 14. Nov 2018, 21:00

Makro auf allen Tabellenblättern

Beitrag von BlinkyBill » Do 15. Nov 2018, 13:01

Nach vielen zerkauten Bleistiften, Halsschmerzen vom vielen Fluchen, hab ich jetzt schon mal den ersten Schritt geschafft.
Wenn ich Neue Namen eintrage bei "Jahresübersicht" sortiert es sich automatisch nach Alphabet.
Dass es um auf der Januar Tabelle zu aktualisieren Alt-F8 zu drücken ist zwar nervig aber schon mal besser als vorher.
Jetzt aber noch das Problem. Es wird nur auf der "Jan." Liste übernommen die Neuen Namen.
Es soll aber in allen 12 Monaten

Das ist der bisherige Code:

Sub KopiereBereich()
Dim Quelltab As Worksheet
Dim Zieltab As Worksheet
Dim Zelle As Range
Dim Zaehler As Long
Zaehler = 6
Bereich = "A4:A10000"
Set Quelltab = ActiveWorkbook.Worksheets("Jahresübersicht")
Set Zieltab = ActiveWorkbook.Worksheets("Jan.")
For Each Zelle In Quelltab.Range("A4:A10000")
Zieltab.Cells(Zaehler, 1) = Zelle
Zaehler = Zaehler + 1
Next Zelle
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("A1:A100")) Is Nothing Then


Range("A4:AL10000").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
Range("A1").Select

End If

End Sub



Was muss ich machen, damit der neue Neue Name in allen 12 Monaten erscheint und auch Sortiert ist.
Und wenn mir jetzt noch jemand sagen kann was man machen muss damit sich die Manuell eingetragnen Urlaubs Tage "U" ebenfalls mtisortieren.
Habt ihr mir das "Leben gerettet" ;-)
Dateianhänge
Kopie von Test Jahresübersicht Makro.xlsm
(99.29 KiB) 187-mal heruntergeladen

Helmut_S
Beiträge: 692
Registriert: Di 9. Feb 2016, 19:27

Re: Makro auf allen Tabellenblättern

Beitrag von Helmut_S » Fr 16. Nov 2018, 15:45

Hallo BlinkyBill, also ich glaube du hast da zwei mal die richtige Haustüre verfehlt. Du präsentierst uns da ein Excel-Makro, das noch nicht wie gewünscht arbeitet. Erfreulich ist, dass Libreoffice-Calc mittlerweile einigermaßen mit Excel-Makro-Code umgehen kann. Was heißt, dass dein erstes Makro "Kopiere Bereich" unter LO (6.1.3) sogar macht was es soll: einen neuen Namen in Spalte A korrekt einsortieren und auch beim Löschen desselben die Spalte A wieder neu sortiert. Das hast du ja perfekt gemacht.
Aktualisieren und Starten des 2. Makros "Worksheet_Change" mit Alt-F8 geht mit LO schon von der Tastenkombination her (standardmäßig) nicht und manuelles Starten ergibt einen Laufzeitfehler!
Also stellt sich die Frage: Willst du Unterstützung für dein Excel-Makro? Wenn ja, dann bist du in einem Excel-Forum besser aufgehoben.
Möchtest du, dass dir jemand deine Excel-Makros nach Starbasic übersetzt? Dann solltest du vielleicht deine Frage im LO-Unterforum Libreoffice-Programmierung stellen.
Du schreibst, dass dein Makro nach Drücken der Tastenkombination Alt+F8 nur die Tabelle Jan. aktualisiert. Wenn ich mir diese Code-Zeile anschaue, fällt mir auf, dass hier nur das Tabellenblatt "Jan." angesprochen wird. Möglicherweise ließe sich das mit einer "for-next" Schleife auf alle 12 Monats-Tabellen ändern?
Set Zieltab = ActiveWorkbook.Worksheets("Jan.")
Gruß Helmut
MX-Linux KDE + Linux-Mint Cinnamon

BlinkyBill
Beiträge: 5
Registriert: Mi 14. Nov 2018, 21:00

Re: Makro auf allen Tabellenblättern

Beitrag von BlinkyBill » Fr 16. Nov 2018, 17:45

Helmut_S hat geschrieben:
Fr 16. Nov 2018, 15:45
Du schreibst, dass dein Makro nach Drücken der Tastenkombination Alt+F8 nur die Tabelle Jan. aktualisiert. Wenn ich mir diese Code-Zeile anschaue, fällt mir auf, dass hier nur das Tabellenblatt "Jan." angesprochen wird. Möglicherweise ließe sich das mit einer "for-next" Schleife auf alle 12 Monats-Tabellen ändern?
Set Zieltab = ActiveWorkbook.Worksheets("Jan.")
Gruß Helmut

Genau das soll es machen. Wir würde die Erweiterung dann aussehen? Wie muss der Code (oder wie auch immer man es nennt) aussehen und an welche Stelle muss es damit es klappt?

Schon mal Danke

Helmut_S
Beiträge: 692
Registriert: Di 9. Feb 2016, 19:27

Re: Makro auf allen Tabellenblättern

Beitrag von Helmut_S » Fr 16. Nov 2018, 19:14

Hallo, tut mir leid, mit VBA Code kann ich dir leider nicht dienen.
Gruß Helmut
MX-Linux KDE + Linux-Mint Cinnamon

LORI
Beiträge: 82
Registriert: Di 5. Feb 2013, 14:31
Wohnort: DE-BW-Nord

Re: Makro auf allen Tabellenblättern

Beitrag von LORI » Mo 19. Nov 2018, 00:50

Hallo Blinky Bill,
Hab kurz vorm schlafengehen das entdeckt, es als .xls gespeichert (hab nur noch eine alte Version, die .xlsm nicht akzeptiert). Mir fällt auf, dass das µ im Modul von Tabellenblatt 1 steht. Wenn es im Jan funkt, dann hat erstens Helmut recht, dass Feb. etc gar nicht angesprochen wird. Und dort kannst Du es auch nicht aufrufen.
Versetze es doch in das Blatt Modul1, es ist ja schon angelegt, aber leer. Vllt funkt es dort?
Kann mich dem jetzt aber nicht mehr weiter widmen.

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten