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
  [VBA] Ergebnis der Formel statt Formel in Zelle eintragen Rabe 2 48 05.12.2016, 14:51
Letzter Beitrag: Rabe
  Jahreskalender, Datum eintragen => automatisches einfärben in Kalender Fuxalex 4 110 03.12.2016, 23:42
Letzter Beitrag: schauan
  Text in einer Zelle automatisch eintragen, abhängig von anderen Zellen Willhelm82 25 265 01.12.2016, 14:24
Letzter Beitrag: Willhelm82
Question Zellinhalt in Intelligente Tabelle eintragen hellidor 2 57 22.11.2016, 16:07
Letzter Beitrag: hellidor
  Automatisch Datum in nächste freie Zelle eintragen NunoBrito 17 206 22.11.2016, 10:33
Letzter Beitrag: NunoBrito
Question Anzahl der Hyperlinks auf eine Zelle zählen ipsips 4 96 19.11.2016, 10:06
Letzter Beitrag: RPP63
  Bestimmter teil aus Zelle in eine andere Kopieren markaay 3 59 17.11.2016, 11:13
Letzter Beitrag: BoskoBiati
Lightbulb VBA Zeile in eine Arbeitsmappe kopieren wenn in der Zeile eine 1 steht Olossos 8 133 11.11.2016, 17:08
Letzter Beitrag: Kuwer
  Datum/Uhrzeit automatisch eintragen Marius4444 13 239 05.11.2016, 14:08
Letzter Beitrag: schauan
  FormulaLocal per VBA in Zelle eintragen sharky51 4 142 18.10.2016, 15:06
Letzter Beitrag: sharky51

Gehe zu:


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