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

Zellinhalte kopieren

Zellinhalte kopieren
26.03.2003 18:18:37
helena
Hallo zusammen

habe kleines Problem ich möchte auf einem Blatt (Tab13) alle gewünschten Daten auf dieses Blatt (Tab13) bringen an gewünschten Ort meiner Wahl (aber immer selbe Position ) ich habe im MAX 12 Blätter und im MIN 2 Blätter in Mappe d.h. Blätter sind nicht immer alle vorhanden, nur die vorhandenen Kopieren Zb Tab1,4,5
Tab2,3,6 usw. gibt es im Beispiel nicht, mit Formeln habe ich versucht aber es kommen dauerend #Bezug wenn zB Tab2 fehlt

es sind pro Blatt 6 Werte auf Tab13 einzufügen
vielleicht mit Macro Zellinhalte kopieren ???

kennt jemand Lösung bzw. Tipp für mich

gruss helena


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

Betreff
Datum
Anwender
Anzeige
Re: Zellinhalte kopieren
26.03.2003 19:23:49
gordon

Hallo Helena,

per VBA:

Gruß
gordon

Re: Zellinhalte kopieren
26.03.2003 19:57:17
helena

hallo Gordon

es funktioniert teiweise, es fügt immer je Blatt in nächtes Zelle Zeile eins
aber ich suche Lösung wo
Tab 1 (a7) --> Tab13 A12
Tab 1 (a12) --> Tab13 A 24
Tab 1 (a11) --> Tab13 b16
Tab 1 (c25) --> Tab13 c21
Tab 2 (a7) --> Tab13 A22
Tab 2 (a12) --> Tab13 A 24
Tab 2 (a11) --> Tab13 b17
Tab 2 (c25) --> Tab13 c24
.....

usw. die Tab haben natürlich Namen nicht Tab 1,.......
also 12 Tabellen im MAX 1 ist Zieltab und aus allen vorhandenen
den Inhalt aus Zellen (immer gl. Pos) nach Tab13 beliebige Position

denke ist nicht so einfach, habe nichts gefunden in Recherche

gruss helena


Anzeige
Re: Zellinhalte kopieren
27.03.2003 07:00:14
gordon

Hallo Helena,

war doch nur als prinzipielles Muster gedacht und macht genau das, was es machen soll ;-)

Welche Zellen stehen fest bzw. wie 'beliebig' sind die Ziele ?
Falls die Ziele immer erst zur Laufzeit bekannt sind, dann kann man sie natürlich nicht 'hardcoded' aufnehmen.
Evtl. Lösung über weitere Tabelle, Spalte A, in der die Ziele vorher untereinander einzugeben sind.

Gibt es einen Algorithmus, sofern die Ziele für das erste Blatt bekannt sind, um daraus die für das Folgeblatt zu berechnen ? z.B. Tab1 -> Tab13 A12
Tab2 -> Ziel von Tab1 + 10 Zeilen -> Tab13 A22 ?
Oder direkt aus der Quelle abzuleiten ?
z.B. Quelle + 5 Zeilen und + 3 Spalten ?

Letzte Frage: In Deinem Beispiel überschreibt Tab2 A12 wieder Tab13 A24 (da steht bereits der Wert von Tab1 A12)

Gruß
gordon


Anzeige
Re: Zellinhalte kopieren
27.03.2003 07:23:07
helena

Hallo Gordon

also wegen überschreiben habe mich verschrieben (copy paste)

Tab 1 (a7) --> Tab13 A12
Tab 1 (a12) --> Tab13 A 24
Tab 1 (a11) --> Tab13 b16
Tab 1 (c25) --> Tab13 c21
Tab 2 (a7) --> Tab13 A22
Tab 2 (a12) --> Tab13 A 26
Tab 2 (a11) --> Tab13 b17
Tab 2 (c25) --> Tab13 c24

ich muss immer aus Tab1,2,..,12 (Anzahl variiert) immer in Tab13 die Inhalte einfügen, die Werte aus Tab1 haben einen festen Platz in Tab13 (zusammenzug), Tab2 feste Platz usw. also keine Willkür, wenn Blatt fehlt kein Übertrag
hoffe du siehst jetzt klarer, dahinter steckt ein Konfigurator via Buttons wähle ich aus 12 Blättern aus, kopiere die gewählten Sheets in andere Datei (datei works) gebe der Datei noch einen Namen schliesse Konfigurator works wird geschlossen und Datei mit neuen Namen bleibt offen zum weiter bearbeiten, möchten nun aus den auserwählten Blättern die Summen der Blätter im Blatt Zusammenzug übertragen.

Danke für deine Geduld
gruss helena

Anzeige
Re: Zellinhalte kopieren
27.03.2003 08:48:17
gordon

Hallo Helena,

so sollte es gehen:

Gruß
gordon


Re: Zellinhalte kopieren
27.03.2003 08:55:08
helena

Hallo Gordon

ich kann dir heute Abend auch Beispiel senden Daten sind nicht
geheim dann siehst du sicher klarer mein Problem

gruss helena

Re: Zellinhalte kopieren
27.03.2003 09:16:48
helena

Hallo Gordon

es funkt fast, habe es mal für zwei vorhandene Blätter probiert
das ganz kleine Problem ist er soll nur Zellinhalt kopieren
jetzt nimmt er Formeln, Gültigkeit, Farben, usw. auch mit wenn du das noch schaffst dann denke ich sollte es funktionieren, in Quelle stehen Formeln und dann kommt wieder #Bezug Fehler mit ######

Danke für deine Mühe

gruss helena


Anzeige
Re: Zellinhalte kopieren
27.03.2003 09:42:01
gordon

Hallo Helena,

als Beispiel statt Zeile
'ws.Range("A7").Copy Destination:=ws13.Range("A12")'
schreiben:

ws13.Range("A12").Value = ws.Range("A7").Value

Alle anderen analog umstellen.

Gruß
gordon

Re: Zellinhalte kopieren
27.03.2003 10:01:11
helena

Hallo Gordon
habe nach deinen Angaben geändert, jetzt wird Quelleinhalt gelöscht und in Ziel nichts eingefügt (klar da Inhalt leer) ???
Anbei der Code, Case läuft er alles richtig ab, denke ist nur etwas kleines

Option Explicit

Sub Daten_aktualisieren()


Dim ws As Worksheet
Dim ws13 As Worksheet
Set ws13 = Worksheets("Zusammenzug")

For Each ws In Worksheets
Select Case ws.Name
Case "zusammenzug"
' nothing
Case "TTL"
'nur wert ws13.Range("A12").Value = ws.Range("A7").Value
'Tab 1 (a7) --> Tab13 A12
'alternativ in row/col-notation:
'ws.Cells(7, 1).Copy (ws13.Cells(12, 1))
' alles kopieren (inkl. Formel) ws.Range("c38").Copy Destination:=ws13.Range("b11")
ws.Range("c38").Value = ws13.Range("b11").Value
'Tab 1 (a12) --> Tab13 A 24
ws.Range("g6").Value = ws13.Range("d11").Value
'Tab 1 (a11) --> Tab13 b16
ws.Range("i56").Value = ws13.Range("c12").Value
'Tab 1 (c25) --> Tab13 c21
ws.Range("i57").Value = ws13.Range("c13").Value
Case "TTLi"
'Tab 2 (a7) --> Tab13 A22
ws.Range("c38").Value = ws13.Range("b16").Value
'Tab 2 (a12) --> Tab13 A 26
ws.Range("g6").Value = ws13.Range("d16").Value
'Tab 2 (a11) --> Tab13 b17
ws.Range("i56").Value = ws13.Range("c17").Value
'Tab 2 (c25) --> Tab13 c24
ws.Range("i57").Value = ws13.Range("c18").Value
Case "Bandsystem"
'Tab 2 (a7) --> Tab13 A22
ws.Range("c38").Value = ws13.Range("b26").Value
'Tab 2 (a12) --> Tab13 A 26
ws.Range("g6").Value = ws13.Range("d26").Value
'Tab 2 (a11) --> Tab13 b17
ws.Range("i56").Value = ws13.Range("c27").Value
'Tab 2 (c25) --> Tab13 c24
ws.Range("i57").Value = ws13.Range("c28").Value




'Case "Tab4"
' usw....
Case Else
' nothing
End Select
Next ws
Set ws = Nothing
Set ws13 = Nothing
End Sub

gruss helena

Anzeige
Re: Zellinhalte kopieren
27.03.2003 10:27:35
gordon

Klein aber entscheidend ;-)

Quellinhalt wird nicht gelöscht sondern mit Zielinhalt überschrieben, und der ist eben noch leer.
Du musst die Zuweisung vertauschen:
nicht ws.Range("c38").Value = ws13.Range("b11").Value
sondern ws13.Range("b11").value = ws.Range("C38").value !

Hatte ich in meinem vorherigen Beispiel auch so dargestellt, das mit dem vertauschen aber nicht explizit erwähnt.

Nochmal zur Erklärung: Vorher kopierte der Code einfach die gesamte Zelle von Quelle nach Ziel - Nun erfolgt eine Wertezuweisung: Dem Zielwert wird der Quellwert zugewiesen, also 'umdrehen'.

Gruß
gordon


Anzeige
Re: Zellinhalte kopieren
27.03.2003 13:38:20
helena

Hallo Gordon

Vielen Dank es funktioniert genau wie gewünscht, war ein langer Weg aber hat sich ausgezahlt

kleine Frage hätte ich noch wie sieht das Beispiel aus wenn ich
Blatt Name QUELLE und ZIEL habe also immer bekannt und vorhanden
wie könnte ich dies noch bewerkstelligen für ein anderes mal

ws13.Range("b11").value = ws.Range("C38").value

zB.

Ziel.Range("b11").value = Quelle.Range("C38").value

so meine ich, es eilt nicht

BESTEN DANK

gruss helena

freut mich
27.03.2003 15:00:00
gordon

Hallo helena,

hartnäckig am Ball bleiben lohnt sich immer ;-)

Deine Frage verstehe ich jedoch nicht ganz.
Momentan ist der eigentliche Kopiervorgang vom Blattnamen unabhängig, alle worksheets werden nacheinander durchlaufen. Eine zusätzliche case-Bedingung für "QUELLE" bzw. "ZIEL" sollte es doch dann sein, oder ?

Ohne zusätzliche case-Bedingungen kannst Du auch nach der Schleife (hinter dem 'next ws') dem worksheet-Objekt einfach das Blatt zuweisen und irgendwas damit tun z.B.
set ws = ActiveWorkbook.Worksheets("QUELLE")
msgbox(ws.name)
und dann natürlich auch noch weitere Aktionen mit einem range durchführen
ws.range("A5").value = "irgendwas"

Falls ich Dich nicht richtig verstanden haben sollte, melde Dich einfach nochmal.

Gruß
gordon




Anzeige
Re: freut mich
27.03.2003 15:09:52
helena

Hallo Gordon

die FRage hat nichts zu tun mit diesem Problem, einfach wenn
ich wieder einmal via VBA zellinhalte von Blatt "QUELLE" zu Blatt "ZIEL" übertragen möchten wie dann die Zeile aussehen muss

Blatt Ziel A1 von Blatt Quelle A27

Ziel und Quelle ist im Beispiel Sheet-Name

DANKE
gruss helena

Re: freut mich
27.03.2003 16:08:29
gordon

Hallo helena,

aber das hast Du doch jetzt häufig bereits im Code, bei Dir sind halt ws13 das Ziel und ws die Quelle.

Vielleicht als Erklärung nochmal so:
sub kopierwas()
'Dimensionierung und Zuweisung
dim quelle as worksheet, ziel as worksheet
set quelle = ActiveWorkbook.worksheets("QUELLE")
set ziel = ActiveWorkbook.worksheets("ZIEL")

'eigentliche Aktion
ziel.Range("A1").value = quelle.Range("A27").value
end sub

Sieh Dir mal in der Onlinehilfe des VBA-Editors genau die Beschreibung des 'range' an, damit wirst Du bei VBA-Programmierung zur Genüge zu tun haben...

Gruß
gordon



Anzeige
Re: freut mich
27.03.2003 16:26:06
helen

Hallo Gordon
jetzt habe ich es gesehen mit SET definierst
du das/die Worksheet/e

Vielen Dank nochmals, vielleicht ein anderes mal
schöne Grüsse aus dem sonnigen Schaffhausen (CH)
es wird (ist) Frühling, 19 Grad Celsius

gruss helena


off topic - sonne nicht nur in CH
27.03.2003 17:37:05
gordon

Hallo helena,

zum Ende eines solchen Makros das set quelle = nothing nicht vergessen, mit set erfolgt eine Referenz auf ein Objekt, die sollte man zum Ende wieder aufheben - Stichwort: Ressourcen

Danke für die sonnigen Grüsse aus dem ebenfalls sonnigen Frankfurt/Main.

Gruß
gordon

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige