Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Doppelklick mit Return erzeugen

Doppelklick mit Return erzeugen
22.08.2018 18:46:38
Juergen
Hallo Forum!
Ich habe einen VBA erzeugt, der auf alle Zellen der Spalte L einen Hyperlink setzt.
Wenn ich diesen VBA in eine Tabelle einfüge, der bereits in Spalte L Werte stehen, muß ich jede Zelle in Spalte L mit Doppelklick für den VBA 'aktivieren'. Das ist bei mehreren hundert oder tausend Zeilen mühsam.
Wie kann ich ein Makro erzeugen, das den Doppelklick auf der jeweiligen Zelle (also L1,L2,L3 usw.) simuliert, wenn ich die Return-Taste drücke? Dann brauche ich nur die Return-Taste 'festhalten' und kann ihn einem Rutsch alle Zellen bearbeiten.
Wobei es ja letztlich gleich ist, welche Spalte ich bearbeite. Den Start in L1 kann ich ja manuell vornehmen.
Danke im Voraus für tolle Ideen
- Jürgen -

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelklick mit Return erzeugen
22.08.2018 19:50:42
ransi
Hallo Jürgen,
...muß ich jede Zelle in Spalte L mit Doppelklick für den VBA 'aktivieren'. ...
Das glaub ich nicht!
Du musst keine Zelle selecten und activaten um sie zu bearbeiten.
Schau dir mal dies an:
https://www.online-excel.de/excel/singsel_vba.php?f=78
ransi
AW: Doppelklick mit Return erzeugen
22.08.2018 21:00:20
Sepp
Hallo Jürgen,
ich beschäftige mich schon lange mit Excel/VBA, aber einen VBA zu erzeugen, ist mir noch nie gelungen. Wenn schon, dann schreibe ich Code, der dann von Excel als VBA-Code interpretiert wird.
Zeig mal deinen Code, .Select und .Activate sind in XL zu 99,9% unnötig!
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Doppelklick mit Return erzeugen
28.08.2018 13:41:31
Juergen
Hallo Sepp!
Es geht ja nicht um den eigentlich VBA. Der funktioniert ja.
Hier der Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range, D As Range
Dim Ws As Worksheet
Set C = Range("L:L") 'In diesem Eingabebereich wirkt der Code
Set Ws = Worksheets("Tax_codes")
If Target.Count = 1 Then
If Not Intersect(Target, C) Is Nothing Then
'Es wird in Spalte 1 (A) gesucht
Set D = Ws.Columns(1).Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues)
If Not D Is Nothing Then
Target.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:="Tax_codes!" & D. _
Address
Else
Target.Hyperlinks.Delete
End If
End If
End If
End Sub
Es geht nur darum, dass die Zellen in 'Range("L:L")' nicht automatisch mit dem Hyperlink belegt sind. Ich vermute, dass durch das Anklicken und Doppelklick auf der jeweiligen Zelle der Hyperlink erzeugt wird. Das kann bei (w.o. beschrieben) bei 500 bis 1000 Zellen recht mühselig werden.
Ich habe nun versucht, ein Makro zu erzeugen, das mir diese Arbeit abnimmt.
Es sieht wie folgt aus:
Sub Makro1()
'
' Makro1 Makro
'
' Tastenkombination: Strg+l
'
Range("K83").Select
ActiveCell.FormulaR1C1 = "GB215872893"
With ActiveCell.Characters(Start:=1, Length:=11).Font
.Name = "Calibri"
.FontStyle = "Standard"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Range("K88").Select
End Sub
Das Problem ist, dass das Makro die Zelle K83 (Range("K83")) direkt anspringt, den entsprechenden Zelleninhalt 'bestätigt' (durch Doppelklick) --> und dann wohl den Hyperlink erzeugt. So weit - so gut. Wenn ich dann STRG+L tippe, springt er natürlich wieder immer die gleiche Zelle.
Ich will aber, dass er nicht absolut die Zelle K83 in das Makro schreibt, sondern die Zelle, die ich gerade angeklickt habe. Durch Return springt er ja automatisch in die gleiche Zelle und eine Zeile weiter, dann soll er wieder Doppelklick machen u.s.w.
Ich hoffe, ich konnte mich einigermaßen verständlich ausdrücken.
Hast Du dazu eine Idee!
LG- Jürgen -
Anzeige
AW: Doppelklick mit Return erzeugen
28.08.2018 20:16:08
Sepp
Hallo Jürgen,
habe den Code getestet und es werden korrekte Hyperlinks erstellt!
Microsoft Excel Objekt Tabelle1
Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
  Dim rng As Range 
  Dim objWS As Worksheet 
   
  If Not Intersect(Target, Range("L:L")) Is Nothing Then 
    If Target.Count = 1 Then 
      'Es wird in Spalte 1 (A) gesucht 
      Set objWS = Sheets("Tax_codes") 
      Set rng = objWS.Columns(1).Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues) 
      If Not rng Is Nothing Then 
        Target.Hyperlinks.Add Anchor:=Target, Address:="", _
          SubAddress:="'" & objWS.Name & "'!" & rng.Address 
      Else 
        Target.Hyperlinks.Delete 
      End If 
    End If 
  End If 
   
  Set objWS = Nothing 
  Set rng = Nothing 
End Sub 
 
 
 
 

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Dein Problem liegt woanders, wie ist den Spalte L:L formatiert?
 ABCDEF
1Gruß Sepp
2
3

Anzeige
Doppelklick mit Return erzeugen
30.08.2018 10:48:57
Juergen
Hallo Sepp!
Danke für Deine Rückmeldung.
Ich habe mich offenbar falsch ausgedrückt.
Ja - es werden in Spalte L:L korrekte Hyperlinks erstellt! Aber erst - wenn ich nach Einfügen des VBA Werte in L:L erfasse. Ich füge aber den VBA in eine Liste ein, in der bereits Werte in L:L stehen.
Nachdem ich den VBA eingefügt habe, muß ich jeden Wert in der Spalte L:L, also von L1 bis Ln anklicken und mit Doppelklick zur Bearbeitung vorsehen. Erst dann wird der Hyperlink eingefügt.
Der eigentlich VBA ist nicht das Problem, sondern ein Makro (s.o. 'Tastenkombination: Strg+l'), der mir die Arbeit des jeweiligen 'Doppelklickens und weiter in die nächste Zeile' abnehmen soll.
Liebe Grüße - Jürgen -
Anzeige
AW: Doppelklick mit Return erzeugen
02.09.2018 16:21:54
Juergen
Habs rausgefunden:
Eigentlich gaaaanz einfach:
Sub Makro1()
' Makro1 Makro
' Tastenkombination: Strg+l
ActiveCell.Select
ActiveCell.FormulaR1C1 = ActiveCell
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige