Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
992to996
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
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Letzte aktive Zeile Spalte A

Letzte aktive Zeile Spalte A
17.07.2008 06:13:16
Erich
Hallo EXCEL-Freunde,
habe einen Code, der mir die letzte aktive Zeile der Spalte A (aktives Tabellenblatt) in einer Msg-Box anzeigt:

Sub letztezelle()
MsgBox ("Die letzte Zeile der Spalte A ist: ") & Range("A65536").End(xlUp).Row
End Sub


Diesen Code starte ich über einen Button in der Menüleiste (Button wird beim EXCEL-Start generiert).
Nun möchte ich die Anzeige der letzten Zeile generell in der Menüleiste sehen. Also immer wenn ich ein
Tabellenblatt wechsle wird die Zeile statt in der Msg-Box in der Menüleiste angezeigt. Geht sowas?
Besten Dank!
mfg
Erich

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte aktive Zeile Spalte A
17.07.2008 09:36:45
Beverly
Hi Erich,
was verstehst du unter "Menüleiste" - die Symbolleisten? Da ich deinen Code nicht kenne, hier mal eine prinzipielle Möglichkeit

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim inSchalter As Integer           ' Schleifenvariable
'   bezieht sich auf die Symbolleiste
With Application.CommandBars("Benutzerdefinierte AddIns")
'       Schleife über alle Schalter der Symbolleiste
For inSchalter = 1 To .Controls.Count
'           der Schalter hat den ToolTiptext
If .Controls(inSchalter).TooltipText = "Active Tabelle" Then
'               Name der aktiven Tabelle auf die Caption des Schalters schreiben
.Controls(inSchalter).Caption = ActiveSheet.Name
Exit For
End If
Next inSchalter
End With
End Sub


Dem Schalter mit dem ToolTiptext "Aktive Tabelle" der per Code erstellen Symbolleiste "Benutzerdefinierte AddIns" wird der Name der aktiven Tabelle als Schalteraufschrift zugewiesen.



Anzeige
AW: Letzte aktive Zeile Spalte A
18.07.2008 06:28:00
Erich
Hallo Karin,
danke zunächst; kann ich leider (noch) nicht umsetzen.
So erstelle ich derzeit in der Menüleiste einen Button (= zurück):

Private Sub Workbook_Open()
Dim i%
i = Application.CommandBars(1).Controls.Count
With Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:= _
msoControlButton, before:=i + 1, Temporary:=True)
.Caption = "&IV zurück"
.OnAction = "IV_zurück"
.Style = msoButtonIconAndCaption
End With
End Sub


Jetzt möchte ich einen weiteren Button erstellen (evtl. ohne Inhalt) und wenn ich eine andere Tabelle
gehe sollte dieser Button die letzte Zeile Spalte A anzeigen (gerne auch mit ToolTip).
Besten Dank nochmal!
mfg
Erich

Anzeige
AW: Letzte aktive Zeile Spalte A
18.07.2008 07:39:00
Beverly
Hi Erich,
ich nehme an, dass bei einer Änderung in Spalte A die Buttonanzeige ebenfalls angepasst werden soll?
Diesen Code im Klassenmodul DieseArbeitsmappe

Option Explicit
Private Sub Workbook_Open()
Dim i%
i = Application.CommandBars("Worksheet Menu Bar").Controls.Count
With Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:= _
msoControlButton, before:=i + 1, Temporary:=True)
.Caption = "&IV zurück"
.OnAction = "IV_zurück"
.Style = msoButtonIconAndCaption
End With
With Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:= _
msoControlButton, before:=i + 2, Temporary:=True)
.Caption = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
.TooltipText = "Letzte Zeile"
.Style = msoButtonCaption
End With
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
button_anzeige
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column  1 Then Exit Sub
button_anzeige
End Sub


Und in einem allgemeinen Modul


Option Explicit
Public inSchalter As Integer
Sub button_anzeige()
With Application.CommandBars("Worksheet Menu Bar")
For inSchalter = 1 To .Controls.Count
If .Controls(inSchalter).TooltipText = "Letzte Zeile" Then
.Controls(inSchalter).Caption = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows. _
Count, 1).End(xlUp).Row, Rows.Count)
Exit For
End If
Next inSchalter
End With
End Sub




Anzeige
AW: Letzte aktive Zeile Spalte A
19.07.2008 10:14:14
Erich
Hallo Karin,
GENIAL - Danke!
Noch eine abschließende Frage:
Meinen Code für die Erzeugung der Buttons Menüleiste habe ich in der personl.xls Datei (also wird
der Button erzeugt, wenn EXCEL startet).
Die Ermittlung der letzten Zeile erfolgt jetzt nur, wenn die Codes

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
button_anzeige
End Sub



Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column  1 Then Exit Sub
button_anzeige
End Sub


in der Datei/DieseArbeitsmappe eingetragen werden, in der die Tabellen sind. Ist zwar nicht weiter schlimm,
weil ich halt in jede Datei diesen Code kopiere. Aber wenns hier auch noch einen Trick gäbe,
dies in der zentralen peronl.xls zu verankern wärs optimal.
Auf alle Fälle ists super, weil ich sehr oft mit "letzter Zeile" arbeite.
Besten Dank!
mfg
Erich

Anzeige
AW: Letzte aktive Zeile Spalte A
19.07.2008 12:09:44
Jens
Hi,
du brauchst in deiner Personl.xls ein Klassenmodul, das die Ereignisse applikationsweit
zur Verfügung stellt, siehe Archiv.
mfg Jens

AW: Letzte aktive Zeile Spalte A
19.07.2008 15:36:21
Erich
Hallo Jens,
danke - habe das jetzt durchweg getestet; leider ohne Erfolg. Scheint nur zu klappen, wenn ich direkt in
die betroffene EXCEL-Datei die Codes einsetze.
mfg
Erich

AW: Letzte aktive Zeile Spalte A
19.07.2008 16:29:49
Jens
Hi,
das muss ein echtes Klassenmodul sein, also z.B. clsApplication, das im Workbook_Open
der Personl.xls initialisiert werden muss.
mfg jens

AW: Letzte aktive Zeile Spalte A
19.07.2008 19:49:00
Erich
Hallo Jens,
danke - habe mich im Archiv umgeschaut und einiges gefunden - die Installation hat bei mir leider noch nicht geklappt. Werds mal weiter probieren.
mfg
Erich

Anzeige
AW: Letzte aktive Zeile Spalte A mit Statusbar
19.07.2008 21:44:00
Daniel
HI
wenn das nur für bestimmte Excel-Dateien gelten soll, dann würde ich für diese Anzeige die Statuszeile nutzen und folgende Makro-Gruppe verwenden (einzutragen in das Modul "DieseArbeitsmappe")
die aktuell letze Zeile der Spalte A im aktuellen Blatt wird angezeigt, wenn
- die Datei geöffnet wird
- innerhalb der Datei das Tabellenblatt gewechselt wird
- wenn die die Datei aktiviert wird (dh. von einer anderen Exceldatei gewechselt wird)
die Statuszeile wird wieder freigegeben wenn
- die Datei geschlossen wird
- in eine andere Exceldatei gewechselt wird:

Private Sub Letzte_Zeile_anzeigen()
Application.StatusBar = "Letzte Zeile in Spalte A: " & ActiveSheet.Cells(Rows.Count, 1).End( _
xlUp).Row
End Sub



Private Sub Workbook_Activate()
Call Letzte_Zeile_anzeigen
End Sub



Private Sub Workbook_Open()
Call Letzte_Zeile_anzeigen
End Sub



Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Call Letzte_Zeile_anzeigen
End Sub



Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.StatusBar = False
End Sub



Private Sub Workbook_Deactivate()
Application.StatusBar = False
End Sub


ich denke, das ist etwas weniger kompliziert als ne anzeige in der Menüleiste, aber ich lass die Frage mal offen, falls es nicht das ist was du haben willst.
Gruß, Daniel
ps. mit folgendem Zusatzmakro (im gleichen Modul) kannst du die Anzeige immer akutell halten, wenn du in einem Tabellenblatt Zeilen einfügst oder löschst:


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Call Letzte_Zeile_anzeigen
End Sub


Anzeige
AW: Letzte aktive Zeile Spalte A mit Statusbar
20.07.2008 08:20:00
Erich
Hallo Daniel,
danke auch ein interessanter Ansatz. Habe folgenden Nachteil festgestellt:
da ich mit umfangreichen Dateien arbeite, habe ich immer "Manuelle Berechnung" eingestellt;
wenn ein Rechenvorgang erforderlich ist wird dies in der Statusleiste angezeigt - diese Anzeige
wäre jetzt verschwunden.
Kann man das korrigieren?
Besten Dank nochmal!
mfg
Erich

AW: Letzte aktive Zeile Spalte A mit Statusbar
20.07.2008 20:36:16
Daniel
Hi
leider nein.
wenn du die Statuszeile mit Informationen belegst, werden dort keine Systemmeldungen mehr angezeigt.
erst wenn der Befehl "Application.Statusbar = False" erfolgt ist, ist die Statusleiste wieder für Systemmeldungen frei.
Wenn du damit leben kannst, daß die Zeilenanzahl nur beim Blattwechsel angezeigt wird und danach wieder verschwindet (bis zum nächsten Blattwechsel) könntest du noch dieses Makro einfügen, das die Statusziele freigibt, sobald du eine andere Zelle selektiertst.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.StatusBar = False
End Sub


Gruß, Daniel

Anzeige
Danke Daniel - das passt! o.T.
20.07.2008 21:25:53
Erich
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige