Fehlermeldung bei Doppelklick-Funktion

Bild

Betrifft: Fehlermeldung bei Doppelklick-Funktion
von: Ines
Geschrieben am: 03.07.2015 19:35:45

Hallo Ihr Spezialisten,
ich möchte einen Range-Bereich kopieren in Abhängigkeit von einem Zellwert in unterschiedliche Arbeitsblätter. Grundsätzlich funktioniert das auch, es gibt aber eine Fehlermeldung, wenn der Doppelklick nicht in einer Zahlenzelle sondern einer Textzelle ausgeführt wird:
Die erste Zeile wird bemängelt: Laufzeitfehler 13 -Typen unverträglich
Mein Code:
... If Intersect(Sh.Range("$A$2:$N$3300"), Target) And Sh.Cells(Target.Row, 12).Value = "1" Then
Sheets("ARV1").Select
ActiveSheet.Unprotect ("passwort")
'Bereich c:g der Zeile, in die geklickt wurde, kopieren
Sh.Range(Sh.Cells(Target.Row, 3), Sh.Cells(Target.Row, 7)).Copy
'Im Blatt ARV1 in Spalte c:g anfuegen

Sheets("ARV1").Cells(lngz, 3).PasteSpecial xlPasteValues...
Gibt es eine Möglichkeit inhaltsunabhängig die ganze Zeile zu nehmen?
Vielen Dank im Voraus für Eure Hilfe. Ines

Bild

Betrifft: AW: Fehlermeldung bei Doppelklick-Funktion
von: Sepp
Geschrieben am: 03.07.2015 19:48:20
Hallo Ines,
aus deinem Schnipsel würde ich das machen.

If Not Intersect(sh.Range("$A$2:$N$3300"), Target) Is Nothing Then
  If IsNumeric(sh.Cells(Target.Row, 12)) Then
    If sh.Cells(Target.Row, 12).Value = 1 Then
      With Sheets("ARV1")
        .Unprotect ("passwort")
        Target.EntireRow.Copy
        .Cells(lngz, 1).PasteSpecial xlPasteValues
        .Protect ("passwort")
        Application.CutCopyMode = False
      End With
    End If
  End If
End If

Gruß Sepp


Bild

Betrifft: AW: Fehlermeldung bei Doppelklick-Funktion
von: Ines
Geschrieben am: 03.07.2015 20:35:29
Hallo Sepp,
vielen Dank. Scheinbar habe ich schlecht erklärt. Ich will, dass der Bereich c:g der Zeile, in die geklickt wurde kopiert wird. Wenn Spalte L=1 in ARV1, wenn L=2 in ARV2 usw.
Das funktioniert auch, solange in eine Spalte mit Zahl geklickt wird, bei Text (z.B. Spalte B) gibt es die Typenunverträglichkeits-Fehlermeldung.
Hast Du eine Idee? Danke.

Bild

Betrifft: AW: Fehlermeldung bei Doppelklick-Funktion
von: Sepp
Geschrieben am: 03.07.2015 22:42:13
Hallo Ines,
in das Modul der Tabelle aus der kopiert wird.

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim lngLast As Long
  Dim vntValues As Variant
  
  If IsNumeric(Cells(Target.Row, 12)) Then
    If SheetExist("ARV" & Cells(Target.Row, 12)) Then
      Cancel = True
      With Sheets("ARV" & Cells(Target.Row, 12))
        lngLast = Application.Max(2, .Cells(.Rows.Count, 3).End(xlUp).Row + 1)
        vntValues = Range(Cells(Target.Row, 3), Cells(Target.Row, 7))
        .Cells(lngLast, 3).Resize(1, UBound(vntValues, 2)) = vntValues
      End With
    End If
  End If
  
End Sub


Private Function SheetExist(ByVal sheetName As String, Optional Wb As Workbook) As Boolean
  Dim wks As Worksheet
  On Error GoTo ERRORHANDLER
  If Wb Is Nothing Then Set Wb = ThisWorkbook
  For Each wks In Wb.Worksheets
    If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function
  Next
  ERRORHANDLER:
  SheetExist = False
End Function


Gruß Sepp


Bild

Betrifft: Deshalb: Intersect liefert ein Objekt, ...
von: Luc:-?
Geschrieben am: 03.07.2015 21:25:21
…die Schnittmenge der Bereiche als Bereich oder, falls es keine gibt, das unbestimmte Objekt Nothing, Ines;
das kann man nicht per And mit einem Wahrheitswert verknüpfen, sondern nur, indem der 1.Teil der CodeZeile ebenfalls einen Wahrheitswert liefert, was bei Not Intersect(Sh.Range("$A$2:$N$3300"), Target) Is Nothing der Fall wäre, wie es bereits Sepp gezeigt hat.
Gruß, Luc :-?

Bild

Betrifft: AW: Deshalb: Intersect liefert ein Objekt, ...
von: Ines
Geschrieben am: 03.07.2015 23:36:09
Vielen Dank, es funktioniert mit dem ersten Vorschlag. Ich habe das jetzt in der Arbeitsmappe für jedes Blatt extra eingefügt. Ist es besser, den zweiten Vorschlag in die einzelnen Tabellenblätter zu kopieren oder ist das egal??
Ich wünsche Euch einen tollen Abend.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Fehlermeldung bei Doppelklick-Funktion"