Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1056to1060
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

mit Makro in Bearbeitungsmodus und Text markieren

mit Makro in Bearbeitungsmodus und Text markieren
13.03.2009 11:54:54
Jakob
Hallo,
ich habe folgenden Code der auch soweit ganz gut funktioniert. Beim Aufruf der Zellen C19:I36 wird der Bearbeitungsmodus aufgerufen.
1. Leider ist dieser beim Verlassen der Zelle immer noch aktiv. Läßt sich dieser nach dem Verlassen der Zellen C19:I36 wieder deaktivieren?
2. oder läßt sich auch zusätzlich der Text in der Zelle im Bearbeitungsmodus markieren?

If Target.Address = "$C$19:$I$36" And [G6] = "PK" Or [G6] = "BD" _
Then
Application.SendKeys ("{F2}")
Else
End If


Vielen Dank für Eure Hilfe.
Gruß,
Jakob

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit Makro in Bearbeitungsmodus und Text markieren
13.03.2009 14:35:02
fcs
Hallo Jakob,
der Bearbeitungsmodus ist nach dem Verlassen der nicht mehr aktiv.
Bei dieser Art der Bereichsauswahl vor der Dateneingabe bleibt die Zellauswahl erhalten, solange du mit der ENTER-Taste oder TAB-Taste die nächsten Zellen ansteuerst. Bei Zellauswahl mit Pfeiltasten oder Maus wird die Zellselektion wieder "normal".
Die 2. Frage hab ich nicht verstanden.
Was willst du denn überhaupt erreichen?
Gruß
Franz
AW: mit Makro in Bearbeitungsmodus und Text markieren
13.03.2009 15:41:27
Jakob
Hallo Franz,
zuerst eine kurze Erläuterung warum ich das mache. Ich kopiere aus SAP einen mehrzeiligen Text. Nur im Bearbeitungsmodus läßt sich dieser richtig einfügen.
So nun zur Funktion des Makros. Zurzeit macht das Makro folgendes: sobald ich in die Zellen C19:I36 springe wird der Bearbeitungsmodus gestartet und ich kann den Text aus der Zwischenablage einfügen. Aus dieser Zelle komme ich aber nur mit Return oder der Tab-Taste raus. Bei allen weiteren Zellen die ich aufrufe startet er leider dann immer noch im Bearbeitungsmodus.
Wenn in der ausgewählten Zelle bereits Text vorhanden ist, dann steht der Cursor am Ende des Textes. Das hat zur Folge, daß wenn ich in der Zelle was ändern will ich erst mal den Inhalt löschen muß. Deshalb mein Wunsch, daß der Zellinhalt markiert wird, dann kann ich nämlich diesen Text überschreiben oder falls der Text korrekt ist weiter zur nächsten Zelle springen.
Hast Du eine Idee für mein Problem?
Gruß,
Jakob
Anzeige
AW: mit Makro in Bearbeitungsmodus und Text markieren
16.03.2009 08:13:53
schauan
Hallo Jakob,
vielleicht kannst Du Dein Makro mal so konzentrieren, dass es nur die beschriebene Aktion macht. Dann stellst Du es hier ein und man kann sich ein Gedanken drüber machen.
Gruß, Andre
AW: mit Makro in Bearbeitungsmodus und Text markieren
16.03.2009 10:04:17
fcs
Hallo Jakob,
um einen mehrzeiligen Text aus der Zwischenablage in eine einzelene Zelle zu schreiben muss man unter VBA einen kleinen Umweg gehen.
Ob du den Parameter ReplaceCR auf False setzen muss weiss ich nicht. Der Wert "True" verhindert bei bestimmten Texten, dass unerwünschte Leerzeilen in der Zelle erscheinen.
Gruß
Franz

Dein bisheriges Makro - angepasst:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$19:$I$36" And [G6] = "PK" Or [G6] = "BD" _
Then
Call ClipBoardInZelleEinfuegen(rngZelle:=Target, ReplaceCR:=True)
Else
End If
End Sub
'Einfügeprozedur in einem allgemeinen Modul
'Bitte darauf achten, das im VBA-Editor unter Extras-->Verweise die _
"Microsoft Forms x.y Object Library" als verfügbar markiert ist.
Sub ClipBoardInZelleEinfuegen(rngZelle As Range, Optional ReplaceCR As Boolean = True)
Dim Zwischenablage As DataObject, strText As String
Set Zwischenablage = New DataObject
Zwischenablage.GetFromClipboard
If Zwischenablage.GetFormat(1) = True Then
If MsgBox(Prompt:="Text in Zelle: " & rngZelle.Address & vbLf & vbLf _
& rngZelle.Range("A1").Text & vbLf & vbLf & "ersetzen durch:" & vbLf & vbLf _
& Zwischenablage.GetText, Buttons:=vbYesNo + vbQuestion, _
Title:="Text aus Zwischenablage in Zelle einfügen") = vbYes Then
strText = Zwischenablage.GetText
If ReplaceCR = True Then
'ggf. CarriageReturns ersetzen
rngZelle.Value = VBA.Replace(strText, vbCr, "")
Else
rngZelle.Value = strText
End If
End If
Else
MsgBox "In der Zwischenablage ist kein Text"
End If
End Sub


Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige