Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1508to1512
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

Allgemeingültige Makros in pers. Arbeitsmappe

Allgemeingültige Makros in pers. Arbeitsmappe
19.08.2016 09:05:32
BlackStallion
Guten Morgen!
ich habe ein (hoffentlich) typisches Anfängerproblem, finde aber keine Lösung.
Ich habe ein paar Makros erstellt.
Ein MsgBox-Makro, ein Makro um jede zweite Zeile zu färben und dank der großzügigen Hilfe von Peter (hpo) habe ich jetzt auch ein Makro, um eine Liste automatisch zu filtern und die Zeilen der Filterergebnisse in einzelne Arbeitsblätter der Mappe zu kopieren.
Alle drei Makros funktionieren wunderbar. Allerdings nur, wenn sie einer Arbeitsmappe zugeordnet sind.
Ich habe die Anleitungen zur persönlichen Arbeitsmappe gelesen. In den Anleitungen heisst es immer, man sollte diese Arbeitsmappe anlegen und dann könnte man Makros allgemeingültig speichern und immer darauf zugreifen.
Das Speichern der Makros in der pers. Mappe bekomme ich auch hin. Ich habe jedes Makro als einzelnes Modul abgespeichert. Doch ich kann sie von dort nicht ausführen. Beim Färben passiert gar nichts, beim Sortieren ist die Variable offenbar nicht definiert. Nur das MsgBox-Makro funktioniert universell.
Userbild
Ich verstehe das nicht.
Was mache ich falsch, was habe ich vergessen anzuklicken, damit in der pers. Arbeitsmappe gespeicherte Makros überall ausgeführt werden?
Danke für eure Hilfe, ich verzweifele inzwischen.
Grüße

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Allgemeingültige Makros in pers. Arbeitsmappe
19.08.2016 09:10:53
Ben
Ich habe es ähnlich, vielleicht hilft dir mein code etwas und kannst ihn dir anpassem
Sub Renk()
Range("A2:A65536").Interior.ColorIndex = 34
Range("a1").Activate
For X = 1 To 65536
ActiveCell.Offset(X, 0).Interior.ColorIndex = 33
X = X + 1
Next X
End Sub

AW: Allgemeingültige Makros in pers. Arbeitsmappe
19.08.2016 09:17:13
Daniel
Hi
das Problem ist dein WITH Tabelle1
du sprichst hier die Tabelle1 über den Codenamen an und wenn du den Codenamen verwendest, dann sprichst du damit immer nur die Blätter an, die zur Datei gehören in der der Code steht (im Prinzip ein ThisWorkbook.Tabelle1)
dh du bearbeitest hier die Tabelle1 in deiner persönlichen Arbeitsmappe.
Ändere das mal ab in WITH ActiveSheet, dann wirkt der Code auf das gerade aktive Tabellenblatt, egal in welcher Datei.
Gruß Daniel
Anzeige
AW: Allgemeingültige Makros in pers. Arbeitsmappe
22.08.2016 09:04:05
BlackStallion
Guten Morgen Daniel!
Vielen Dank dafür und sorry, dass ich mich Freitag nicht mehr gemeldet habe.
Ich werde doch beantragen, das Einführungsbuch über das Büro zu bestellen. :-)
Kannst du mir auch sagen, wo sich in dem Code verlinkter Tabelle der Denkfehler befindet?
Der Code funktioniert wunderbar, wenn er in der aktiven Tabelle steht. Als Modul ist aber laut Editor "Die Variable nicht definiert".
https://www.herber.de/bbs/user/107673.xlsm
Ich habe schon versucht, den Fehler zu suchen, aber bin zu sehr Anfänger. :-(
Woran liegt das? Überall in dem Code steht doch extra "activeworkbook.activesheet".
Vielen Dank für deine Hilfe!
Grüße
Anzeige
AW: Allgemeingültige Makros in pers. Arbeitsmappe
22.08.2016 10:56:38
Daniel
Hi
nicht überall.
hier nicht:
strSp = Sheets(strShName).Cells(UsedRange.Rows.Count, intSpalte).Address
und hier auch nicht:
ActiveWorkbook.Worksheets(strShName).Sort.SortFields.Add Key:=Range(strsorStart & ":" & strsorEnd)

für die Fett markierten Zellbezüge geht die Referenz auf das Modultabellenblatt, wenn der Code nicht in einem allgemeinen Modul steht.
und auch das "ActiveWorkbook" steht nicht überall davor.
generell ist das was du machst sehr umständlich.
du weist den Blattnamen einer Stringvariablen zu und spricht dann das Blatt über diesen Namen an:
dim strShNam as string
strShName ActiveSheet.Name
ActiveWorkbook.Worksheets(strShName).Sort ...
einfacher ist, wenn du das Blatt direkt einer Objektvariablen zuweist:
dim shX as Worksheet
set shX = ActiveSheet
shX.Sort ...
Gruß Daniel
Anzeige
AW: Allgemeingültige Makros in pers. Arbeitsmappe
23.08.2016 09:25:48
BlackStallion
Guten Morgen!
Danke für die Antwort, aber das ist noch zu kompliziert für mich. Leider.
Bei der Masse an Codezeilen hat mir Peter geholfen. Ich verstehe zwar, was die Codezeilen bewirken, aber als ich jetzt versuchte, die von dir benannten Fehler zu korrigieren, funktionierte das Makro nicht mehr.
Ich kann nicht einfach activeworkbook.activesheet. vor die "Range"-Teile setzen, dann beschwert er sich, dass "der eingegebene Text kein gültiger Bezug oder kein gültiger Name" ist.
Ich weiss, dass dieses Makro eigentlich zu komplex für meinen Wissensstand ist, aber Chef will es haben. :-( Könntest du mir sagen, wie ich es abändern muss, damit es funktioniert?
Danke sehr!
Grüße
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige