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

Fehlermeldung bei Doppelklick-Funktion

Fehlermeldung bei Doppelklick-Funktion
03.07.2015 19:35:45
Ines
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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung bei Doppelklick-Funktion
03.07.2015 19:48:20
Sepp
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

Anzeige
AW: Fehlermeldung bei Doppelklick-Funktion
03.07.2015 20:35:29
Ines
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.

AW: Fehlermeldung bei Doppelklick-Funktion
03.07.2015 22:42:13
Sepp
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

Anzeige
Deshalb: Intersect liefert ein Objekt, ...
03.07.2015 21:25:21
Luc:-?
…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 :-?

AW: Deshalb: Intersect liefert ein Objekt, ...
03.07.2015 23:36:09
Ines
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.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige