Clever-Excel-Forum

Normale Version: Doppelklick kopieren immer oben in Liste als
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag,

ich kopiere derzeit aus dem Tabellenblatt "Notes" per Doppelklick in ein anderes Tabellenblatt. Ich hab erstmal mit cases gearbeitet, diese sind dann doch etwas steif. Wie kann ich es gewährleisten das beim kopieren der zu kopierende Text immer oben in der Liste auf der Tabelle "Ausgabe" ist. Also prüft ob in a1,a2.... etc schon text drinne ist, wenn nicht dann kopieren wenn ja dann eine Zeile weiter und dann da prüfen. 

Falls jemandem nur der Code reicht: 

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Sheets("Notes")
   Select Case Target.Address(False, False)
  
          
        Case "A1"

           .Range("A1").Copy
           Sheets("Ausgabe").Range("A1").PasteSpecial (xlPasteValues)

        Case "A2"

           .Range("A2").Copy
           Sheets("Ausgabe").Range("A2").PasteSpecial (xlPasteValues)
          
        Case "A3"

           .Range("A3").Copy
           Sheets("Ausgabe").Range("A3").PasteSpecial (xlPasteValues)
          
         Case "A4"

           .Range("A4").Copy
           Sheets("Ausgabe").Range("A4").PasteSpecial (xlPasteValues)
          
            
          
   End Select
End With
Application.CutCopyMode = False

End Sub
 
Danke
Letzter Doppelklick stets in A1 (bedeutet; Rest wandert nach unten)

oder

Letzter Doppelklick nächste freie Zelle in Spalte A (bedeutet; unten anhängen)

?
Doppelklick dann unten an die Tabelle anhängen.
Also:

1. Doppelklick = in A1 kopieren
2. Doppelklick = in A2 kopieren
3. Doppelklick = in A3 kopieren
etc...
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    With ThisWorkbook.Worksheets("Ausgabe")
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1) = Target.Value
    End With
    '*** Wenn nach Doppelklick nicht in Editiermodus soll, dann True, sonst False
    Cancel = True
End Sub

Hinweis:
Auf Fehlerbehandlung wurde verzichtet.
Bedeutet, musst sicherstellen, dass bspw. das Arbeitsblatt 'Ausgabe' nicht umbenannt/gelöscht wird.
Das klappt schon super, danke! 

Zur Perfektion fehlt mir noch wie ich definieren kann in welcher Zeile der "Ausgabe" die neue Tabelle dann starten soll. In dem Fall startet er bei A2. 
Wäre cool wenn es eine Möglichkeit gibt eine beliebige Zelle zu definieren wo er dann mit der neuen Liste startet.

Okay ich habs:

(.Rows.Count, 1) die 1 ist die Spalte
Offset(1) die 1 ist die Zeile
geht wieder alles.

Kann ich einstellen das bestimmte Bereiche von dem Doppelklick profitieren? mit if arbeiten
Ja. Du weisst über das Targetobjekt, welche Zelle/Spalte/Zeile/ ob Schnittmenge

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    '*** Anhand Zeile selektiert
    Select Case Target.Row
        '*** Zeile 1
        Case 1
        '*** Zeilen 2 bis 3
        Case 2 To 3
        '*** Zeilen 10-15 und 20 bis 25
        Case 10 To 15, 20 To 25
        '*** Zeile 102,103 und 105
        Case 102, 103, 105
        '*** jede Andere
        Case Else
       
    End Select
       
    '*** Anhand Spalte selektiert
    Select Case Target.Column
        '*** Spalte 1
        Case 1
        '*** Spalten 2 bis 3
        Case 2 To 3
        '*** Spalten 10-15 und 20 bis 25
        Case 10 To 15, 20 To 25
        '*** Spalte 102,103 und 105
        Case 102, 103, 105
        '*** jede Andere
        Case Else
       
    End Select
       
    '*** Anhand Bereichen
    If Not Application.Intersect(Target, Range("A1:B15")) Is Nothing Then
   
    End If
       
End Sub