Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dim loletzte As Long als Public Sub

Forumthread: Dim loletzte As Long als Public Sub

Dim loletzte As Long als Public Sub
17.02.2017 09:55:56
Nilo
Moin zusammen,
DummyFrage!
Ich möchte auf loletzte per Definition in jedem Modul zugreifen können und nicht
in jedem Modul wieder neu definieren müssen!
Die Tabelle für loLetzte wäre "Quelldatei"
Reicht da in der "Arbeitsmappe" ein einfaches:
Public Sub Blabla()
With Sheets("Quelldatei")
Dim loletzte As Long
loletzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
End With
Danke und Gruß
Nilo
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dim loletzte As Long als Public Sub
17.02.2017 10:06:22
ChrisL
Hi Nilo
Die Variable müsstest du ausserhalb von der Prozedur deklarieren:

Public loletzte As Long
Public Sub Blabla()
With Sheets("Quelldatei")
loletzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows. _
Count)
End With
End With
cu
Chris
Anzeige
Alles klar, Danke! owT
17.02.2017 10:38:09
Nilo
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

loletzte in Excel VBA als Public Sub definieren


Schritt-für-Schritt-Anleitung

Um die Variable loletzte in jedem Modul von Excel VBA zugänglich zu machen, musst Du sie als Public deklarieren. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)", wähle "Einfügen" und dann "Modul".

  3. Deklariere die Public Variable: Definiere loletzte außerhalb von jeder Prozedur. Das sieht so aus:

    Public loletzte As Long
  4. Erstelle eine Subroutine: Füge Deine Subroutine hinzu, in der loletzte verwendet wird:

    Public Sub Blabla()
        With Sheets("Quelldatei")
            loletzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
        End With
    End Sub
  5. Speichere Deine Änderungen: Vergiss nicht, Deine Arbeitsmappe zu speichern, um die Änderungen zu behalten.


Häufige Fehler und Lösungen

  • Fehler: "Variable nicht definiert"
    Lösung: Stelle sicher, dass loletzte als Public deklariert ist und sich außerhalb jeder Prozedur befindet.

  • Fehler: "Typ nicht definiert"
    Lösung: Überprüfe, dass Du Public loletzte As Long korrekt geschrieben hast und dass Du die richtige Schreibweise verwendest.


Alternative Methoden

Eine alternative Methode, um auf die letzte Zeile in einem bestimmten Blatt zuzugreifen, besteht darin, die Variable innerhalb der Subroutine zu deklarieren. Das macht sie jedoch nur innerhalb dieser Subroutine verfügbar:

Sub Beispiel()
    Dim loletzte As Long
    With Sheets("Quelldatei")
        loletzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
    End With
End Sub

Das funktioniert, wenn Du nur innerhalb dieser Subroutine auf loletzte zugreifen musst.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie Du loletzte nutzen kannst, um Daten zu verarbeiten:

Public Sub DatenVerarbeiten()
    Dim i As Long
    With Sheets("Quelldatei")
        loletzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
        For i = 1 To loletzte
            ' Hier kannst Du Deine Logik einfügen, z.B. Daten analysieren
            Debug.Print .Cells(i, 1).Value
        Next i
    End With
End Sub

Tipps für Profis

  • Verwende Option Explicit: Das zwingt Dich, alle Variablen zu deklarieren, was Fehler vermeidet.

  • Nutze die With-Anweisung: Das ist effizient, wenn Du mehrere Eigenschaften eines Objekts ändern möchtest.

  • Dokumentiere Deinen Code: Verwende Kommentare, um den Code besser verständlich zu machen.


FAQ: Häufige Fragen

1. Frage
Kann ich loletzte auch als Dim deklarieren?
Antwort: Ja, aber dann ist die Variable nur innerhalb der Subroutine sichtbar. Für den Zugriff in mehreren Modulen ist Public notwendig.

2. Frage
Wie kann ich den Wert von loletzte in einer anderen Subroutine verwenden?
Antwort: Durch die Deklaration als Public kannst Du loletzte in jeder Subroutine innerhalb des gleichen Moduls oder in anderen Modulen verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige