Discussion:
´Letztes Tabellenblatt aktivieren
(zu alt für eine Antwort)
Alexander Holwein
2006-06-20 07:39:43 UTC
Permalink
Hallo,

hab hier eine XLT mit einem Makro. Hatte vor einigen Tagen schon wegen
eines anderen Problems mit diesem Makro gepostet. In der XLT ist ein
Sheet, das Makro ist in der Arbeitsmappe. Die XLT gilt als Vorlage für
einen Export aus Cubeware. Anschließend hab ich eine XLS mit evtl.
mehreren Sheets (Inhaltsverzeichnis, der eigentliche Bericht als
letztes). Das Makro soll Seitenformatierungen im Bericht ändern und eine
Fixierung vornehmen. Der Name des Berichts kann unterschiedlich sein.
Da ich im Makro (wird bei Workbook_Open aufgerufen) grad bei der
Fixierung mit ActiveWindows arbeite, wird das Inhaltsverzeichnis
(standardmäßig geöffnet) formatiert. Jetzt will ich gerne vor der
Formatierung das ActiveWindow wechseln. Wie kann ich das machen, oder
gibt es eine elegantere Methode?
2. soll das Makro nach dem Speichern entfernt werden, d.h. ich öffne den
Bericht, der wird durch das Makro formatiert und abschließend
gespeichert. Wie lässt sich das realisieren?

Besten Dank im Voraus. Hab das letzte Mal richtig tolle Tipps bekommen.
Find ich echt klasse.

Gruß
Alex
Christian Friedrich
2006-06-20 08:06:02 UTC
Permalink
Hallo Alexander,

das letzte Tabellenblatt in einer Arbeitsmappe kann mit
ActiveWorkbook.Worksheets(Activeworkbook.Worksheets.Count).Activate aktiviert
werden. Du solltest jedoch berücksichtigen, dass die Reihenfolge von
Tabellenblättern verändert werden kann. Sicherer wäre es, das Tabellenblatt
über den Codenamen anzusprechen, der im Eigenschaftenfenster eingestellt
wird. Dann kann einfach z.B. tblBericht.Activate verwendet werden.

Eine Prozedur kann mit der folgenden Prozedur gelöscht werden:

Sub Prozedur_entfernen(strProcedureName As String, strModuleName As String)
Dim vbeCodeModule As CodeModule
Dim lngStartLine As Long
Dim lngNumberOfLines As Long
Set vbeCodeModule = ThisWorkbook.VBProject _
.VBComponents(strModuleName).CodeModule
With vbeCodeModule
lngStartLine = .ProcStartLine(strProcedureName, _
vbext_pk_Proc)
lngNumberOfLines = .ProcCountLines(strProcedureName, _
vbext_pk_Proc)
.DeleteLines lngStartLine, lngNumberOfLines
End With
End Sub
--
Mit freundlichen Grüßen

Christian Friedrich
Mitglied von Microsoft CLIP (Community Leader/Influencer Program)

Workstream.de http://www.workstream.de/ | http://www.e-workstream.com/
Post by Alexander Holwein
Hallo,
hab hier eine XLT mit einem Makro. Hatte vor einigen Tagen schon wegen
eines anderen Problems mit diesem Makro gepostet. In der XLT ist ein
Sheet, das Makro ist in der Arbeitsmappe. Die XLT gilt als Vorlage für
einen Export aus Cubeware. Anschließend hab ich eine XLS mit evtl.
mehreren Sheets (Inhaltsverzeichnis, der eigentliche Bericht als
letztes). Das Makro soll Seitenformatierungen im Bericht ändern und eine
Fixierung vornehmen. Der Name des Berichts kann unterschiedlich sein.
Da ich im Makro (wird bei Workbook_Open aufgerufen) grad bei der
Fixierung mit ActiveWindows arbeite, wird das Inhaltsverzeichnis
(standardmäßig geöffnet) formatiert. Jetzt will ich gerne vor der
Formatierung das ActiveWindow wechseln. Wie kann ich das machen, oder
gibt es eine elegantere Methode?
2. soll das Makro nach dem Speichern entfernt werden, d.h. ich öffne den
Bericht, der wird durch das Makro formatiert und abschließend
gespeichert. Wie lässt sich das realisieren?
Besten Dank im Voraus. Hab das letzte Mal richtig tolle Tipps bekommen.
Find ich echt klasse.
Gruß
Alex
Loading...