Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Per Doppelklick kopieren und einfügen

Forumthread: Per Doppelklick kopieren und einfügen

Per Doppelklick kopieren und einfügen
12.05.2021 13:38:48
oraculix
Hallo
Habe Versucht mir ein Makro zu erstellen. Leider Bekomme ich es nicht zum laufen ohne Eure Hilfe.
In Range("A3:A500") soll per Doppelklick ein Eintrag gewählt werden und in die Zwischenablage kopiert werden.
Dann soll das Arbeitsblatt Sheets("FilmeAnsehen").Select ausgewählt werden.
Dann kommt ein Suchabfrage Makro Call doppelklickSucheAnsehen()
Dann erscheint eine Textbox wo aus der Zwischen Ablage eingefügt werden soll was vorher ja gemacht wurde.
Und zuletzt sollte noch der ok Butten gedrückt werden.
Hoffe jemand kann mir helfen
Danke

Sub doppelklickSucheAnsehen()
Range("A3:A500").Select
'Dann sollte die ausgewählte Zelle per Doppelklick kopiert werden
Sheets("FilmeAnsehen").Select
Call AnsehenFindenUndKopieren2
'Dann sollte aus der Zwischenablage in die Textbox kopiert werden
'und mit ok bestätigt werden
End Sub
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per Doppelklick kopieren und einfügen
12.05.2021 14:19:45
Hajo_Zi
Select, Activate usw. ist in VBA zu 99,8% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de
Der Cursor ist kein Hund, der überall rum geführt werden muss.
Falls Link nicht ausgeführt wird:
1. Link kopieren
2. rechte Maustaste neues Fenter.
3. Umschaltstaste drücken und Klick auf den Link
4. STRG+ Link mit Maus aktivieren
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf Deine Tabelle, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Der Code wirkt nur in dieser Tabelle.

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$B$2" Then
MsgBox Target
End If
End Sub
GrußformelHomepage
Anzeige
AW: Per Doppelklick kopieren und einfügen
12.05.2021 14:28:09
oraculix
Danke für die rasche Antwort
Habe leider bemerkt das es keine Textbox ist sondern eine Inputbox. sorry
mittlerweile habe ich es so versucht.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Target.Resize(1).Copy
Sheets("FilmeAnsehen").Select
Call AnsehenFindenUndKopieren2
Application.SendKeys "^{v}"  'das wird nicht in die Inputbox Kopiert
Application.SendKeys "^{Enter}" 'Enter wird nicht ausgeführt
End Sub

Anzeige
AW: Per Doppelklick kopieren und einfügen
12.05.2021 14:34:20
Hajo_Zi
warum bei einer Zelle Resize?
Zu Deinem Makro kann ich nichts schreiben.
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
ändern.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
Gruß Hajo
Anzeige
AW: Per Doppelklick kopieren und einfügen
12.05.2021 14:42:07
oraculix
es funkt jetzt so
nur der Tastenbefehl scheitert noch str +v einfügen in die Inputbox und dann Enter
ist das richtig?
Application.SendKeys "^{v}" 'das wird nicht in die Inputbox Kopiert
Application.SendKeys "^{Enter}" 'Enter wird nicht ausgeführt
AW: Per Doppelklick kopieren und einfügen
12.05.2021 14:48:10
Hajo_Zi
Gut ich bin dann raus, siehe mein letzten Beitrag.
VarPrints = Application.InputBox("Anzahl der Ausdrucke", "Drucken", Target)
Gruß Hajo
Anzeige
AW: Per Doppelklick kopieren und einfügen
12.05.2021 15:04:35
oraculix
Es fehlt der Tastenbefehl strg+v weil eine Inputbox erscheint vom makro
Call AnsehenFindenUndKopieren2
Und der Enter befehl ist das richtig so? Application.SendKeys "{Enter}"
muss ich was beachten bei de den geschwungenen Klammern?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim varPrints, varErgebnis
Cancel = True
Target.Resize(1).Copy
Call AnsehenFindenUndKopieren2
' hier liegt das Problem
Application.SendKeys "^{v}"  'das strg+v  wird nicht in die Inputbox Kopiert
Application.SendKeys "{Enter}" 'Enter wird nicht ausgeführt
Sheets("Gefunden").Select
End Sub

Anzeige
AW: Per Doppelklick kopieren und einfügen
12.05.2021 15:37:16
Daniel
Hi
es ist nicht sinnvoll, die Inputbox so zu steuern.
wenn du das selbe Makro verwenden willst, einmal für die Eingabe in die Inputbox und einmal per Auswahl mit Doppelklick, würde ich das mit hilfe einer "globalen Variable" programmieren.
dh bei Doppelklick schreibst du den Wert in die Variable
und rufst dann das Makro mit der Inputbox auf.
hier prüfst du dann, ob die globale Variable einen Wert hat und wenn nein, führst du die Inputbox aus, ansonsten übernimmst du den Variablenwert:
also im Modul des Tabellenblatts:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
xxx = Target.Value
Call AnsehenFindenUndKopieren2
End Sub
im allgemeinen Modul

Option Excplicit
Publix xxx as  string
Sub  AnsehenFindenUndKopieren2()
Dim Eingabe as string
if xxx = "" then
Eingabe = Inputbox(...)
else
Eingabe = xxx
End if
hier dann der weitere Code
xxx = "" 'Globlae Variable leeren, sonst ist der beim nächsten mal auch ohne Doppelklick gefüllt
End Sub
Gruß Daniel
Anzeige
AW: Per Doppelklick kopieren und einfügen
12.05.2021 15:53:00
oraculix
Danke
Publix xxx as string Fehler und ist rot? erwartet Anweisungsende?
AW: Per Doppelklick kopieren und einfügen
12.05.2021 15:57:06
Daniel
"Public" ist der Schlüsselbegriff, um zu kennzeichnen dass die Variable, Sub oder Function in allen Modulen des Projekts zur Verfügung steht, nicht Publix.
du musst das schon richtig schreiben.
Gruß Daniel
AW: Per Doppelklick kopieren und einfügen
12.05.2021 16:03:38
oraculix
Public xxx As String 'Habe es in Public umbenannt nütz nix
Du hast ja auch Publix geschrieben was muss ich da genau schreiben?
Es kommt auch der Fehler Variable nicht definiert.
Anzeige
AW: Per Doppelklick kopieren und einfügen
12.05.2021 16:06:38
Daniel
ich hab mich da vertippt.
das Forum kann VBA-Codes leider nicht erkennen.
war ja auch nur eine Prinzipdarstellung, da ich den Code deines zweiten Makros, dass du da aufrufst nicht kenne.
lade mal ne Beispieldatei hoch.
Gruß Daniel
AW: Per Doppelklick kopieren und einfügen
12.05.2021 16:32:03
oraculix
sorry das ist zu kompliziert mit hochladen.
im prinzip funkt es jetzt aber es wird nichts in die zwischenablage kopiert und nicht in die inputbox
kopiert. aber immerhinn keine fehler musste

Public Sub AnsehenFindenUndKopieren2() neu erstellen weil doppelt

Public Sub AnsehenFindenUndKopieren3()

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
xxx = Target.Value
Call AnsehenFindenUndKopieren
End Sub
Public xxx As String
Sub AnsehenFindenUndKopieren3()
Dim Eingabe As String
If xxx = "" Then
' Eingabe = Inputbox(...)
Else
Eingabe = xxx
End If
'hier dann der weitere Code
xxx = "" 'Globlae Variable leeren, sonst ist der beim nächsten mal auch ohne Doppelklick gefüllt
End Sub

Anzeige
AW: Per Doppelklick kopieren und einfügen
12.05.2021 22:34:54
Daniel
Das hielt ich für überflüssig.
Aus der Inputbox wird der Wert in eine Variable geschrieben.
Wenn man den Wert schon irgendwo anders hat, kann man ihn auch direkt in diese Variable schreiben.
Der Weg über Zwischenablage ist da unnötig, so wie wenn man einen Screenshot mit dem Fotoapparat macht und dann das Bild hochlädt.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Doppelklick zum Kopieren und Einfügen in Excel automatisieren


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor:

    • Drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Code für das Doppelklick-Ereignis einfügen:

    • Klicke auf das entsprechende Arbeitsblatt in der Projekt-Explorer-Leiste.
    • Füge den folgenden Code in das rechte Fenster ein:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       Cancel = True
       Target.Copy ' Kopiere den Inhalt der Zelle
       Call AnsehenFindenUndKopieren2 ' Rufe das Makro auf
    End Sub
  3. Das Ziel-Makro erstellen:

    • Erstelle ein neues Modul (Rechtsklick auf "Module" > "Einfügen" > "Modul") und füge diesen Code ein:
    Public xxx As String
    
    Sub AnsehenFindenUndKopieren2()
       Dim Eingabe As String
       If xxx = "" Then
           Eingabe = Application.InputBox("Bitte gib einen Wert ein:", "Eingabe")
       Else
           Eingabe = xxx
       End If
       ' Hier füge den Code hinzu, um mit dem Eingabewert weiterzuarbeiten
       xxx = "" ' Leere die Variable für den nächsten Einsatz
    End Sub
  4. Testen des Codes:

    • Schließe den VBA-Editor und teste den Doppelklick auf eine Zelle im definierten Bereich (z.B. A3:A500).

Häufige Fehler und Lösungen

  • Problem: Der Wert wird nicht in die Inputbox kopiert.

    • Lösung: Stelle sicher, dass die Variable xxx korrekt gesetzt wird, bevor das Makro aufgerufen wird.
  • Problem: Der Befehl Application.SendKeys funktioniert nicht zuverlässig.

    • Lösung: Vermeide SendKeys, da es unvorhersehbare Ergebnisse liefern kann. Nutze stattdessen direkt die Variablen.
  • Problem: Fehler „Variable nicht definiert“.

    • Lösung: Stelle sicher, dass alle Variablen korrekt deklariert sind, insbesondere wenn du Public anstelle von Publix verwendest.

Alternative Methoden

  • Verwendung von globalen Variablen: Speichere Werte in globalen Variablen, um sie in verschiedenen Makros zu verwenden. Dies vermeidet die Notwendigkeit, Werte über die Zwischenablage zu kopieren.

  • Formularsteuerelemente: Erstelle ein benutzerdefiniertes Formular mit Steuerelementen, um Eingaben zu erfassen, anstatt auf Inputboxen zurückzugreifen.


Praktische Beispiele

  • Kopieren eines Wertes: Wenn du z.B. in Zelle A3 einen Filmnamen hast und darauf doppelt klickst, wird dieser in die Inputbox übertragen, um weitere Aktionen auszuführen.

  • Suchfunktion erweitern: Du kannst die AnsehenFindenUndKopieren2-Subroutine erweitern, um die Eingabe mit einer Datenbank oder Liste abzugleichen.


Tipps für Profis

  • Vermeide Select und Activate: Diese Befehle sind in VBA oft überflüssig und können den Code verlangsamen. Greife direkt auf Objekte zu.

  • Nutze Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Probleme während der Ausführung deines Codes zu lösen.

  • Dokumentation: Kommentiere deinen Code gut, um die Nachvollziehbarkeit zu erhöhen und anderen Lesern zu helfen.


FAQ: Häufige Fragen

1. Wie kann ich die Verwendung von Inputboxen optimieren? Es ist sinnvoll, die Werte in Variablen zu speichern, um sie bei wiederholten Aktionen wiederzuverwenden.

2. Warum funktioniert Application.SendKeys nicht wie erwartet? SendKeys kann unzuverlässig sein, da es von der Benutzeroberfläche abhängt. Vermeide diesen Befehl, wenn möglich.

3. Wo finde ich mehr Informationen zu VBA? Du kannst Online-Ressourcen wie Hajo-Excel.de besuchen, um mehr über VBA und Excel-Programmierung zu lernen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige