ERLEDIGT
NEIN
NEIN
ANTWORTEN
11
11
ZUGRIFFE
803
803
EMPFEHLEN
-
Hai,
folgende Ausgangssituation :
Eine Exceldatei, mit drei Tabellenblätter, jedes Tabellenblatt hat zwei Button mit dazugehörigen Makros.
Nun liegen die Makros (im Editor) im jeweiligen Tabellenblatt sind aber gleich.
D.h. auf Tabellenblatt 1 gibt es einen Button mit zugehörigem Makro, welches Zeilen ausblendet.
auf Tabellenblatt 2 gibt es einen Button mit zugehörigem Makro, welches Zeilen ausblendet.
... usw.
Nun will ich die gleichen Makros der einzelnen Tabellenbätter im Modul zusammenfassen, damit die Änderungen nur einmal und nicht pro Tabellenblatt gemacht werden müssen.
Geht das ?
Wenn, ja : Wie ?
Fragt nicht, wie ich zu dieser Konstellation gekommen bin.
Danke.
Ciao StefanEine weitere sinnlose Page im weltweiten Netz. www.leola13.de
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen !
Man sollte die Tatsachen kennen, bevor man sie verdreht !
-
25.01.12 14:26 #2
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Kannst du mal das Makro (welches ja in allen Blättern gleich sein soll) hier rein posten?
Ich verstehe die Aufgabenstellung nämlich nicht so ganz.Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
Jepp. geht.
Benne sie eindeutig (Sollte eigentlich schon sein, da ja der Button-Name in der Methode drin steckt.
Also wenn bisher jedes Knopf-Makro 'Knopf1' hiess, dann sollte es nachher 'sheet1_knop1' heissen.
Anschliessend die Knöpfe neu verlinken - fertig.
Wenn du sauber arbeiten willst, dann ziehst du noch alle Gemeinsamkeiten aller Knopf1-Makros in eine eigene Funktion. und machst ggf. nur den Aufruf getrennt
Code vb:1 2 3 4 5 6 7 8 9 10 11
Sub Button2_Click() Call tuWas(ActiveSheet.Cells(1, 1).Value) End Sub Sub Button3_Click() Call tuWas(ActiveSheet.Cells(4, 5).Value) End Sub Sub tuWas(ByVal iText As String) MsgBox iText End Sub
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hai,
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Private Sub Archiv_Click() ActiveCell.Rows("1:1").EntireRow.Select Selection.Cut Sheets("Alt").Rows("3:3").Insert Selection.Delete Shift:=xlUp ActiveCell.Select ActiveSheet.Range("e3").Copy Destination:=Worksheets("Alt").Range("A3") End Sub Private Sub ToggleButton1_Click() If ToggleButton1.Value = True Then ToggleButton1.Caption = "X Einblenden" Zeilen_ausblenden End If If ToggleButton1.Value = False Then ToggleButton1.Caption = "X Ausblenden" Zellen_einblenden End If End Sub Sub Zellen_einblenden() ActiveSheet.UsedRange.Rows.Hidden = False End Sub Sub Zeilen_ausblenden() Application.ScreenUpdating = False Dim Zelle As Range For Each Zelle In Range("A6", "A" & Range("a65536").End(xlUp).Row) If Zelle = "X" Then Zelle.EntireRow.Hidden = True Else Zelle.EntireRow.Hidden = False End If Next Zelle Application.ScreenUpdating = True End Sub
Diese(s) Makro wird über zwei Button gestartet. Einmal für Archiv und einmal für Ein-/Ausblenden.
... aber das Ganze habe ich 3 mal auf jedem Tabelenblatt die zwei Button und im Editor für jedes Tabellenblat die/das Makro(s).
Ciao StefanGeändert von Yaslaw (25.01.12 um 14:35 Uhr) Grund: PHP-Tags durch VB-Tags ersetzt
Eine weitere sinnlose Page im weltweiten Netz. www.leola13.de
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen !
Man sollte die Tatsachen kennen, bevor man sie verdreht !
-
25.01.12 14:35 #5
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Ich glaube eher, dass Stefan nach einer Lösung sucht, mit nur einem Click auf Button auf Blatt 1, die Makros für alle 3 Tabellenblätter auszuführen, also dass er eben nicht sich durch die Blätter hangeln muss
Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
@Leola
Bitte die VB-Codes in Zukunft selber in VB-Tags setzen. Es ist einfach viel lesbarer als mit PHP-Tags:
[VB]Dein Code[/VB]
@Zvoni
Nunja, bei meinem Beispiel ist alles in einem Modul. activsheet() basiert automatisch auf das Sheet wo der Button gedrückt wird. Ergo kann man mit dem Arbeiten---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
25.01.12 14:40 #7
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Yaslaw,
ich habe ja gar nicht behauptet, dass man mit deinem Code nicht arbeiten könnte *gg*
Ich denke nur nicht, dass es das ist was Stefan suchtZwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
Hai,
man was seid ihr schnell mit den Antworten.
@Zvoni : Nein. Ein Button auf Blatt 1 und es soll nur auf Blatt 1 ausgeführt werden.
Nur die drei Makros für die einzelnen Tabellenblätter sind ja gleich im Aufbau.
Mein Ansatz war alles von einem Tabellenblatt kopieren und in Modul 1 einfügen (im Editor) und dann die Button dahin verlinken.
@Yaslaw : Ich denke so sollte es sein. Nur wie mach ich das ?
Von Knop1 auf Sheet1_Knop1 ?
Ciao StefanEine weitere sinnlose Page im weltweiten Netz. www.leola13.de
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen !
Man sollte die Tatsachen kennen, bevor man sie verdreht !
-
Als Beispiel (ich weiss halt nicht genau, was alles Konstant sein soll
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
'Button von Sheet 1 Private Sub Archiv_sheet1_Click() Call archiv("Alt", 3) End Sub 'Button von Sheet 2 Private Sub Archiv_sheet2_Click() Call archiv("Alt", 15) End Sub 'Allgemeine Archiv-Funktion 'ActiveCell und ActiveSheet zsollten automatisch auf das richtige Sheet/Zelle zeigen Private Sub archiv(ByVal iDestSheetName As String, ByVal iDestRow As Long) ActiveCell.Rows("1:1").EntireRow.Select Selection.Cut Sheets(iDestSheetName).Rows(iDestRow & ":" & iDestRow).Insert Selection.Delete Shift:=xlUp ActiveCell.Select ActiveSheet.Range("e3").Copy Destination:=Worksheets(iDestSheetName).Range("A" & iDestRow) End Sub
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hai,
Ich auch nicht, weil das aus anderen Makros zusammengestückelt ist. (..aber ich arbeite dran. Anfänger halt.)Als Beispiel (ich weiss halt nicht genau, was alles Konstant sein soll
Das heisst dies :
Code vb:1 2 3 4
'Button von Sheet 1 Private Sub Archiv_sheet1_Click() Call archiv("Alt", 3) End Sub
ist der Tabelenbezogene Aufruf für das eigentliche Makro ?!.
Das probiere ich mal aus.
Ciao StefanEine weitere sinnlose Page im weltweiten Netz. www.leola13.de
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen !
Man sollte die Tatsachen kennen, bevor man sie verdreht !
-
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hai,
Nachtrag zu den Konstanten :
Es wird immer in Sheet "Alt" eingefügt
immer ab Reihe 3
und es wird immer der Wert von e3 kopiert.
Ciao StefanEine weitere sinnlose Page im weltweiten Netz. www.leola13.de
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen !
Man sollte die Tatsachen kennen, bevor man sie verdreht !
Ähnliche Themen
-
» Excel [Excel 2003] 2007er Skript funktioniert unter 2003er Excel nicht
Von DarthShader im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 24.08.10, 12:18 -
Excel 97 VB Makro hat Laufzeitfehler unter Excel 2003
Von V&M im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 23.07.08, 11:16 -
Problem mit Excel 97 Makros unter Excel 2003
Von V&M im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 23.07.08, 11:15 -
[Excel 2003] Einfachste Möglichkeit, ein Excel Makro zu publizieren
Von meilon im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 18.07.08, 13:46 -
Excel 2007 + Makro + rauschreiben als Excel 1997 - 2003
Von Herli im Forum Office-AnwendungenAntworten: 2Letzter Beitrag: 10.08.07, 11:09






Zitieren


Login





