Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
212to216
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
212to216
212to216
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen kopieren

Zellen kopieren
03.02.2003 11:28:43
Kurt_K
Hallo !

Ich kopiere Bereiche von verschiedenen Tabellenblättern in ein neues Tabellenblatt. (so weit kein Problem)
Bei manchen dieser Zellen habe ich die Breite verändert, wenn ich diese nun in ein neues Tabellenblatt kopiere geht die Breite der Zellen verloren und sie erscheinen im neuen Tabellenblatt mit der Standardbreite.
Ich brauche aber unbedingt diese breiteren Zellen, da manchmal mehr Text in der Zelle sind. Im Moment werden Wörter abgeschnitten........

Kann mir jemand sagen, wie ich auch die Zellenbreiten übernehmen kann ??

Gruß Kurt

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zellen kopieren
03.02.2003 11:44:43
Cracker

Wenn du die Zelle kopierst und dann auf Einfügen Inhalte gehst kannst du dort die Spaltenbreite auswählen und so sie übernehmen. Wenn es nicht in einem Schritt geht musst du eventuell erst die Werte und dann die Breite kopieren.

Gruß Cracker

Re: Zellen kopieren
03.02.2003 11:50:52
Steffan

Hallo Kurt,

Spaltenbreiten werden nur übernommen, wenn Du ganze Spalten kopierst.
Falls das nicht möglich ist, könnte das Kopieren per Makro durchgeführt und die Spaltenbreiten dabei übernommen werden.

Steffan.

Re: Zellen kopieren mit Makro
03.02.2003 11:51:31
Kurt_K

Hi Cracker !

Habe ich schon erwähnt, daß ich die Bereiche per Makro kopiere ?

Ich dachte das wäre ohnehin klar, denn ohne Makro könnte ich natürlich auch alles per Hand machen.
Ich möchte jedoch mein makro so verändern, daß mir auch die Breite kopiert wird.

Gruß Kurt

Anzeige
Re: Zellen kopieren
03.02.2003 11:54:00
Kurt_K

Hallo Steffan !

Zitat Steffan: "Falls das nicht möglich ist, könnte das Kopieren per Makro durchgeführt und die Spaltenbreiten dabei übernommen werden."

Genau das ist es was ich suche.

Gruß Kurt

Re: Zellen kopieren
03.02.2003 11:56:48
wolf.w.radzinski

height und width haben im Zusammenhang mit Range nur LESEZUGRIFF, d.h. du kannst nur Rows.RowHeight und Columns.ColumnWidth global (zeilen- oder spaltenweise) verändern und das funktioniert imho nur zufriedenstellend, wenn der Aufbau beider Tabellen (Quelle und Ziel) identisch ist. Wenn nicht, dann verändert sich die Zellgröße immer nach den Erfordernissen der zuletzt eingefügten Zelle. Schlechte Karten :-(

damit ist dann die Struktur von Quelle und Ziel identisch ... da wär's wohl einfacher das ganze Blatt zu kopieren?

Gruß -wr-

Anzeige
Re: Zellen kopieren
03.02.2003 11:59:33
Kurt_K

Hallo Wolfgang (?)

Danke ich werde das gleich testen........

Das ganze Blatt kann ich nicht kopieren, da ich wie schon beschrieben aus mehreren Tabellenblättern in das neue kopiere.

Gruß Kurt

Re: Zellen kopieren
03.02.2003 12:04:39
BerndL

Moin Kurt,
zuerst eine Variable dimensionieren, z.B.:
Dim DblSpBr(100) as Double

Dann in einer Schleife die Spaltenbreiten mittels "ColumnWidth" in diese Variable schreiben.

Nach dem kopieren die Inhalte dieser Variablen aus einer weiteren Schleife heraus den kopierten Spalten zuweisen.

MfG,
BerndL

Kleiner Tip
03.02.2003 12:06:15
Cracker

Wenn du ein Makro aufzeichnest sieht du doch wie es geht !
Range("F17:F30").Select
Application.CutCopyMode = False
Selection.Copy
Range("B12").Select
Selection.PasteSpecial Paste:=xlColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Anzeige
LösungsANSATZ
03.02.2003 12:08:53
wolf.w.radzinski

nimm aus jedem Quellblatt einfach das Maximum der Zellhöhe und Zellbreite, dann reicht der Platz garantiert immer ... es muß dann auch die Struktur nicht identisch sein (im meinem Beispiel ist sie es noch)



Re: Zellen kopieren
03.02.2003 12:09:53
Kurt_K

Hallo Bernd !

Danke für den Lösungsansatz.

Mittlerweile habe ich ja genügend Vorschläge erhalten. Jetzt bin ich mal ausreichend mit testen beschäftigt.

Gruß Kurt

Re: Kleiner Tip
03.02.2003 12:11:26
Kurt_K

Danke Cracker !

Ich werde mal schaun ob ich das in meinem Code ohne Probleme einbauen kann.

Gruß Kurt

Re: LösungsANSATZ
03.02.2003 12:16:19
Kurt_K

Hallo Wolfgang !

Ihr seit einfach Spitze !!

So viele Tipps und Lösungsansätze hätte ich mir nicht erwartet.

Dieser Lösungsansatz gefällt mir sehr gut. Bin schon gespannt ob ich es richtig hinbekomme. Falls es klappt werde ich auch noch 2 Spalten ausschließen, da diese sehr schmal sind.

Gruß Kurt

Anzeige
Ich kapier es nicht ganz.....
03.02.2003 12:47:40
Kurt_K

Hallo Wolfgang !

Ich brauche nochmal deine Hilfe, denn ich habe Probleme mit einer bestimmten Stelle deines Makros.

Wie kann ich quelle ein Tabellenblatt zuweisen ?

"Set quelle = Tabelle1, Tabelle2" geht wohl schlecht.

Kannst du mir das erklären, wie ich dabei vorgehen muß ?

Gruß Kurt

Re: Ich kapier es nicht ganz.....
03.02.2003 13:23:25
wolf.w.radzinski

mein Beispiel war wohl etwas zu komplex?

also mal angenommen du willst von Blatt "x" Zelle y kopieren und zwar in dein Zielblatt in Spalte n und Zeile m

set ziel = Worksheets("Tabelle1")

bleibt dabei konstant, denn es ist immer das gleiche Zielblatt (hier Tabelle1)

set quelle = Activesheet

wäre z.B. eine Möglichkeit das aktuelle Blatt zur Quelle zu machen (so wird es wohl meist sein, daß du aus einem gerade aktiven Blatt heraus ins Zielblatt kopieren willst?)

den Bereich kannst du dann z.B. über Selection bestimmen (das wären die markierten Zellen)

also


durch die Aufteilung des Quellbereiches qb in Areas a und Zellen c KANN der Quellbereich auch UNZUSAMMENHÄNGEND sein.

Gruß -wr-


Anzeige
Korrektur, es fehlen noch minzwei Wörtchen im Code
03.02.2003 13:28:38
wolf.w.radzinski



Aufruf und Übergabe
03.02.2003 13:46:40
wolf.w.radzinski

Hallo, hier noch 2 Versionen, wie man Quelle und Ziel verarbetien kann

1.)

Sub kopiere()
Set ziel = Worksheets("Tabelle1")
Set quelle = ActiveSheet
Set qb = Selection 'das wären die markierten Zellen

n = 1 'ist hierbei immer Spalte A
m = ziel.Cells(65536, n).End(xlUp).Row
If m > 1 Or ziel.Cells(m, n) <> "" Then m = m + 1
'm ist erste freie Zelle in Spalte n
For Each a In qb.Areas
...usw...
hierbei wird in Tabelle1 die Spalte A aufgefüllt!

2.)

Sub kopiere(ziel as Worksheet, _
n as integer, _
m as long, _
quelle as Worksheet, _
qb as Range)
For Each a In qb.Areas
...usw...

jetzt kannst du in deinem Code irgendwo z.B.
kopiere Tabelle1, 2, _
cells(65536,2).End(xlup)+1, _
Tabelle3, [A4:A7]
aufrufen, dann wird aus Tabelle3 der Bereich A4 bis A7 ans Ende der Spalte B in Tabelle 1 gehängt.

wie du das jetzt löst ist "Geschacksache" und hängt von deinem restlichen Code ab.

Gruß -wr-

Anzeige
Re: Korrektur, es fehlen noch minzwei Wörtchen im Code
03.02.2003 14:00:08
Kurt_K

Hallo -wr- (wie soll ich dich eigentlich anreden ? Wolfgang ?)

Ich habe jetzt den Code umgeändert, allerdings mit mässigem Erfolg. Momentan wird in das Ziel-Worksheet in den Spalten A und N 10,71 geschrieben und in Zeilen 1 und 40 wird 12,75 geschrieben.

Hier mein Makro:

Was habe ich falsch gemacht ?

Gruß Kurt

Re: Korrektur, es fehlen noch minzwei Wörtchen im Code
03.02.2003 16:04:22
wolf.w.radzinski

du hattest wie ich in meinem ersten Code columnwidth und rowheight vergessen und deine Zellzuordnung ist etwas chaotisch ... ich gehe davon aus, daß du den Block A1:M39 ebenfalls wieder in einem ähnlichen Block des Zielblattes ablegen willst? ...

damit wird Tabelle1!A1:M39 nach Tabelle3!A1:M39 kopiert und
Tabelle2!A1:M39 nach Tabelle3!A40:M79 wenn ich keine Fehler gemacht hab ... und es wird die Zellgröße immer an das Maximum aus Tabelle1, Tabelle2 bzw. Tabelle3 angepaßt.

Gruß -wr-

ps: Vorname: Wolf oder Winfried oder Wolfgang ist alles ok ... im Paß steht Winfried ... aber reagiert wird auf "Wolf"






Anzeige
mach es dann doch lieber so
03.02.2003 16:29:05
wolf.w.radzinski

die vorhergehende Version ist a) nicht üblich und b) nicht besonders gut änderbar, bzw. anpassungsfähig

Gruß -wr-








Re: mach es dann doch lieber so
03.02.2003 19:21:29
Kurt_K

Hallo Wolf !

Danke für deine Mühe. Ich bin leider nicht mehr auf diese Seite gekommen, daher melde ich mich erst jetzt.

Jetzt bin ich zuversichtlich, daß ich es zum Laufen bringe.

Gruß Kurt

Anmerkung
03.02.2003 20:21:23
wolf.w.radzinski

um sicher zu gehen, daß bei folgender Kopieraktion

Sub kopiere_12()
kopiere Tabelle3, Tabelle1, "A1:D39,E1:M39", 0, 0
kopiere Tabelle3, Tabelle2, "A1:A39,C1:M39,B1:B39", a, b
End Sub

die Bereiche auch überschneidungsfrei (ohne Datenverlust) kopiert werden muß in der zweiten Zeile entweder

a>=39 sein dann ist b beliebig (natürlich nur so, daß der Bereich noch innerhalb der Excelgrenzen liegt)

ODER a ist beliebig wählbar, dann sollte aber b>=13 (d.h. b>=Spalte M)sein

in allen anderen Fällen überschneiden sich u.U. die Quellbereiche im Zielblatt und die zuerst kopierten Daten würden dadurch überschrieben werden!

Gruß -wr-

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige