Excel Laufzeitfehler 91
#1
Hallo Liebes Forum

Ich habe einen Laufzeitfehler 91 in meinen VBA Code die ich nicht verstehe ich möchte per Button Kopieren und Einfügen das Merkwürdige ist ich habe diesen Code 3 mal Identisch und 2 davon funktionieren 

Code 1 geht nicht mit Laufzeitfehler 91
Code:
Sub Fertig_Begna90()

    Dim rngQuelle As Range
    Dim rngZiel As Range
          'Quelle definieren
    With ThisWorkbook.Sheets("Lagerberechnung")
        Set rngQuelle = .Range("E4")
            'Ziel definieren
    If .Range("B4") <> "" Then
        Set rngZiel = .Range("B4")
  End If
            'Daten kopieren und einfügen
  rngQuelle.Copy
        rngZiel.PasteSpecial xlPasteValues, Transpose:=False
       
    With Selection
        .Borders.LineStyle = xlLineStyleNone
    End With
        ActiveSheet.Range("A1").Select
End With
End Sub
Code 2 und 3 gehen halt ohne Laufzeitfehler 91

Code:
Sub Fertig_Begna140()

    Dim rngQuelle As Range
    Dim rngZiel As Range
          'Quelle definieren
    With ThisWorkbook.Sheets("Lagerberechnung")
        Set rngQuelle = .Range("E12")
            'Ziel definieren
    If .Range("B12") <> "" Then
        Set rngZiel = .Range("B12")
  End If
            'Daten kopieren und einfügen
  rngQuelle.Copy
        rngZiel.PasteSpecial xlPasteValues, Transpose:=False

    With Selection
        .Borders.LineStyle = xlLineStyleNone
    End With
        ActiveSheet.Range("A1").Select
End With
End Sub

Hier der Code 3

Code:
Sub Fertig_ALA140()

    Dim rngQuelle As Range
    Dim rngZiel As Range
          'Quelle definieren
    With ThisWorkbook.Sheets("Lagerberechnung")
        Set rngQuelle = .Range("E8")
            'Ziel definieren
    If .Range("B8") <> "" Then
        Set rngZiel = .Range("B8")
  End If
            'Daten kopieren und einfügen
  rngQuelle.Copy
        rngZiel.PasteSpecial xlPasteValues, Transpose:=False

    With Selection
        .Borders.LineStyle = xlLineStyleNone
    End With
        ActiveSheet.Range("A1").Select
End With
End Sub

Finde jetzt den Fehler!  20 ich finde nichts was falsch sein könnte das einzige was geändert wurde ist  Ziel und Quelle Range

Ich würde mich freuen wenn einer eine Idee hat wo das Problem liegt 

Viele Grüße 

KLaumann2001
Antworten Top
#2
Moin

rngZiel wird nur gesetzt wenn z.B. B12 nicht leer ist.
Dann crasht es natürlich bei dieser Zeile:
Code:
rngZiel.PasteSpecial xlPasteValues, Transpose:=False

Außerdem würde es Sinn machen den ersten WITH-Block nach dem EndIf abzuschließen.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
Hallo

Danke für die Info jetzt weiß ich wo das Problem liegt

Ich habe jetzt diesen Code

Code:
Sub loeschen_Begna90()

    With ThisWorkbook.Sheets("Lagerberechnung")
        .Range("B4").ClearContents
    End With
End Sub

so 

Code:
Sub loeschen_Begna90()

    With ThisWorkbook.Sheets("Lagerberechnung")
        .Range("B4").Value = 0
    End With
End Sub

umgeschrieben dadurch wird die Zelle nicht geleert sondern einfach eine 0 eingetragen und das Problem ist gelöst 19

Vielen Dank

Gruß

Klaumann2001
Antworten Top
#4
Statt
Code:
Sub Fertig_ALA140()
    Dim rngQuelle As Range
    Dim rngZiel As Range
          'Quelle definieren
    With ThisWorkbook.Sheets("Lagerberechnung")
        Set rngQuelle = .Range("E8")
            'Ziel definieren
    If .Range("B8") <> "" Then
        Set rngZiel = .Range("B8")
  End If
            'Daten kopieren und einfügen
  rngQuelle.Copy
        rngZiel.PasteSpecial xlPasteValues, Transpose:=False
    With Selection
        .Borders.LineStyle = xlLineStyleNone
    End With
        ActiveSheet.Range("A1").Select
End With
End Sub
reicht

Code:
with ThisWorkbook.Sheets("Lagerberechnung")
   if .Range("B8")<>"" then .range("B8")=.range("E8")
end with
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste