Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Gruppierung öffnen mit VBA

Gruppierung öffnen mit VBA
30.05.2018 09:16:27
Kay
Hallo,
ich öffne eine Gruppierung mit einem Makro4:
ExecuteExcel4Macro "SHOW.DETAIL(1,136,true)"
Das funktioniert soweit. Wenn ich aber eine Zeile nachträglich in die Tabelle einfüge, stimmt der Bezug auf Zeile 136 nicht mehr, da diese dann 137 ist.
Gibt es eine Möglichkeit später Zeilen einzufügen, ohne den Code für die Steuerelemente zu ändern?
Vielen Dank schon mal!!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gruppierung öffnen mit VBA
30.05.2018 09:44:56
{Boris}
Hi,
die ExecuteExcel4Macro-Methode verlangt als Argument einen String.
Also lies die letzte Zeile vorher aus, bastel damit den notwendigen String zusammen und übergibt ihn ann an die ExecuteExcel4Macro-Methode.
Aus der Hand und ungetestet:
Dim s As String
Dim strArgument As String
s = 137' natürlich real nicht fix - sondern hier die letzte Zeile ermitteln
strArgument = "SHOW.DETAIL(1," & s & ",true)"
ExecuteExcel4Macro strArgument
VG, Boris
Kleine Korrektur
30.05.2018 09:46:21
{Boris}
s muss Long sein.
Dim s As Long
Dim strArgument As String
s = 137' natürlich real nicht fix - sondern hier die letzte Zeile ermitteln
strArgument = "SHOW.DETAIL(1," & s & ",true)"
ExecuteExcel4Macro strArgument
VG, Boris
Anzeige
AW: Kleine Korrektur
30.05.2018 10:36:43
Kay
Hi Boris,
vielen Dank!
habe deinen Vorschlag umgesetzt, funktioniert.
Nur noch ein Problem:
Ich habe z.B. eine Gruppierung von 135 bis 139. Die nächste Gruppierung kommt kommt in Zeile 142 bis 150.
Gebe ich für "s" 139 ein und füge später fünf oder mehr Zeilen darüber ein funktioniert es nicht mehr. Gebe ich für "s" z.B. 145 ein, schließt oder öffnet sich auch die nächste Gruppierung.
Gibt es dafür auch eine Lösung?
AW: Kleine Korrektur
30.05.2018 11:05:50
Daniel
Zum Ein- und Ausblenden brauchst du die Zeilennummer einer Zeile, die sich innerhalb dieser Gruppe befindet.
Wenn du diese Zeilennummer fest vorgibst und danach in der Tabelle Zeilen löschst oder einfügst, müsstest du diese Zeilennummer im Code jedesmal anpassen.
Wie du das Makro so gestalten kannst, dass du die Zeilennummer nicht mehr fest vorgeben musst, sondern automatisch passend zur Gruppe ermittelt wird, so dass eine Codeänderung erforderlich ist, wenn du Zeilen löschst oder einfügst, habe ich dir in meinem ersten Beitrag gezeigt.
Gruß Daniel
Anzeige
AW: Gruppierung öffnen mit VBA
30.05.2018 10:13:43
Daniel
HI
lege im Namensmanager einen Namen fest für eine Zelle in der Zeile 136,
dh Name "xxx" bezieht sich auf: "=Tabelle1!$A$136"
wenn du jetzt Zeilen löschst oder einfügst, passt sich diese Name automatisch an, dh er wandert mit.
im code baust du das dann so ein wie von Boris vorschlagen, allerdings mit Bezug auf diesen Namen, um die Zeilennummer zu ermitteln:
ExecuteExcel4Macro "SHOW.DETAIL(1," & Range("xxx").row & ",true)"
Gruß Daniel
AW: Gruppierung öffnen mit VBA
30.05.2018 11:09:05
Kay
Hi Daniel,
es funktioniert super, vielen Dank!
habe gestern lange rumgetüftelt und es nicht hinbekommen.
Nächstes mal frage ich gleich jemanden, der Ahnung hat. :)
Boris auch an Dich noch mal Danke!
Gruß Kay
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige