Hilfe mit BeforeDoubleClick Makro

  • Excel

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Hilfe mit BeforeDoubleClick Makro

    Hallo zusammen,

    ich bräuchte eine Hilfe mit einem Makro das ich benötige.

    Es werden zwei Doppelklick Funktionen benötigt.

    Funktion 1:
    In einer beliebigen Zelle der Spalte A des Tabellenblattes "Bestell-Liste" soll per Doppelklick eine "1" eingetragen werden.

    Funktion 2:
    Der Wert (Kundennummer) aus einer beliebigen Zelle der Spalte B des selben Tabellenblattes "Bestell-Liste" soll per Doppelklick in das Tabellenblatt "Kunden-Anzeige in Zelle E8 kopiert werden ohne die bestehende Formatierung zu verändern.

    Durch die Eingabe der Kundennummer in Zelle E8 werden dann die Kundendaten über SVerweis Funktion weiter unten dargestellt.

    Danke für eure Hilfe!!

    Liebe Grüße und schönen Abend
    Pascal

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „pascal0505“ ()

    Visual Basic-Quellcode

    1. ​Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, ByRef Cancel As Boolean)
    2. If Target.Column = 1 Then
    3. Target.Value = 1
    4. Cancel = True
    5. ElseIf Target.Column = 2 Then
    6. Range("E8").Value = Target.Value
    7. Cancel = True
    8. End If
    9. End Sub
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Vielen Dank schon mal.

    Der angeklickte Eintrag einer beliebigen Zelle der Spalte B des Tabellenblattes "Bestell-Liste" soll im Tabellen-Blatt "Kunden-Anzeige" in Zelle E8 eingetragen werden ohne die bestehende Formatierung der Zelle E8 zu verändern. :)

    Danke nochmals für die Hilfe!

    LG
    Pascal

    petaod schrieb:

    Visual Basic-Quellcode

    1. ​Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, ByRef Cancel As Boolean)
    2. If Target.Column = 1 Then
    3. Target.Value = 1
    4. Cancel = True
    5. ElseIf Target.Column = 2 Then
    6. Range("E8").Value = Target.Value
    7. Cancel = True
    8. End If
    9. End Sub


    Wieso sollte man hier Cancel auf True setzen?

    pascal0505 schrieb:

    Tabellen-Blatt "Kunden-Anzeige" in Zelle E8 eingetragen werden
    Dann halt einfach das entsprechende Blatt adressieren.
    Also statt ​Range("E8").Value nimm Worksheet("Kunden-Anzeige").​Range("E8").Value

    cry.baby schrieb:

    Wieso sollte man hier Cancel auf True setzen?
    Damit das Excel-Standardverhalten des DoubleClick abgewehrt wird.
    Wenn du das nicht machst, tut er zwar was er soll, steht aber anschliessend im Edit-Modus der Zelle.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    pascal0505 schrieb:

    Tabellen-Blatt "Kunden-Anzeige" in Zelle E8 eingetragen werden
    Dann halt einfach das entsprechende Blatt adressieren.
    Also statt Range("E8").Value nimm Worksheet("Kunden-Anzeige").Range("E8").Value



    Vielen Dank.

    Allerdings kommt es zum Problem, wenn ich deinen Code so nutze.

    Visual Basic-Quellcode

    1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, ByRef Cancel As Boolean)
    2. If Target.Column = 1 Then
    3. Target.Value = 1
    4. Cancel = True
    5. ElseIf Target.Column = 2 Then
    6. Worksheet("Kunden-Anzeige").Range("E8").Value
    7. Cancel = True
    8. End If
    9. End Sub


    "Worksheet" wird markiert mit der Meldung "Fehler beim Kompilieren: Sub oder Function nicht definiert"

    Wenn ich deinen ursprünglichen Code verwende, funktioniert es wie es soll.

    Zudem wäre es toll, wenn ich in Spalte A mit Doppelklick eine 1 eintragen und mit einem weiteren Doppelklick den Inhalt der Zelle wieder löschen könnte.

    Vielen Dank für deine Hilfe.

    Liebe Grüße
    Pascal
    1)
    sieh es als C&P-Bremse, die dich zum selbst nachdenken bringen soll.
    die korrekte Auflistung heiß Worksheets.

    2)
    Ändere Zeile 3 in
    If Target.Value = 1 Then Target.Value = "" Else Target.Value = 1
    oder besser:
    If Target.Value = 1 Then Target.ClearContents Else Target.Value = 1

    Das ist jetzt keine besonders anspruchsvolle Aufgabenstellung.
    Falls du mittelfristig die Programmierung ernst nehmen willst, solltest du dir solch einfache Grundfunktionen eigentlich selbst erarbeiten können.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --