PDA

Vollständige Version anzeigen : Doppelklick Zeile(n) nach unten


Lilalauneandreas
25.09.2016, 11:13
Hallo bräuchte etwas Nachhilfe :entsetzt:

Frage 1
Zur Zeit funktioniert das unten Eingefügte nur, wenn ich es- was in einem Modul gespeichert ist- Kopiere und in die Excel Objekte unter meiner erstellten Tabelle "Bearbeiten" Einfüge.

Jedoch soll die Funktion immer in der Tabelle"Bearbeiten" verfügbar sein, wenn sie erstellt wurde.
Sie wird pro Arbeitsmappe erst Erzeugt und hat immer den Namen "Bearbeitung".

Frage 2


Folgender Ablauf für die Aktion "Doppelklick eine Zeile nach unten" ist für mich von Bedeutung:

ein Doppelklick- Zeilen werden nach unten verschoben- und eine Leere eingefügt. "Funktioniert":grins:
weiterer Doppelklick- Ausführung das selbe aber es muß meine Userform1 schließen. "Funktioniert ohne Schließen der Userform":mad:
Dazu würde ich den Befehl: Unload Me nutzen.:)

Wie kann ich Ausführen lassen, wenn "Doppelklick eine Zeile nach unten" meine Userform1 schließt- sobald ich mehrere Zeilen nach unten verschoben habe, als eine?
Soll dazu ein Zähler verwendet werden? Kann wer helfen?

Option ExplicitPublic Sub Worksheet_BeforeDoubleClick1(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 3 Then
Range(Cells(Target.Row, 2), Cells(Target.Row, Columns.Count)).Insert Shift:=xlDown, _
CopyOrigin:=xlFormatFromLeftOrAbove
' Target.Offset(-1, 0).Formula = "=Row()-4"
Cancel = True
End If
End Sub

Danke für Eure Hilfe.
LG Lilalauneandreas:rolleyes:

rastrans
25.09.2016, 12:36
Hallo,

zu Frage 1: Ich habe keine Ahnung was du willst. Ohne Beispielmappe werde ich diese Frage mal irgnorieren.

zu Frage 2: Wann stelle ich fest, das du zwei Zeilen verschoben hast? Wenn du zwischendurch deine Arbeitsmappe verändert hast, wenn du eine andere Zelle markiert hast...? Ich habe es mal so geschrieben, das es nach einer Zeit berechnet wird. Solltest du innerhalb von 3 Sekunden eine weitere Zeile einfügen, dann wird auch dein Formular geschlossen.

Nur habe ich keine Ahnung, wie dein Formular heisst. Das musst du noch eintragen. Wenn du hier zwei Zeilen einträgst, dann kommt momentan nur im Direktfester ein Kommentar.

Viele Grüße
rastransPublic Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Static datLastDoubleClick As Date

If Target.Column = 3 Then
Range(Cells(Target.Row, 2), Cells(Target.Row, Columns.Count)).Insert Shift:=xlDown, _
CopyOrigin:=xlFormatFromLeftOrAbove
' Target.Offset(-1, 0).Formula = "=Row()-4"
Cancel = True
If Abs(DateDiff("s", datLastDoubleClick, Time)) < 3 Then
'Unload (Userform)
Debug.Print "weiterer Doppelklick"
End If
datLastDoubleClick = Time
End If
End Sub

Lilalauneandreas
25.09.2016, 13:07
Danke für die Geniale Idee, rastrans.

Zur Frage1- Würde den Code immer in der Tabelle "Bearbeiten" ausführen, jedoch funktioniert dies nur, wenn ich den Code in die Tabelle"Bearbeiten" im VBA Projekt direkt auf die Tabelle "Bearbeiten" geh, den Code dort unter Worksheet_ Einfüge.
Ansonsten kann ich die Funktion des Doppelklick und Spalte dadurch einfügen nicht nutzen. Irgendwie muss ich das doch in ein Modul packen, und von dort auch mit einer Schaltfläche in meiner Userform1 ausführen können.
MfG Lilalauneandreas

rastrans
25.09.2016, 13:22
Meinen letzten Code kannst du in einem Modul speichern und einfach aufrufen. Auch über einen Button in einem Userform.

Lilalauneandreas
25.09.2016, 14:13
Danke, ein großes Lob an den Helfer. �� nun geht's wie ich es wollte.