Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Werte mit Doppelklick in eine Zelle eintragen
#1
Hallo VBA-Freunde,

in dem Bereich K23Tongue50 hole ich mir aus einer anderen Mappe mit einem Sverweis Daten.

nun möchte ich z.B. auf die Zelle K25 einen Doppelklick machen und dabei die Daten welche Daneben stehen in einen anderen Bereich holen, z.B. das Geburtsdatum aus der Zelle M24 in die E21, die Straße aus der N24 in die A24 und so weiter.

Wie müsste der Ansatz dazu lauten?
Ich komme nicht drauf.

Vielen Dank für eure Hilfe schon im voraus.
Es ist nicht genug, zu wissen. Man muss es auch anwenden.
Es ist nicht genug, zu wollen. Man muss es auch tun.
to top
#2
Hi Heinz,

(25.08.2014, 10:45)Heinz Ulm schrieb: Wie müsste der Ansatz dazu lauten?

ist die Ziel-Zeile und die Ziel-Spalte tatsächlich so willkürlich:
Du doppelklickst in K25, holst den Wert von M24 nach E21 und den von N24 nach A24?

Wie ist das, wenn Du in K30 doppelklickst?

Ich würde prinzipiell so vorgehen:
Makro-Rekorder starten, ein Mal die Aktion durchführen. Nun hast Du schon mal ein Grundgerüst, das Du dann anpassen kannst
  • Zuerst, das Doppelklickereignis nehmen,
  • dann den Bereich der Wirksamkeit einschränken auf den tatsächlich benötigten Bereich:
    Code:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       Dim RaBereich As Range                                          ' Variable für überwachten Bereich
       Dim RaZelle As Range                                            ' Variable für Zelle, die zur Zeit bearbeitet wird
       Dim Zeile as Integer                                            ' Variable für Zeilenzahl
       Set RaBereich = Range("K:K") ', D13:D19")                       ' Bereich der Wirksamkeit; nach dem Hochkomma ein weiterer Bereich, dazu ) und ' weglöschen
       Set RaBereich = Intersect(RaBereich, Range(Target.Address))     ' prüfen, ob veränderte Zelle im überwachten Bereich
       If RaBereich Is Nothing Then Exit Sub                           ' keine Zelle im überwachten Bereich
       Application.ScreenUpdating = False                              ' Bildschirmaktualisierung abschalten
       Application.EnableEvents = False                                ' Reaktion auf Eingabe abschalten
       ...
  • dann die aktuelle Zeile ermitteln
    Code:
    Zeile = RaZelle.Row
  • und relativ dazu die zu kopierenden Zeilen und die Spalten in das Makro eintragen
    Hier den aufgezeichneten Code anpassen!
    Code:
    .
             Range("E" & Zeile - 3).Value = Range("M" & Zeile - 1).Value         ' Wert kopieren: M24 nach E21
             Range("A" & Zeile - 1).Value = Range("N" & Zeile - 1).Value         ' Wert kopieren: N24 nach A24
  • "activate" und "select" entfernen
  • ...
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
to top
#3
Hallo Ralf,

ich habe mal den Code in einer Testtabelle zusammengebaut um diesen zu testen:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim RaBereich As Range                                          ' Variable für überwachten Bereich
    Dim RaZelle As Range                                            ' Variable für Zelle, die zur Zeit bearbeitet wird
    Dim Zeile As Integer                                              ' Variable für Zeilenzahl
    Set RaBereich = Range("K:K") ', D13:D19")                       ' Bereich der Wirksamkeit
    Set RaBereich = Intersect(RaBereich, Range(Target.Address))     ' prüfen, ob veränderte Zelle im überwachten Bereich
    If RaBereich Is Nothing Then Exit Sub                           ' keine Zelle im überwachten Bereich
    
    Zeile = RaZelle.Row
  
    Range("E" & Zeile - 3).Value = Range("M" & Zeile - 1).Value         ' Wert kopieren: M24 nach E21
    Range("A" & Zeile - 1).Value = Range("N" & Zeile - 1).Value         ' Wert kopieren: N24 nach A24
End Sub

Bei Zeile =RaZelle.row

bricht mir der Code mit der Fehlermeldung

Laufzeitfehler 91
Objektvariable oder With-Blockvariable nicht festgelegt.

Was muss ich da noch ändern?

Ich werde die kopierte Zeile an einen bestimmten Platz legen und dann die Zellen von dort aus füllen, das geht jetzt auch schon per Button, wenn ich eindeutige Vergleiche habe, bei der Eingabe von Müller Hans können aber verschiedene Müller da sein. Und den richtigen will ich dann per Doppelklick haben.
Es ist nicht genug, zu wissen. Man muss es auch anwenden.
Es ist nicht genug, zu wollen. Man muss es auch tun.
to top
#4
Hallo Heinz,

ändere die Codezeile mal so ab

Code:
Zeile = Target.Row
Gruß Stefan
Win 7 / Office 2007
to top
#5
Hallo ihr,

vielen Dank,

mit tarket.row war das Problem gelöst.
Es ist nicht genug, zu wissen. Man muss es auch anwenden.
Es ist nicht genug, zu wollen. Man muss es auch tun.
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Text in einer Zelle über eine Seite hinaus ggunter 10 101 Vor 3 Stunden
Letzter Beitrag: ggunter
  Werte in einer Zeile addieren bis Zielwert erreicht und verwendete Werte markieren hoteu 2 60 12.01.2017, 13:04
Letzter Beitrag: hoteu
Question Text aus eine Zelle als matimatische Lösung Tubbar 1 42 10.01.2017, 16:45
Letzter Beitrag: steve1da
  Werte aus verschiedenen Zellen auslesen und in einer Zelle eintragen Robbie1985 2 46 07.01.2017, 10:39
Letzter Beitrag: WillWissen
  Mehrere Werte in eine Zelle einfügen Faiko 2 91 02.01.2017, 17:44
Letzter Beitrag: schauan
  2 Werte mit definierten Kriterien aus einer Zelle Multiplizieren heppi14 6 149 28.12.2016, 23:29
Letzter Beitrag: Jockel
  Importdaten in Spalten eintragen Damrak2010 6 128 26.12.2016, 07:39
Letzter Beitrag: Damrak2010
  Textbox Inhalt einer Userform in eine bestimmte Zelle schreiben - VBA - Hiiilfe Chris1112 9 186 20.12.2016, 10:21
Letzter Beitrag: Rabe
  Ich suche eine Formel die bei falschen Wert eine 1 anzeigt biosprofi 3 116 15.12.2016, 23:11
Letzter Beitrag: biosprofi
  Datum nachträglich eintragen Jockel 13 161 14.12.2016, 19:39
Letzter Beitrag: Jockel

Gehe zu:


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