Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Doppelklick kopieren immer oben in Liste als
#1
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


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 15,07 KB / Downloads: 1)
Antwortento top
#2
Letzter Doppelklick stets in A1 (bedeutet; Rest wandert nach unten)

oder

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

?
gruß
Marco
Antwortento top
#3
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...
Antwortento top
#4
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.
gruß
Marco
[-] Folgende(r) 1 Benutzer sagt Danke an Mase für diesen Beitrag:
  • elamigo
Antwortento top
#5
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
Antwortento top
#6
geht wieder alles.

Kann ich einstellen das bestimmte Bereiche von dem Doppelklick profitieren? mit if arbeiten
Antwortento top
#7
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
gruß
Marco
[-] Folgende(r) 1 Benutzer sagt Danke an Mase für diesen Beitrag:
  • elamigo
Antwortento top


Gehe zu:


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