Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
564to568
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
564to568
564to568
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Cursorsteuerung und Kopieren

Cursorsteuerung und Kopieren
10.02.2005 16:46:01
Jens_Pu
Hallo Excelfreunde,
mit nachfolgenden Routinen steuere ich in einer Excelmappe die Bewegungsrichtung des Cursors:


      
Public gblnCursorStatus As Boolean
Public gintCursorRichtung As Integer
   
Private Sub Workbook_Activate()
  
'Start-Cursoreinstellungen merken
  gblnCursorStatus = Application.MoveAfterReturn
  gintCursorRichtung = Application.MoveAfterReturnDirection
  
'Cursoreinstellung festlegen
  Application.MoveAfterReturn = True
  Application.MoveAfterReturnDirection = xlToRight
End Sub
Private Sub Workbook_Deactivate()
  
'Start-Cursoreinstellungen wieder herstellen
  Application.MoveAfterReturnDirection = gintCursorRichtung
  Application.MoveAfterReturn = gblnCursorStatus
End Sub 


Das funktioniert auch bis ich was kopieren möchte.
Markieren, kopieren und just in dem Moment wo ich zu einer anderen Arbeitsmappe wechsle, um es dort einzufügen, wird die Zwischenablage geleert.
Such nach Erklärungen und evtl. Abhilfe.
Gruß Jens

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Cursorsteuerung und Kopieren
Ulf
Durch den Mappenwechsel wird der Code ausgeführt und dadurch der CutCopyMode
aufgehoben. Kein Ausweg!
Ulf
AW: glaub ich nicht ;-)
Jens_Pu
Hallo Ulf,
vielen Dank für das Stichwort CutCopyMode.
So kam ich auf exakt die Lösung von Sepp.
Gruß Jens
Vorübergehend EnableEvents
Beate
Hallo Jens,
füge in ein Modul der Datei aus der du kopieren möchtest folgende Makros, damit werden Ereignismakros wie deine ausgeschaltet:
Sub EnableEvents_aus() Application.EnableEvents = False End Sub
Dann kannst du kopieren, ohne dass sich die Zwischenablage leert. Nach Rückkehr zur Ausgangsdatei darfst du aber nicht vergessen, mit diesem Makro Ereignisprozeduren wieder anzuschalten:
Sub EnableEvents_an() Application.EnableEvents = True End

Sub
Gruß,
Beate

Anzeige
AW: Auch eine Möglichkeit...
Jens_Pu
Hallo Beate,
danke für Deinen Tipp.
Behalte es mal im Hinterkopf.
Momentan verfolge ich die Strategie mit CutCopyMode.
Gruß Jens
AW: Cursorsteuerung und Kopieren
10.02.2005 18:48:42
Josef
Hallo Jens!
Alternativ zu Beates Vorschlag, könntest du auch im Deactivate abfragen,
ob gerade was in der Zwichenablage steht!

Private Sub Workbook_Deactivate()
If Application.CutCopyMode = False Then
'Start-Cursoreinstellungen wieder herstellen
Application.MoveAfterReturnDirection = gintCursorRichtung
Application.MoveAfterReturn = gblnCursorStatus
End If
End Sub

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: Favorit
Jens_Pu
Hallo Sepp,
genau auf diese Lösung bin ich nach Ulf's posting auch gekommen.
Danke für Deine Antwort.
Gruß Jens
AW: Favorit
Ulf
Damit ist doch aber deine ursprüngliche Absicht nicht mehr erreicht.
Ulf
AW: jein
10.02.2005 19:49:33
Jens_Pu
Hallo Ulf,
ich mache ess jetzt so:


      
Private Sub Workbook_Activate()
  
'Cursoreinstellung festlegen
  Application.MoveAfterReturn = True
  Application.MoveAfterReturnDirection = xlToRight
End Sub
Private Sub Workbook_Deactivate()
  
'Cursoreinstellung zurücksetzen
  If Application.CutCopyMode = False Then
    Application.MoveAfterReturnDirection = xlDown
    Application.MoveAfterReturn = 
True
  
End If
End Sub 


So ganz ist es nicht das was mir vorschwebte.
Erklärung: Normalerweise ist die Cursorbewegung ja auf "unten" eingestellt.
Nun habe ich verschiedene Mappen, bei denen ich "rechts" benötige. So entstand meine Idee. Das mit dem merken des Anfangszustandes klappt aber spätestens dann nicht mehr, wenn ich mehrere dieser "gesteuerten" Mappen offen habe und in anderer Reihenfolge schließe. Am meisten hat mich aber gestört, dass ich nicht kopieren konnte. Deswegen habe ich mich jetzt dazu entschieden es "starr" zu steuern. Oder hast Du noch einen genialeren Einfall?
Gruß Jens
Anzeige
AW: jein
Ulf
Keine Idee, ich weiß auch gar nicht, wozu man dieses MoveAfterReturn eigentlich braucht.
Ulf
AW: hä?
10.02.2005 20:38:49
Jens_Pu
Hi,
je nach Art der Tabelle macht es doch Sinn "rechts" oder "unten" eingestellt zu haben, oder? Hier ein Beispiel:
 
 ABC
1NameVornameStraße
2NN1VN1Str1
3NN2VN2Str2
4NN3VN3Str3
5NN4VN4Str4
6NN5VN5Str5
7NN6VN6Str6
8   
9   
10ArtikelStückzahl 
11Artikel11 
12Artikel220 
13Artikel33 
14Artikel44 
15Artikel56 
16Artikel680 
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß Jens
Anzeige
AW: hä?
10.02.2005 20:45:39
Josef
Hallo Jens!
Probier mal das:


      
'Allgemeines Modul
'benötigt den Verweis auf "Microsoft Forms X.X Object Library"

Option Explicit
Dim myText
Sub ZwischenablgeIn()
Dim Zwischenablage As DataObject
Set Zwischenablage = New DataObject
On Error Resume Next
   Zwischenablage.GetFromClipboard
   myText = Zwischenablage.GetText(1)
End Sub
Sub ZwischenablgeOut()
Dim Zwischenablage As DataObject
Set Zwischenablage = New DataObject
   Zwischenablage.SetText myText
   Zwischenablage.PutInClipboard
End Sub
'DieseArbeitsmappe
Option Explicit
Public gblnCursorStatus As Boolean
Public gintCursorRichtung As Integer
   
Private Sub Workbook_Activate()
ZwischenablgeIn
  
'Start-Cursoreinstellungen merken
  gblnCursorStatus = Application.MoveAfterReturn
  gintCursorRichtung = Application.MoveAfterReturnDirection
  
'Cursoreinstellung festlegen
  Application.MoveAfterReturn = True
  Application.MoveAfterReturnDirection = xlToRight
ZwischenablgeOut
End Sub
Private Sub Workbook_Deactivate()
ZwischenablgeIn
  
'Start-Cursoreinstellungen wieder herstellen
  Application.MoveAfterReturnDirection = gintCursorRichtung
  Application.MoveAfterReturn = gblnCursorStatus
ZwischenablgeOut
End Sub 


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: hä?
Ulf
Das funktioniert dann aber nur mit Texten!
Ulf
ja das ist klar! o.T.
10.02.2005 21:22:20
Josef
Gruß Sepp
AW: Na denn...
10.02.2005 22:41:33
Jens_Pu
Hallo Ulf,
dann kann ich mir das Testen ja sparen.
Schade. So von der ersten Betrachtung erschien es mir ideal.
Gruß Jens
AW: hä?
Ulf
Falsch ausgedrückt, ich meine nicht, dass das generell sinnlos ist, nur ich brauche es nie!
Ulf
AW: ich schon o.T.
Jens_Pu

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige