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

Probleme mit Range-Objekten

Probleme mit Range-Objekten
13.09.2015 10:31:13
Rohfleisch
Hallo liebe Forennutzer,
wieder einmal stehe ich vor dem Problem, dass reines Ausprobieren mich nicht zum Ziel führt.
Ich habe folgenden Code und bekomme beim Bestätigen "Laufzeitfehler 424 objekt erforderlich".
Private Sub Erstellen_Click()
Call NewRow()
Firstempty.Select
End Sub
Sub NewRow(Optional ByRef Firstempty As Range)
Dim LastFilled As Range
Dim Lastval As Integer
Dim NewVal As String
Set LastFilled = Range("Artikelnummern").End(xlDown)
Set Firstempty = LastFilled.Offset(1)
Lastval = LastFilled.Value
NewVal = Lastval + 1
Do Until Len(NewVal) = 5
NewVal = "0" & NewVal
Loop
LastFilled.Copy
Firstempty.PasteSpecial (xlPasteFormats)
Firstempty.Value = NewVal
Application.CutCopyMode = False
End Sub

Ich hoffe mir kann hier jemand heraushelfen und mich belehren. Vielen Dank!
Beste Grüße,
Rohfleisch

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Range-Objekten
13.09.2015 10:50:09
Gerd
Hallo,
schreibe ins Modul ganz oben Option Explicit. Du wirst so feststellen, dass die Variable
Firstempty auf Modulebene oder als globale Variable (Public ...As Range) zu deklarieren ist.
Gruß Gerd

AW: Probleme mit Range-Objekten
13.09.2015 13:21:22
fcs
Hallo Rohfleisch,
Da dein Makro die Variable "Firstempty" als Parameter verwendet muss eine entsprechende Variable übergeben werden, die du dann nutzen kannst, wenn die Sub die Ausführung an das aufrufende Makro zurückgibt.
Wenn du im Hauptmakro einen Einzeiler haben möchtest, dann musst du deine Sub in eine Function umwandeln, die die Zelle mit der neuen Nummer als Range zurückgibt.
Wenn Zahlen als Text mit führenden Nullen dargestellt werden sollen, dann kann man dies unter VBA mit einer Anweisung erreichen. Eine Schleife ist nicht erforderlich.
Gruß
Franz
Private Sub Erstellen_Click()
Dim Zelle As Range
Call NewRow(Zelle)
Zelle.Select
End Sub
'Zahlen mit führende Nullen als Text darstellen
NewVal = Format(Lastval + 1, "00000")

Variante mit Function
Private Sub Erstellen_Click()
Call fncNewRow.Select
End Sub
Function fncNewRow() As Range
Dim LastFilled As Range
Dim Firstempty As Range
Dim Lastval As Integer
Dim NewVal As String
Application.ScreenUpdating = False
Set LastFilled = Range("Artikelnummern").End(xlDown)
If LastFilled.Row = Range("Artikelnummern").Parent.Rows.Count Then
Set LastFilled = Range("Artikelnummern")
End If
Set Firstempty = LastFilled.Offset(1)
Lastval = Val(LastFilled.Value)
LastFilled.Copy
Firstempty.PasteSpecial (xlPasteFormats)
Application.CutCopyMode = False
'Zahlen mit führende Nullen als Text darstellen
NewVal = Format(Lastval + 1, "00000")
Firstempty.Value = NewVal 'oder = "'" & NewVal wenn Textdarstellung sicher sein soll
Application.ScreenUpdating = True
Set fncNewRow = Firstempty
End Function

Anzeige
AW: Probleme mit Range-Objekten
15.09.2015 11:16:58
Rohfleisch
Vielen Dank für die Hilfe! Ich bin leider erst jetzt dazu gekommen die Tipps umzusetzen.
Grüße,
Rohfleisch

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige