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

Nächste freie Zeile ... Objektfehler 91

Nächste freie Zeile ... Objektfehler 91
08.06.2023 18:30:53
Gruibe

Hallo VBA Profis,
bin mal wieder auf Problem gestoßen, welches ich selbst nicht lösen kann. Wäre toll, wenn mir hier jemand weiterhelfen könnte. Schon mal Besten Dank dafür.

Hier der Quellcode...Fehler erscheint bei der Zeile die mit *** gekennzeichnet ist.


Sub TN_einlesen()



Dim sPfad As String
Dim wbQuelle As Workbook

'ScreenUpdating und PopUps deaktivieren
Application.ScreenUpdating = False
Application.DisplayAlerts = False

'Dateipfad der Quelldatei
sPfad = Environ("userprofile") & "\Nextcloud\Betriebe\xxxx\Taetigkeitsnachweis\gbu_taetigkeitsnachweis.xlsm"

'Prüfen, ob Datei existiert
If Dir(sPfad) > "" Then

'Arbeitsmappe öffnen
Set wbQuelle = Workbooks.Open(sPfad)

wbQuelle.Worksheets(2).Range("K30").Copy
Workbooks("gbu_rechnung.xlsm").Activate
Worksheets("Rechnung").Unprotect

End If



Dim test As Range

'***********hier erhalte ich den Fehler "Laufzeitfehler 91....Objektvariable oder Block Variable nicht festgelegt"
test = Worksheets("Rechnung").Cells(Range("A20:R34").End(xlDown).Row, 2).Address


Dim MyObject As Object ' Create object variable.
Set MyObject = Sheets(1) ' Create valid object reference.
MyCount = MyObject.Count ' Assign Count value to MyCount.

With Worksheets("Rechnung").Range("A20:R34")
Set test = .Find(What:="", After:=.Cells(.Cells.Count), LookIn:=xlFormulas, LookAt:=xlWhole)
If Not test Is Nothing Then
MsgBox test.Address
Else
MsgBox "Keine freie Zelle im Bereich gefunden!"
End If
End With

'Cells(Rows.Count, 21).End(xlUp).Offset(1, 0).Select



With ThisWorkbook.Worksheets(2).Range("p20")
.PasteSpecial Paste:=xlValues ' Werte
.PasteSpecial Paste:=xlFormats ' Formate
.ClearFormats
End With

Worksheets(2).Range("B20").Value = "Eine Zelle"


Application.CutCopyMode = False

'Arbeitsmappe schließen
wbQuelle.Close SaveChanges:=False


Weiter:

'ScreenUpdating und PopUps aktivieren
Application.ScreenUpdating = True
Application.DisplayAlerts = True

Worksheets("Rechnung").Protect

End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nächste freie Zeile ... Objektfehler 91
08.06.2023 18:38:15
Nepumuk
Hallo,

Address ist ein String, kein Range. Also:

Dim test As String

zudem erwartet Cells eine Zeilen- und Spaltennummer und keinen Range:

Cells(.Range("A20:R34")

Gruß
Nepumuk


AW: Nächste freie Zeile ... Objektfehler 91
08.06.2023 18:40:20
onur
Cells(Range) ??? Wo hast du das denn her?
Was genau soll denn in "test" deiner Meinung nach stehen?


AW: Nächste freie Zeile ... Objektfehler 91
08.06.2023 18:47:12
onur
Ausserdem:
Wozu ist diese Zeile gut:
test = Worksheets("Rechnung").Cells(Range("A20:R34").End(xlDown).Row, 2).Address
Wenn nix mit test angefangen wird und, schlimmer noch, ein Paar Zeilen später das hier kommt?
Set test = .Find(What:="", After:=.Cells(.Cells.Count), LookIn:=xlFormulas, LookAt:=xlWhole)


Anzeige
AW: Nächste freie Zeile ... Objektfehler 91
08.06.2023 19:00:30
Gruibe
Hallo
ja sorry, habe mir das aus dem Internet zusammen gesucht. Ziel ist, aus dem Tätigkeitsnachweis z.B. Zelle K30 den Wert in die nächste freie Zeile, aber Spalte 2 im Bereich A20:R34 der aktuellen Tabelle einzutragen.

Komm hier einfach nicht klar.


AW: Nächste freie Zeile ... Objektfehler 91
08.06.2023 19:02:57
onur
Poste doch mal auch die Datei dazu.


AW: Nächste freie Zeile ... Objektfehler 91
11.06.2023 15:57:57
Gruibe
Hallo
kann mich hier noch jemand unterstützen?
Bin mit meinen schlechten VBA Kenntnissen am Ende.

Grüße
Gruibe


Anzeige
AW: Nächste freie Zeile ... Objektfehler 91
11.06.2023 16:27:07
Nepumuk
Hallo,

teste mal:

Option Explicit

Sub TN_einlesen()
    'Makro zum Einlesen in die RE - hier die Gesamtstunden aus dem Tätigekeitsnachweis
    'erstellt am 02.06.2023 Hieber G.

    Dim sPfad As String
    Dim lngRow As Long
    Dim wbQuelle As Workbook

    'ScreenUpdating und PopUps deaktivieren
    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    'Dateipfad der Quelldatei
    sPfad = Environ$("userprofile") & "\Nextcloud\Betriebe\Abrell Landtechnik GmbH\Taetigkeitsnachweis\gbu_taetigkeitsnachweis.xlsm"

    'Prüfen, ob Datei existiert
    If Dir$(sPfad) > "" Then

        'Arbeitsmappe öffnen
        Set wbQuelle = Workbooks.Open(sPfad)

        Call wbQuelle.Worksheets(2).Range("K30").Copy

        With ThisWorkbook.Worksheets("Rechnung")

            Call .Unprotect

            For lngRow = 20 To 34 Step 2

                If IsEmpty(.Cells(lngRow, 2).Value) Then Exit For

            Next

            If lngRow = 36 Then

                Call MsgBox("Keine freie Zeile im Bereich.", vbCritical, "Fehler")

            Else

                With .Cells(lngRow, 16)

                    Call .PasteSpecial(Paste:=xlPasteValues)         ' Werte
                    Call .PasteSpecial(Paste:=xlPasteFormats)        ' Formate

                End With
            End If

            Call .Protect

        End With

        'Arbeitsmappe schließen
        wbQuelle.Close SaveChanges:=False

        'ScreenUpdating und PopUps aktivieren
        With Application
            .CutCopyMode = False
            .EnableEvents = True
            .ScreenUpdating = True
        End With
    End If
End Sub
Gruß
Nepumuk


Anzeige
AW: Nächste freie Zeile ... Objektfehler 91
11.06.2023 17:02:55
Nepumuk
Besser so:

Option Explicit

Sub TN_einlesen()
    'Makro zum Einlesen in die RE - hier die Gesamtstunden aus dem Tätigekeitsnachweis
    'erstellt am 02.06.2023 Hieber G.

    Dim sPfad As String
    Dim lngRow As Long
    Dim wbQuelle As Workbook

    'ScreenUpdating deaktivieren
    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    'Dateipfad der Quelldatei
    sPfad = Environ$("userprofile") & "\Nextcloud\Betriebe\Abrell Landtechnik GmbH\Taetigkeitsnachweis\gbu_taetigkeitsnachweis.xlsm"

    'Prüfen, ob Datei existiert
    If Dir$(sPfad) > "" Then

        With ThisWorkbook.Worksheets("Rechnung")

            For lngRow = 20 To 34 Step 2

                If IsEmpty(.Cells(lngRow, 2).Value) Then Exit For

            Next

            If lngRow = 36 Then

                Call MsgBox("Keine freie Zeile im Bereich.", vbCritical, "Fehler")

            Else

                Call .Unprotect

                'Arbeitsmappe öffnen
                Set wbQuelle = Workbooks.Open(sPfad)

                Call wbQuelle.Worksheets(2).Range("K30").Copy

                With .Cells(lngRow, 16)

                    Call .PasteSpecial(Paste:=xlPasteValues)         ' Werte
                    Call .PasteSpecial(Paste:=xlPasteFormats)        ' Formate

                End With

                'Arbeitsmappe schließen
                wbQuelle.Close SaveChanges:=False

                Call .Protect

            End If

        End With

        'ScreenUpdating aktivieren
        With Application
            .CutCopyMode = False
            .EnableEvents = True
            .ScreenUpdating = True
        End With
    End If
End Sub
Gruß
Nepumuk


Anzeige
AW: Nächste freie Zeile ... Objektfehler 91
12.06.2023 13:15:44
Gruibe
Hallo Nepomuk,
das klappt ja super. Ich sage herzlichen Dank.
Wir hören uns bestimmt wieder.

Bis dahin eine schöne Zeit

Gruibe

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige