Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
ASCII Daten mehrzeilig in eine Zelle kopieren
27.07.2005 14:54:50
Gunter
Hallo Zusammen,
ich habe einen mehrzeiligen Angebotstext, den ich in eine Zelle importieren muß.
Anbei ein Muster des Textes:
Ausführung: Grundsicherheit
Climaplus Ultra Ug 1.1 4/16/4
Feld 1: Dreh-Kipp links
Profilserie MC FUTUR CLASSIC,
Bautiefe 70mm
Fensterbankanschluss 2012 FUTUR
2.Nut
Rollladenführung 1085
Rollladenführung 1085
Wenn ich das mit dem normalem kopieren und einfügen mache, wird der Text immer
in 9 versch. Zellen untereinander eingefügt.
Danke im voraus. Gunter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ASCII Daten mehrzeilig in eine Zelle kopieren
27.07.2005 15:17:53
MichaV
Hallo,
wie importierst Du den Text? Mit Makro oder mit der rechten Maustaste aus der Zwischenablage?
Gruss- Micha
AW: ASCII Daten mehrzeilig in eine Zelle kopieren
27.07.2005 15:46:15
Gunter
Hi Micha,
ich importiere den Text mit der rechten Maustaste aus der Zwischenablage.
Gunter
AW: ASCII Daten mehrzeilig in eine Zelle kopieren
27.07.2005 16:20:08
MichaV
Hallo,
in das Workbook- Modul:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Cell").Reset
End Sub
Private Sub Workbook_Open()
With Application.CommandBars("Cell").Controls.Add(, , , 5) 'vor 5. Element der Menüleiste einfügen
.Caption = "Einfügen in eine Zelle"
.OnAction = "EinfügenInZelle"
End With
End Sub

und in ein allgemeines Modul:

Option Explicit
Sub EinfügenInZelle()
Dim MyData As DataObject
Set MyData = New DataObject
'Achtung!
'Wenn keine UserForms im Code, dann
'Verweis auf Microsoft Forms Object Libary setzen!
On Error Resume Next
MyData.GetFromClipboard
ActiveCell = Application.WorksheetFunction.Substitute(MyData.GetText, Chr(13), "")
End Sub

Dann Mappe speichern, schließen, wieder öffnen oder den Cursor ins Workbook-Open Ereignis stellen und F5 drücken.
Gruss- Micha
PS: Rückmeldung wäre nett.
PPS: Wenn Du nicht weißt, wie die Makros eingefügt werden, dann Guckst Du: Wie und wo fügt man ein Makro bzw. Code ein
Anzeige
AW: ASCII Daten mehrzeilig in eine Zelle kopieren
27.07.2005 16:54:17
Gunter
Hi Micha,
ich habe die beiden Codes entsprechend eingefügt. Habe die Datei gespeichert. Dann habe ich den ASCII File geöffnet. Einen betreffenden Bereich markiert und bin dann zur Excel Datei zurück und habe das Makro "EinfügenInZelle" ausgeführt. Darauf hin kommt eine Fehlermeldung: Fehler beim Kompilieren - folgende Zeile wird angemeckert: Dim MyData As DataObject
Kannst du dir darauf einen Reim machen, oder was mache ich in der Abfolge falsch?
Gunter
AW: ASCII Daten mehrzeilig in eine Zelle kopieren
27.07.2005 17:48:28
MichaV
Hallo,
'Achtung!
'Wenn keine UserForms im Code, dann
'Verweis auf Microsoft Forms Object Libary setzen!
im VBA- Editor auf Extras- Verweise- Microsoft Forms 2.0 Object Libary anhaken. Dann OK und dann sollte es funzen.
Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: ASCII Daten mehrzeilig in eine Zelle kopieren
28.07.2005 07:46:25
Gunter
Hallo Micha,
genau das war's. Super !!
Danke für deine Hilfe.
Gruß Gunter
Optimiert
28.07.2005 23:43:03
MichaV
Hallo,
wenn Du mit dem bisherigen Code eine oder mehrere kopierte Excel- Zelle einfügen willst, gibts Fehler. Hier eine Möglichkeit, wie man auch Excel- Zellen aus der Zwischenablage in eine Zelle quetschen kann:


      
Option Explicit
Sub EinfügenInZelle()
'Fügt einen mehrzeiligen Text oder mehrere Excel- Zellen
'aus der Zwischenablage in EINE Excel- Zelle ein.

'Wenn keine UserForms im Code, dann
'Verweis auf Microsoft Forms Object Libary setzen!
'oder die nächste Zeile auskommentieren
'ActiveWorkbook.VBProject.References.AddFromFile "FM20.DLL"

Dim t As String
Dim MyData As DataObject
Set MyData = New DataObject
On Error GoTo Fehler
MyData.GetFromClipboard
t = MyData.GetText
'Excel speichert die Daten in einem eigenen Format in der Zwischenablage
'http://www.vbarchiv.net/workshop/workshop23s1.html
'Beim Auslesen der Zwischenablage als Nur-Text werden diese so verändert:
'1)Am Ende wird ein vbCrLf angefügt
'Wenn ein Zeilenumbruch oder ein Tabulator im kopierten Text ist, dann wird
'2) der Text in Anführungszeichen gesetzt und
'3) vor jedem Anführungszeichen ein weiteres Anführungszeichen gesetzt
'
'Das muß rückgängig gemacht werden, damit Text aus Excel- Zellen beim Einfügen
'nicht verändert wird.

If Application.CutCopyMode Then                        'wenn Excel- Zellen in Zwischenablage
  t = Left(t, Len(t) - 2)                              '1) vbCr und vbLf am Ende löschen
  If (InStr(t, vbLf) Or InStr(t, vbTab)) _
     
And Left(t, 1) = """" And Right(t, 1) = """" Then 'Wenn Zeilenumbruch oder Tab im Text
    t = Mid(t, 2, Len(t) - 2)                          '2) " am Anfang und am Ende löschen
    t = WorksheetFunction.Substitute(t, """""", """")  '3) "" mit " ersetzen
  End If
End If
'Den Tabulator durch - ersetzen, damit Text nicht in mehrere Spalten eingefügt wird
t = Application.WorksheetFunction.Substitute(t, vbTab, "-")
'Den Wagenrücklauf durch nichts ersetzen, damit Text nicht in mehrere Zeilen eingefügt wird
t = Application.WorksheetFunction.Substitute(t, vbCr, "")
'Text einfügen
ActiveCell = t
Fehler:
End Sub 


Gruß- Micha
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige