Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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
Werte in Spalten einfügen
Claudia
Hallo zusammen,
ich möchte den Inhalt einer Zwischenablage (1 Spalte muss ich immer kopieren) in das aktive Tabellenblatt einfügen - und hier oftmals aufgeteilt auf mehrere Spalten!!! Auf folgende komfortable Lösung über eine Inputbox oder Userform (?) hoffe ich:
1) Angabe der Spalte, wo der Einfügevorgang beginnen soll (z.B. Spalte B)
2) Angabe der Zeile, wo der Einfügevorgang beginnen soll (z.B. Zeile 2)
3) Begrenzung der Zeilen pro Spalte
Beispiel:
Ich habe 200 Zeilen kopiert.
1) Auswahl B - beginnt also mit Spalte B
2) Ab Zeile 3 - beginnt mit Zeile 3
3) 60 - begrenzt auf 60 Zeilen pro Spalte
Die restlichen 140 Zeilen sollen dann in die nächsten Spalten (hier also C = 60, D = 60 und E = 20 kopiert werden). Die Vorgaben 1, 2, 3 bleiben für die weiteren Spalten identisch.
Ich sage schon einmal ganz artig danke schön!
Liebe Grüße
Claudia
AW: Werte in Spalten einfügen
Tino
Hallo,
teste mal diesen Code.
Erordert Verweis: Microsoft Forms 2.0 Object Library
Option Explicit

'erordert Verweis: Microsoft Forms 2.0 Object Library 
Sub LeseText()
Dim strText() As String
Dim LRow As Long, MaxRow As Long, LCol As Long
Dim A As Long, B As Long, C As Long

LRow = Application.InputBox("Ab welcher Zeile einfügen?", "Zeile?", , , , , , 1)
LCol = Application.InputBox("Ab welcher Spalte einfügen?", "Spalte?", , , , , , 1)
MaxRow = Application.InputBox("wieviel Zeilen bro Spalte?", "Anzahl", , , , , , 1)

'keine Zahl größer 0 eingegeben 
If LRow = 0 Or MaxRow = 0 Or LCol = 0 Then Exit Sub
'Text aus ZW holen 
strText = Split(HoleTextVonZwischenablage, vbNewLine)

'Schleife Text in Zellen schreiben 
For C = Lbound(strText) To Ubound(strText)
 Cells(LRow + A, LCol + B) = strText(C)
 A = IIf(A = MaxRow, 0, A + 1)
 B = IIf(A = 0, B + 1, B)
Next C


End Sub


Public Function HoleTextVonZwischenablage() As String
    Dim oData As New DataObject
    oData.GetFromClipboard
    HoleTextVonZwischenablage = oData.GetText
End Function


Gruß Tino

Anzeige
AW: Werte in Spalten einfügen
Claudia
Hallo Tino,
Du bist ein Schatz, dass Du mir helfen möchtest.
Ich erhalte allerdings folgenden Fehlerhinweis:
Laufzeitehler '214722404 mit Hinweis Dataobjekt: Get Text ungültige Formatec-Struktur.
Markiert ist die Zeile in der Function: HoleTextVonZwischenablage = oData.GetText
Nochmals danke!
LG
Claudia
AW: Werte in Spalten einfügen
Claudia
Und noch eine Bitte: Kannst Du die Begrenzung mit den Zeilen so programmieren, dass ich bei Nichteingabe alle Zeilen kopiere. Derzeit müsste ich wohl was eingeben.
Danke schön!
AW: Werte in Spalten einfügen
Tino
Hallo,
könntest Du mal ein Beispiel zeigen, was Du kopierst.
Kann den Fehler nicht nachvollziehen.
Gruß Tino
Anzeige
@Tino: Habe eine Datei hochgeladen
Claudia
Hallo Tino,
war gestern schon im Bett. Ich habe eine Datei mit Deinem Mako hochgeladen.

Die Datei https://www.herber.de/bbs/user/58096.xls wurde aus Datenschutzgründen gelöscht


In der Tabelle 1 stehen in Spalte A 200 Zahlen. Die kopiere ich Ihnen die Zwischenablage, dann wechsel ich in die Tabelle 2 und starte Dein Makro. Den Verweis auf Microsoft Forms 2.0 Objekt Library habe ich zuvor eingefügt.
Liebe Grüße und "danke"
Claudia
keine Idee.
Tino
Hallo,
genau weis ich da jetzt auch nicht, dass ist nicht die Zwischenablage von Windows.
Bin jetzt aber unterwegs, lass die Frage mal offen.
Vielleicht den Adressbereich merken beim Verlassen der Tabelle,
damit müsste man etwas anfangen können.
Versuche es später noch mal.
Gruß Tino
Anzeige
AW: @Tino: Habe eine Datei hochgeladen
Reinhard
Hallo Claudia, Tino,
Frage noch offen wegen der Zusatzfrage bvon Claudia.
Anscheinend hebt eine Inputbox in Blatt 2 die Kopiermarkierung in Blatt 1 auf.

Option Explicit
'erfordert Verweis: Microsoft Forms 2.0 Object Library
Sub LeseText()
Dim strText '() As String
Dim LRow As Long, MaxRow As Long, LCol As Long
Dim A As Long, B As Long, C As Long
strText = Split(HoleTextVonZwischenablage, vbNewLine)
LRow = Application.InputBox("Ab welcher Zeile einfügen?", "Zeile?", , , , , , 1)
LCol = Application.InputBox("Ab welcher Spalte einfügen?", "Spalte?", , , , , , 1)
MaxRow = Application.InputBox("wieviel Zeilen bro Spalte?", "Anzahl", , , , , , 1)
'keine Zahl größer 0 eingegeben
If LRow = 0 Or MaxRow = 0 Or LCol = 0 Then Exit Sub
'Text aus ZW holen
'Schleife Text in Zellen schreiben
For C = LBound(strText) To UBound(strText)
Cells(LRow + A, LCol + B) = strText(C)
A = IIf(A = MaxRow, 0, A + 1)
B = IIf(A = 0, B + 1, B)
Next C
End Sub
Public Function HoleTextVonZwischenablage()
Dim oData As New DataObject
oData.GetFromClipboard
HoleTextVonZwischenablage = oData.GetText(1)
End Function


Gruß
Reinhard

Anzeige
genau das ist es
Tino
Hallo Claudia,
genau das ist es, Reinhard hat den Fehler gefunden, teste mal diese Variante von Reinhard.
Funktioniert diese Version, gehen wir an die anderen Fragen.
Gruß Tino
AW: Werte in Spalten einfügen
effha
Hallo Claudia,
versuch es mal hiermit.
Das Makro heißt: Starteinfügen und öffnet eine UserForm zum Eingeben der Parameter
Gruß
Fritz
https://www.herber.de/bbs/user/58098.xls
AW: Werte in Spalten einfügen
Claudia
Hallo zusammen,
manchmal ist Excel zum Ko.....!
@Fritz: Bei Dir gibt es auch einen Laufzeitfehler. Der debugger markiert diese Zeile:
Sheets(2).Cells(AbZeile, AbSpalte).Select
Und nu? Bin ratlos und trauig. :-(
Anzeige
AW: Werte in Spalten einfügen
Claudia
Hallo Robert,
danke schön für Deine Hilfe. Also das reinkopieren funktioniert jetzt, allerdings nimmt er nun immer die Tabelle 2 und er fügt auch nur die Zeilen ein, die ich als Anzahl eingegeben habe.
Kopiere ich allerdings 30 Zeilen, sage als Begrenzung 10 Zeilen, dann soll der Rest ja in die nachfolgenden Spalten eingefügt werden. In diesem Fall also 10 Zeilen in die Spalte, die ich gewählt habe, und die restlichen 20 (jeweils 10 Zeile pro Nachfolgespalte) dann in die Nachfolgespalten.
Irgendwíe wird mein "Wunsch" nicht so wiedergegeben, wie ich das denn haben wollte. Vielleicht wärst Du trotzdem so nett und schaust noch einmal in meinen Eröffnungsbeitrag. Danke! :-)
@ Tino: Hast Du kapituliert oder bist Du für paar Stunden verschollen? Ich hoffe letzteres.
Viele Grüße
Claudia
Anzeige
AW: Werte in Spalten einfügen
Tino
Hallo,
bin unterwegs und schreibe vom Pocket.
Kann erst morgen wieder an einen Rechner.
Gruß Tino
AW: Werte in Spalten einfügen
robert
hi, habe dein makro ausgebessert und an claudia weitergeleitet.
durch cdbl wird Textbox1 inhalt als Zahl und nicht als Text zurückgegeben.
gruß
robert
AbSpalte = CDbl(TextBox1)
AW: Werte in Spalten einfügen
Tino
Hallo,
habe mal etwas zusammengebaut, mit der rechten Maustaste.
Rechte Maustaste, da ist ein neuer Button Spezial Einfügen.
Dieser öffnet eine Userform für die Parameter (Zeile, Spalte, Anzahl),
als Vorgabe dient die aktive Zelle.
Ist nur aktiv, wenn etwas kopiert wurde.
Habe dies jetzt nicht ausgiebig getestet, es könnten noch Fehler auftauchen.
Sollten Fehler auftauchen, einfach melden und wir schauen was zu machen ist.
https://www.herber.de/bbs/user/58109.xls
Gruß Tino
Anzeige
@Tino
robert
hi tino,
funkt das bei dir?
bei mir fehlermeldung bei userform initilisize
und was ist mit rechter maustaste?
gruß
robert
AW: @Tino
Tino
Hallo,
Wahrscheinich war das letzte Bier gestern Abend nicht gut.
Habe noch einen Fehler beseitigt und zwar wenn man alles in nur eine Spalte haben möchte,
hat die Berechnung nicht funktioniert.
Kann sein das noch andere Fehler beim genaueren testen auftauchen.
https://www.herber.de/bbs/user/58123.xls
Was ist eigentlich mit Claudia, die meldet sich gar nicht mehr!?
Gruß Tino
AW: @Tino
robert
Hi Tino,
funkt leider nicht
mache ich etwas falsch-oder?
gruß
robert

Private Sub UserForm_Initialize()
TextBox1 = ActiveCell.Row
TextBox2 = ActiveCell.Column
TextBox3 = UBound(strText) - LBound(strText) + 1 ' HIER KOMMT FEHLER!!!
End Sub


Anzeige
AW: @Tino
Tino
Hallo,
hatte die ganze Zeit unter xl2007 getestet, irgendwie geht da alles etwas schneller.
Habe jetzt mal unter xl2003 getestet und noch etwas optimiert.
Robert die Vorgehensweise ist so
1. Einen Zellbereich mit Daten Markieren.
2. Rechte Maustaste, kopieren.
3. z. Bsp. auf ein anderes Tabellenblatt wechseln
4. rechte Maustaste in einer Zelle und Button Spezial Einfügen drücken.
https://www.herber.de/bbs/user/58125.xls
Gruß Tino
AW: @Tino
robert
hi tino,
bitte nicht böe sein, aber was bedeutet dieser satz?
4. rechte Maustaste in einer Zelle und Button Spezial Einfügen drücken.
gruß
robert
@Robert
Tino
Userbild
AW: @ist bei mir deaktiv!!!?HILFE
robert
AW: @ist bei mir deaktiv!!!?HILFE
Tino
Hallo,
ja du musst zuerst kopieren.
Gruß Tino
AW: @Tino
robert
hi tino,
ich verstehe es nicht mehr.
natürlich habe ich vorher kopiert, ich habe mich an deine anweisung gehelten.
und nun.........NUN GEHT'S !!!!
frag mich nicht warum
Danke für Deine Hilfe und Geduld
Gruß
robert
Kein Problem oT.
Tino
@Robert, welche xl Version hast Du? oT.
Tino
AW: @Tino-2003-owT
robert
@Robert
Tino
Hallo,
letzte Version sollte funktionieren, wie beschrieben.
Gruß Tino
@ Tino : Du bist der Beste!
Claudia
Hallo Tino,
Du fleißiger Helfer. Ich habe ein ganz schlechtes Gewissen, dass ich mich jetzt erst melde. Aber ich habe bis 19.00 Uhr arbeiten müssen (ohne die Möglichkeit, mich ins Internet zu klemmen, da ich mit meinem Chef eine ganztägige Besprechung hatte) und bin erst seit 10 Minuten zu Hause und total durchgefroren. Das kommt davon, wenn man mit Bus und Bahn fährt.
Ich wollte Dir 1000 "danke schön" sagen! Das funktioniert super und ist noch besser als was ich mir vorgestellt habe. :-)
Darf ich mal fragen, ob Du das beruflich machst? Wenn ich mir die Codes anschaue, dann wird mir ehrlich gesagt schwindelig. :-)
Liebe Grüße und einen schönen Abend
Claudia
AW: @ Tino : Du bist der Beste!
Tino
Hallo,
ich war der Meinung Du würdest in diesem Beitrag nicht mehr durchblicken,
daher hatte ich einen neuen eröffnet in der Hoffnung Du würdest diesen lesen.
Hier ist die letzte Version, diese sollte eigentlich alles abdecken.
https://www.herber.de/bbs/user/58137.xls
Sollte Dir noch was auffallen melde Dich einfach, weil ich mir zum Testen nicht die nötige Zeit nehme.
Zu Deiner Frage,
ist ein Hobby von mir, manchmal verdiene ich mir ein bar Groschen damit,
aber dann nehme ich mir mehr Zeit ;-)
Gruß Tino

346 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige