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

Beschaffenheit der Zwischenablage

Beschaffenheit der Zwischenablage
27.12.2008 22:51:19
Eddie
Hallo Zusammen,
ich möchte aus einem Sheet x Zeilen in die Zwischenablage kopieren und auf einer anderen Seite, mittels ActiveSheet.PasteSpecial, wieder einfügen. Das Problem ist, dass die eingefügten Daten nicht angehangen werden, sondern in eine bestehende Tabelle eingefügt werden - ich muss also den erforderlich Platz erst durch neue Zeilen bereitstellen.
Gibt es eine Möglichkeit, die Anzahl der Zeilen und Spalten, des Inhaltes der Zwischenablage abzufragen?
Gruß Eddie

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beschaffenheit der Zwischenablage
28.12.2008 08:39:22
Tino
Hallo,
mit Insert müsste es doch gehen, teste mal diese Möglichkeit.
Dim KopierBereich As Range

Set KopierBereich = Tabelle1.Range("A1:Z20")
    KopierBereich.Copy
    Tabelle2.Rows("1:" & KopierBereich.Rows.Count).Insert Shift:=xlDown
Application.CutCopyMode = False


Gruß Tino

AW: Beschaffenheit der Zwischenablage
28.12.2008 19:40:00
Eddie
Hallo Tino,
wenn ich das Script richtig verstehe, wird hiermit nur das kleinere Problem gelöst, nämlich das Einfügen in eine vorhandene Tabelle. Das Hauptproblem ist aber, wie bekomme ich die Größe des Bereiches heraus, der in der Zwischenablage liegt? Bei der Gelegenheit fällt mir allerdings ein, dass ich ja vor dem Kopieren markieren muss, in dem Moment gibt es evtl. ein Ereignis das ich mir zu nutzen machen kann. Dann merke ich mir eben, was vor dem Kopieren markiert war.
Wie gesagt, ich hoffe ich verstehe Dich nicht falsch, aber "A1:Z20" ist ja gar nicht bekannt.
Gruß Eddie
Anzeige
AW: Beschaffenheit der Zwischenablage
28.12.2008 19:42:00
Eddie
... Ich hatte 'Frage noch offen' vergessen
AW: Beschaffenheit der Zwischenablage
28.12.2008 19:53:00
Fred
Hi,
beim Markieren des Zellbereichs zwecks Kopie triit das Selection_Change-Ereignis
ein, das kannst du verwenden.
mfg Fred
AW: Beschaffenheit der Zwischenablage
29.12.2008 03:35:00
Eddie
Danke!
AW: Beschaffenheit der Zwischenablage
28.12.2008 20:00:58
Tino
Hallo,
ich weis nicht wie Du deine Daten kopierst oder den Bereich bestimmst den Du kopieren möchtest,
VBA oder von Hand.
Stelle die Frage daher auf offen, da ich nicht mehr online bin.
Gruß Tino
AW: Beschaffenheit der Zwischenablage
29.12.2008 03:33:31
Eddie
Hallo Tino,
ich kopiere die Daten grundsätzlich von Hand in die Zwischenablage.
- Entweder aus einen anderen Worksheet ein beliebiger Bereich.
- Teilweise auch aus dem Web
Dein Script wird mir mittels vorgeschlagenem selection_chance Ereignis in 80% der Fälle weiterhelfen, aber nicht wenn etwas, aus dem Web kopiert wurde. Hier geht es auch noch um etwas anderes. Angenommen man möchte nur 4 nebeneinander liegende Zahlen kopieren, für das auch nur eine bestimmte Excel Zieltabelle ausgelegt ist und man erwischt zufällig eine Zeile mehr, zerstören ich mir teilweise darunterliegende Formeln. Hier gäbe es natürlich auch Auswege, z.B. geschützte Zellen (stehe ich nicht drauf)
Ich würde lieber das Einfügen, über ein separates Scipt machen, dabei automatisch kontrollieren, ob der Ziebereich geeignet ist.
Gruß Eddie
Anzeige
AW: Beschaffenheit der Zwischenablage
29.12.2008 03:37:00
Eddie
...
AW: Beschaffenheit der Zwischenablage
29.12.2008 08:17:00
Tino
Hallo,
vielleicht kannst Du hier mit etwas anfangen.
Du kannst die Anzahl der Zeilen in der Zwischenablage erfahren.
Die Zeilen der Zwischenablage werden in die Zelle A1 eingefügt,
dafür wird immer eine neue Zeile eingefügt.
Dafür musst Du unter Extras Verweise, den Verweis auf
Microsoft Forms 2.0 Object Library setzen.
'erordert Verweis: Microsoft Forms 2.0 Object Library 
Private Sub CommandButton1_Click()
Dim MyData As New DataObject
Dim A As Long
Dim MeTXT() As String

MyData.GetFromClipboard
'Anzahl Zeilen in Zwischenablage 
anz = CountChar(MyData.GetText(1), Chr(10))
'Zeilen in eine Area schreiben 
MeTXT = Split(MyData.GetText(1), Chr(10))

'Zeilen in eine Zelle schreiben, immer eine neue Zeile dafür einfügen 
For A = Ubound(MeTXT) To Lbound(MeTXT) Step -1
 Range("A1").Insert Shift:=xlDown
 Range("A1") = MeTXT(A)
Next A

End Sub


Function CountChar(ByVal SourceString As String, ByVal strChar As String) As Long
   CountChar = Len(SourceString) - Len(Replace(SourceString, strChar, ""))
End Function


Gruß Tino

Anzeige
AW: Beschaffenheit der Zwischenablage
29.12.2008 11:49:00
Eddie
Hallo Tino,
das auslesen der Zeilenanzahl, funktioniert leider auch nur, wenn die Quelle eine Excel Tabelle war, aber nicht aus dem Web, jedenfalls nicht in meinem speziellen Fall. Offensichtlich enthält das Clipboard, bei einer Webkopie nicht notwendigerweise den Chr(10). Das Einfügen an sich, muss noch überarbeitet werden, denn es wird alles doppelt eingefügt, einmal mit Formatierungen und einmal Ohne. Es fällt mir aber nicht schwer, die Funktion nun so weit zu überarbeiten, dass das Ziel erreicht wird.
Besten Dank!
Gruß Eddie
AW: Beschaffenheit der Zwischenablage
29.12.2008 12:02:25
Tino
Hallo,
sollte auch nur ein Beispiel sein,
anstatt chr(10), könntest Du es auch mit vbnewline mal testen.
Wenn Deine kopie keine Zeilenumbrüche hat, kann man diese auch nicht splitten.
Gruß Tino
Anzeige
AW: Beschaffenheit der Zwischenablage
29.12.2008 22:49:00
Reinhard
Hi Eddie,
vielleicht hilft dir dieses:

Function CountChar(ByVal SourceString As String, ByVal strChar As String) As Long
Dim S
S = Replace(SourceString, Chr(10), strChar)
S = Replace(S, Chr(13), strChar)
S = Replace(S, strChar & strChar, strChar)
CountChar = Len(S) - Len(Replace(S, strChar, ""))     '+ 1 ?
End Function


Gruß
Reinhard

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige