Registriert seit: 13.08.2015
Version(en): 2007
Hallo!
Ich habe zwei Tabellenblätter. Im ersten befindet sich eine ellenlange Liste mit Artikeln und im zweiten ein von mir geschriebener Rechner.
Ich habe beide Tabellenblätter nebeneinander angeordnet und möchte nun, dass wenn ich im ersten Tabellenblatt auf einen Artikel doppelklicke, dieser in den Rechner im zweiten Tabellenblatt übertragen wird.
Mit folgendem VBA Code klappt das an sich ganz gut, jedoch fügt er die Werte nur auf dem selbigen Tabellenblatt ein und ich weiss nicht, was ich schreiben muss, damit er die Werte in das zweite überträgt:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 7 Then
If Target.Column = 1 Then
If Not IsEmpty(Target.Value) Then _
Cells(Cells(Rows.Count, 5).End(xlUp).Row + 1, 5).Value = Target.Value
Cancel = True
End If
End If
End Sub
Ich hoffe mir kann geholfen werde und freue mich auf Antworten!
Mit freundlichen Grüßen
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hallo!
Zitat:Cells(Cells(Rows.Count, 5).End(xlUp).Row + 1, 5).Value = Target.Value
... schreibt Dir etwas in die erste freie Zeile der Spalte E = 5
im aktiven Blatt!Du musst korrekt referenzieren:
Code:
With Tabelle2
.Cells(.Cells(.Rows.Count, 5).End(xlUp).Row + 1, 5).Value = Target.Value
End With
Den CodeName der Tabelle2 musst Du anpassen.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 13.08.2015
Version(en): 2007
Hallo Ralf
Wenn ich den von dir angegebenen Code einfüge bekomme ich die Fehlermeldung "End-if ohne If-Block".
Sieht nun wie folgt aus:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 7 Then
If Target.Column = 1 Then
If Not IsEmpty(Target.Value) Then _
With Tabelle2
.Cells(.Cells(.Rows.Count, 5).End(xlUp).Row + 1, 5).Value = Target.Value
End With
Cancel = True
End If
End If
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
14.08.2015, 01:49
(Dieser Beitrag wurde zuletzt bearbeitet: 14.08.2015, 01:52 von Käpt'n Blaubär.)
Hallo,
Code:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 7 Then
If Target.Column = 1 Then
If Not IsEmpty(Target.Value) Then _
With Tabelle2
.Cells(.Cells(.Rows.Count, 5).End(xlUp).Row + 1, 5).Value = Target.Value
End With
End If
Cancel = True
End If
End Sub
... so läuft Dein Code durch.
Bei dem von Dir oben geposteten Code erwartet Dich aber schon beim ersten Durchlauf die nächste Überraschung.
Er wird abschmieren, weil das
End Sub fehlt :19:
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hallo Peter!
Der Zeilenumbruch in der IsEmpty-Zeile muss weg und ein zusätzliches End If dazu:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 7 Then
If Target.Column = 1 Then
If Not IsEmpty(Target.Value) Then
With Tabelle2
.Cells(.Cells(.Rows.Count, 5).End(xlUp).Row + 1, 5).Value = Target.Value
End With
End If
Cancel = True
End If
End If
End Sub
Es ginge auch ein Einzeiler ohne With-Klammer, dann wird es m.E. aber unübersichtlich:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 7 Then
If Target.Column = 1 Then
If Not IsEmpty(Target.Value) Then _
Tabelle2.Cells(Tabelle2.Cells(Tabelle2.Rows.Count, 5).End(xlUp).Row + 1, 5).Value = Target.Value
Cancel = True
End If
End If
End Sub
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• Job90
Registriert seit: 13.08.2015
Version(en): 2007
Guten Morgen.
Vielen lieben Dank an Euch beide. Klappt alles wunderbar und so wie es soll.
Nochmals Danke!
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
14.08.2015, 09:49
(Dieser Beitrag wurde zuletzt bearbeitet: 14.08.2015, 09:56 von Käpt'n Blaubär.)
Hallo Ralf,
ja, Du hast recht, aber ich wollte den Code möglichst wenig verändern. Der Zeilenumbruch ist von mir dabei
allerdings wirklich unbeachtet geblieben. Ich kann da nur die Schuld auf die späte / frühe Stunde schieben. :05:
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
(14.08.2015, 07:51)RPP63 schrieb: Es ginge auch ein Einzeiler ohne With-Klammer, dann wird es m.E. aber unübersichtlich:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 7 Then
If Target.Column = 1 Then
If Not IsEmpty(Target.Value) Then _
Tabelle2.Cells(Tabelle2.Cells(Tabelle2.Rows.Count, 5).End(xlUp).Row + 1, 5).Value = Target.Value
Cancel = True
End If
End If
End Sub
Hallo Ralf,
als Einzeiler dann vielleicht so:
Code:
Tabelle2.Cells(Rows.Count, 5).End(xlUp).Offset(1).Value = Target.Value
Gruß Uwe
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hi Uwe!
Logisch!
War wohl auch bei mir ein wenig zu früh?
Da habe ich wohl auch zu sehr auf dem Ausgangscode aufgesetzt, ohne mir weitere Gedanken zu machen.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)