3.9k Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (926 Punkte)
Guten Morgen,
am Ende eines Makros soll die direkte Zellbearbeitung aktiviert sein.
Wie lautet die anweisung dazu?
activeCell.??

mfg
Wolfgang

17 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Wolfgang,

meines Wissens kann die direkte Zellbearbeitung nicht für einzelne Zelle sondern nur für das gesamte Arbeitsblat aktiviert werden.

So müsste die Anweisung lauten:

Application.EditDirectlyInCell = True




Feedback wäre nett
Gruss Rainer
_____________________
Windows 7 Ultimate (x64)
Office 2007 Ultimate
Office 2003 Professional
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo,
danke Rainer, ich möchte folgendes:
dieses Makro ergänzen:

[code]Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngRange As Range
    On Error Resume Next
    Set rngRange = ThisWorkbook.Worksheets("Tabelle1").Range(Target.Value)
    On Error GoTo 0
    If Not rngRange Is Nothing Then
        Application.EnableEvents = True
        Target = rngRange.Value & " "
        Application.EnableEvents = True
    End If
    Set rngRange = Nothing
End Sub[/code]
wenn durch dieses Makro der Zellinhalt verändert wurde, soll der Cursor in dieser Zelle blinken.

mfg
Wolfgang
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Wolfgang,

dabei kann ich Dir leider nicht helfen und gebe die Frage an Hajo (der hier bestimmt mitiesst) weiter. Von ihm habe ich schon mal ein Makro mit blinkenden Zellen gesehen.



Feedback wäre nett
Gruss Rainer
_____________________
Windows 7 Ultimate (x64)
Office 2007 Ultimate
Office 2003 Professional
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo Rainer, evtl. hallo Hajo,

das meine ich nicht.
Wenn eine Eingabe mit Enter abgeschlossen wurde, dann wird meist die rechte oder die untere Zelle aktiviert. Das würde ich hier gerne verhindern und für die weitere Zellbearbeitung soll der Cursor in der Zelle stehen (wie wenn man F2 drückt)

mfg

Wolfgang
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Wolfgang,

leider kann ich den Sinn Deines Makros nicht richtig deuten.

Könntest Du mal mit einfachen Worten schildern was genau passieren soll?



Feedback wäre nett
Gruss Rainer
_____________________
Windows 7 Ultimate (x64)
Office 2007 Ultimate
Office 2003 Professional
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo Rainer,
wenn im Tabellenblatt zu dem dieses Worksheet_Change-Makro gehört,
eine Eingabe erfolgt, die als Zelladresse "benutzt" werden kann, dann wird aus der entsprechenden Zelle in Tabelle1 der Wert ausgelesen und die "Zelladresse" durch diesen ersetzt. Hiermit: & " " wird noch eine Leerstelle angehängt.
Meistens wird noch eine manuelle Ergänzung des Eintrages notwendig, deshalb soll der Cursor in die Zelle.
mfg
Wolfgang
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Wolfgang,

habe ich Dich so richtig verstanden?

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngRange As Range
On Error Resume Next
Set rngRange = ThisWorkbook.Worksheets("Tabelle1").Range(Target.Value)
On Error GoTo 0
If Not rngRange Is Nothing Then
Application.EnableEvents = True
Target = rngRange.Value & " "
Target.Select
Application.EnableEvents = True
End If
Set rngRange = Nothing
End Sub



Feedback wäre nett
Gruss Rainer
_____________________
Windows 7 Ultimate (x64)
Office 2007 Ultimate
Office 2003 Professional
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo Rainer,

bei deinem Vorschlag fehlt dann hinten die Leerstelle. Wenn ich die Zeilen tausche, bleibt sie, und die Markierung wird nicht verschoben.
Target.Select
Target = rngRange.Value & " "


mfg
Wolfgang
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all :-)

ein beispiel

gruss nighty

einzufuegen
alt+f11/einfuegen/allgemeinesmodul

Public Schalter As Boolean


einzufuegen
alt+f11/projektexplorer/deinetabelle

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("A2:B5")) Is Nothing And Schalter = True Then
Cells(Target.Row, Target.Column) = Cells(Target.Row, Target.Column) & " "
Cells(Target.Row, Target.Column).Activate
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("A2:B5")) Is Nothing Then
If Cells(Target.Row, Target.Column) = "" Then
Schalter = True
Else
Schalter = False
End If
End If
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo nighty,
vielen Dank für deinen Vorschlag. Was der (anders) macht, sehe ich so nur am Code nicht. Zum testen werde ich heute leider nicht mehr kommen, ich gebe dann aber noch Rückmeldung.
mfg
Wolfgang
...