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

ergänzende Daten in zweite Tabelle einfügen

ergänzende Daten in zweite Tabelle einfügen
Fritz_W

Hallo Forumsbesucher,
mit dem nachfolgenden Code werden – zur Datensicherung – bestimmte Zellbereiche der Tabelle2 in der ( gleichstrukturierten ) Tabelle2b gesichert.
Sub Daten_sichern()
Dim i As Long
With Sheets("Tabelle2")
For i = 2 To 268 Step 19
Sheets("Tabelle2b").Range("C" & i & ":L" & i + 15) = .Range("C" & i & ":L" & i + 15).Value
Next
End With
End Sub
Ein geändertes Makro ‚Daten_vervollständigen‘ sollte nun vorhandene Daten in den angesprochenen Zellbereichen der Zieltabelle nicht überschreiben, sondern die vorhandenen Werte der Tabelle2b ergänzen, d.h. es sollten nur in die leeren Zellen der Zielbereiche kopiert werden.
Vorab besten Dank für eure Unterstützung.
mfg
Fritz
AW: ergänzende Daten in zweite Tabelle einfügen
23.02.2012 11:20:18
marcl
Hallo Fritz,
also soll in Tabelle2b geschaut werden, ob die Zelle leer ist?
Sub Daten_sichern()
Dim i As Long
With Sheets("Tabelle2")
For i = 2 To 268 Step 19
If Sheets("Tabelle2b").Range("C" & i & ":L" & i + 15) = "" Then
Sheets("Tabelle2b").Range("C" & i & ":L" & i + 15) = .Range("C" & i & ":L" & i + 15). _
Value
End If
Next
End With
End Sub
Gruß
marcl
AW: ergänzende Daten in zweite Tabelle einfügen
23.02.2012 12:50:55
Fritz_W
Hallo marcl,
vielen Dank für Deine erneute Hilfe.
Ich denke, dass ich mein Anliegen nicht korrekt beschrieben habe und versuche das jetzt zu korrigieren.
Das bisherige Makro kopiert die Werte der betreffenden Bereiche Tabelle2 exakt in die gleichen Zielbereiche der Tabelle2b.
Das geänderte Makro soll die Tabelle2b gewissermassen erweitern. Sind also in der Tabelle2 in einer Spalte für einen zusammenhängenden - 16 Zeilen umfassenden - Bereich Daten enthalten, sollten diese in die gleichen Zeilen(!) der Zieltabelle (Tabelle2b) geschrieben werden, und zwar in die 'erste leere Spalte' (maximal bis zur Spalte L dieses Zeilenbereichs).
Ich hoffe, mein (möglicherweise nicht einfach umzusetzendes) Anliegen ist jetzt nachvollziehbar beschrieben. Ansonsten bitte melden, ich möchte keinesfalls meinen Helfern unnötige (durch meine Unzulänglichkeiten verursachte) Arbeit zumuten.
Dank im Voraus.
mfg
Fritz
@marcl: zu meinem zweiten Anliegen (anderer Thread) geb ich gleich eine weitere Nachricht.
Anzeige
AW: ergänzende Daten in zweite Tabelle einfügen
23.02.2012 13:42:40
marcl
Ok,ich glaube, ich verstehe so langsam :-)
soll der Bereich in Tabelle2 auch von Spalte A bis L überprüft werden?
Was passiert, wenn in Tabelle2 Daten zu kopieren sind, diese aber beim Kopieren in Tabelle2b über Spalte L gehen würden? Fehlermeldung und Abbruch des Makros? Kopiervorgang in nächste Spalten?
Ich würde hier nicht mit Range arbeiten, da man ja die Buchstaben in Zahlen umwandeln müsste, um den Versatz angeben zu können.
Gruß
marcl
AW: ergänzende Daten in zweite Tabelle einfügen
23.02.2012 13:53:37
Fritz_W
Hallo marcl,
die Überprüfung in Tabelle2 sollte sich auf die Spalten C bis L erstrecken.
Wenn Daten aus Tabelle2 zu kopieren sind, diese im Zielbereich der Tabelle 2b über Spalte L gehen würden, sollte die Meldung 'Zielbereich im Zeilenbereich ... voll' erscheinen, d.h. für diesen Zeilenbereich (bzw. diese Zielbereiche) sollte nicht über die Spalte L hinaus kopiert werden!
Würde mich freuen, wenn man das umsetzen könnte.
Viele Grüße
Fritz
P.S. Deine Datei aus dem anderen Thread werd ich gleich testen und dann Bericht erstatten.
Anzeige
AW: ergänzende Daten in zweite Tabelle einfügen
23.02.2012 14:19:23
marcl
schade,
dazu fällt mir auf die Schnelle leider nichts ein. Ich hoffe, dass Die andere Personen helfen können.
Gruß
marcl
AW: ergänzende Daten in zweite Tabelle einfügen
23.02.2012 15:19:43
Fritz_W
Hallo marcl,
ist vollkommen in Ordnung, ganz herzlichen Dank für Deine Bemühungen.
Viele Grüße
Fritz
AW: ergänzende Daten in zweite Tabelle einfügen
23.02.2012 14:43:58
hary
Hallo Fritz
Zum verstaendniss.
Mit dem Makro kopierst Du die 15 Bereiche nach Tab2a.
Jetzt sind in diesen Bereichen in Tab2 noch freie Zellen, die Du nach und nach ausfuellst. Diese neu ausgefuellten Zellen sollen in Tab2a in die passenden Zellen eingetragen werden. Meinst Du so?
Dann kann man einmalig das makro benutzen und dann im Tab2- Code mit dem Changeereigniss bei jedem Neueintrag gleich in Tab2a schreiben lassen.
Ansonsten muss Du jede Zelle, in jedem Bereich, einzeln vergleichen. Da kannst Du mehr als nur eine Tasse Kaffee trinken.
gruss hary
Anzeige
AW: ergänzende Daten in zweite Tabelle einfügen
23.02.2012 15:17:59
Fritz_W
Hallo Hary,
wenn Du an dieser Stelle:
"Jetzt sind in diesen Bereichen in Tab2 noch freie Zellen .."
Tabe2a meinst, hast Du Recht. Allerdings wird ein "16 Zeilenbereich" in Tabelle2 immer nur komplett ausgefüllt, insofern muss immer nur das 'nur' für 15 Blöcke geprüft werden.
Wenn es eine irgendwie praktikable - für dich nicht mit großem Aufwand zu erstellende - diesbezüglich Lösung gibt, würds mich freuen.
Ansonsten dennoch vielen Dank für Dein Interesse an meinem Anliegen.
Viele Grüße
Fritz
AW: ergänzende Daten in zweite Tabelle einfügen
23.02.2012 15:57:56
hary
Hallo Fritz
Teste mal. Ob ich's richtig verstanden habe.

Sub Daten_sichern()
Dim i As Long
Dim i2 As Long
With Sheets("Tabelle2")
For i = 2 To 268 Step 19
For i2 = 2 To 268 Step 19
If Sheets("Tabelle2b").Range("C" & i2) = "" Then
Sheets("Tabelle2b").Range("C" & i2 & ":L" & i2 + 15) = .Range("C" & i & ":L" & i + 15) _
.Value
Exit For
End If
Next
Next
End With
End Sub

gruss hary
Anzeige
AW: ergänzende Daten in zweite Tabelle einfügen
23.02.2012 16:16:54
Fritz_W
Hallo Hary,
irgendwie muss ich das noch nicht verständlich rübergebracht haben, sorry.
Solang das wohl nicht der Fall ist, möcht ich hier keinem der netten Helfer mehr unnütz Arbeit zumuten.
Ich werd noch versuchen, das Ganze anhand einer Beispielmappe zu verdeutlichen. Deswegen werd ich vermutlich aber erst im Laufe des morgigen Vormittags eine Datei hochladen. Wenn Du Lust hast, kannst Du Dir das noch einmal anschauen.
Bis dahin besten Dank.
mfg
Fritz
AW: ja, mach das mal. owT. gruss
23.02.2012 16:18:57
hary
.
AW: ergänzende Daten in zweite Tabelle einfügen
24.02.2012 07:20:02
marcl
Also noch mal zusammengefasst:
Tabelle2 soll komplett von c bis l geprüft werden, ob dort (überall?) in 16 untereinander folgenden Zeilen Werte stehen.
Wenn ja, soll der Bereich in Tabelle2b in genau den gleichen Zeilen wie Tabelle2 kopiert werden. Schon volle Spalten sollen erhalten bleiben und die Werte aus Tabelle 2 in die folgenden Spalten kopiert werden, bis Spalte L erreicht ist. Die nachfolgenden Werte, die noch zu kopieren wären, gehen verloren und es wird ein Warnhinweis ausgegeben.
Ist das so richtig?
Gruß
marcl
Anzeige
AW: ergänzende Daten in zweite Tabelle einfügen
24.02.2012 09:13:08
Fritz_W
Hallo marcl, Hary usw.
getreu dem Motto 'Bilder sagen mehr als tausend Worte' füge ich meinen vorherigen Erläuterungen eine Beispielmappe bei.
In dieser Mappe befinden sich Tabelle2 und Tabelle2b wie sie mit identischer Struktur.
Beide enthalten 15 Blöcke, in denen in den Spalten C bis bis L Text stehen kann. In den Zeilen zwischen den Blöcken stehen z.T. Formeln (fehlen in der beigefügten Datei), die nicht überschrieben werden dürfen.
Vielleicht allerdings sind die Blöcke in Spalte A (in beiden Tabellen) mit den Zahlen 1 bis 15 'durch-nummeriert, die jeweils einen 19zeiligen Abstand haben (beginnend in Zeile 2, dann 21 usw.
(Kann mir vorstellen, das dies bei der Programmierung hilfreich sein könnte)
Wie die Beispieltabelle zeigt, ist - umfasst ein Texteintrag immer gleich alle 16 Zeilen einer Spalte (eines Blocks).
Das Makro hat nun zum Ziel, die Tabelle2b mit den (zum Zeitpunkt der Ausführung des Makros) vorhandenen Daten der Tabelle2 'aufzufüllen'. Wie die 'aufgefüllte' Tabelle2b nach Ausübung des Makros im Beispiel aussehen sollte, ergibt sich aus der Tabelle2b(E) (= Ergebnistabelle), die ich nur zur Verdeutlichung hinzugefügt habe. Die Änderungen gegenüber der Ausgangssituation habe ich durch die graue Hintergrundfarbe verdeutlicht (Hintergrundfarbe dient nur der Verdeutlichung, es sollen ja nur unformatierte Werte eingefügt werden.
Da über die Spalte L keine Eintragungen erfolgen sollen, bleibt im Beispiel 'Block Nr. 15' unverändert, da dieser zum Zeitpunkt der Ausübung des Makros bereits vollständig 'gefüllt' war. In diesem Fall eine sollte eine entsprechende Meldung ausgegeben werden (wenn zu umständlich, gehts auch ohne).
Hoffe, dass das so nun für euch nachvollziehbar ist und danke nochmals für eure Bemühungen.
Viele Grüße
Fritz
https://www.herber.de/bbs/user/79061.xlsx
Anzeige
AW: ergänzende Daten in zweite Tabelle einfügen
24.02.2012 10:29:42
marcl
Ich habe Dir zum anderen Threat noch eine Datei hochgeladen. Dort ist eine andere Art der Abfrage engebaut.
Gruß
marcl
AW: ergänzende Daten in zweite Tabelle einfügen
24.02.2012 10:56:05
hary
Hallo Fritz
Teste mal. Code evtl noch verbesserungfaehig. Im Moment wenig Zeit.

Sub Daten_sichern()
Dim i As Long
Dim letzteQuelle As Long
Application.ScreenUpdating = False
With Sheets("Tabelle")
For i = 2 To 268 Step 19
letzteQuelle = .Cells(i, .Columns.Count).End(xlToLeft).Column
.Range(Cells(i, 3), Cells(i + 15, letzteQuelle)).Copy
Sheets("Tabelle2b").Cells(i, Sheets("Tabelle2b").Cells(i, Sheets("Tabelle2b").Columns. _
Count).End(xlToLeft).Column + 1).PasteSpecial Paste:=xlValue
Next
End With
Application.ScreenUpdating = true
End Sub

gruss hary
Anzeige
AW: ergänzende Daten in zweite Tabelle einfügen
24.02.2012 11:35:55
Fritz_W
Hallo Hary,
zunächst vielen Dank. Aber bitte keinen Stress!
Leider bricht das Makro mit einer Fehlermeldung ab. Die folgend wiedergebene Zeile im Codewird dabei gelb eingefärbt:
.Range(Cells(i, 3), Cells(i + 15, letzteQuelle)).Copy
Desweiteren hab ich im Makro Tabelle durch Tabelle2 ersetzt. (War der Meinung, dass Tabelle2 gemeint sein müsste)
Aber dennoch besagte Fehlermeldung!
Viele Grüße
Fritz
AW: ergänzende Daten in zweite Tabelle einfügen
24.02.2012 11:43:54
hary
hallo Fritz
In Deiner Bsp.-Mappe gab es nur Tabelle.
https://www.herber.de/bbs/user/79069.xlsm
gruss hary
Anzeige
AW: ergänzende Daten in zweite Tabelle einfügen
24.02.2012 11:55:27
Fritz_W
Hallo hary,
du hast Recht, das tut mir leid, es sollte aber Tabelle2 heißen.
Code bringt aber - unabhängig davon - besagte Fehlermeldung.
Nochmals Dank für Deine Unterstützung.
mfg
Fritz
AW: ergänzende Daten in zweite Tabelle einfügen
24.02.2012 12:41:27
hary
Hallo Fritz
Ja, hast recht wenn Du den Code aus einem anderen Blatt startest. Hab zwei Punkte vergessen.
nimm mal diese zeile.

.Range(.Cells(i, 3), .Cells(i + 15, letzteQuelle)).Copy

gruss hary
AW: ergänzende Daten in zweite Tabelle einfügen
24.02.2012 13:06:40
Fritz_W
Hallo hary,
besten Dank, jetzt klappts soweit, nur dass ggf. über die Spalte L hinaus eingefügt wird.
Wenn man das noch ändern könnte, wärs mir recht.
Ansonsten wie gewünscht.
Kann mich heute jedoch nicht mehr melden, weil ich gleich weg muss.
Viele Grüße
Fritz
Anzeige
AW: zusatzfrage
24.02.2012 13:25:04
hary
Hallo Fritz
was ggf. mit den ueberschuessigen Daten passieren?
gruss hary
AW: zusatzfrage
24.02.2012 13:39:50
Fritz_W
Hallo Hary,
in diesem Fall sollte die Daten des betreffenden 'Blocks' (im Beispiel wäre das 'Block 15' in der Tabelle2 (der Quelltabelle) entfernen. Ich hoffe, Du verstehst wie ichs meine.
Danke und Gruß
Fritz
AW: zusatzfrage
24.02.2012 18:38:52
hary
Hallo Fritz
Ich hoffe, Du verstehst wie ichs meine.
Nee,keinen Schimmer
------
jetzt klappts soweit, nur dass ggf. über die Spalte L hinaus eingefügt wird.
Block 15' in der Tabelle2 (der Quelltabelle) entfernen.
------
Du schreibst doch in Tabelle2 bzw holst aus dieser Tabelle, wenn‘s in Tabelle2b ueber SpalteL hinausgeht soll Bereich in Tabelle2 geloescht werden?
gruss hary
AW: hary
25.02.2012 09:13:11
Fritz_W
Hallo hary,
ich bitte nochmals um Entschuldigung, wenn ich durch ungenaue Formulierungen Verwirrung stifte.
Ich meinte folgendes:
Wenn - wie im Falle der Beispieldatei - festgestellt wird (das müsste natürlich im Code veranlasst werden), dass in einem "Block', im vorliegenden Beispiel 'Block Nr. 15' die Tab2b in diesem Block "voll" ist, d.h. bis einschließlich Spalte L gefüllt, sollten die Zellen dieses Zellbereichs in Tab2 (also alle Zellen in Block 15 in der Tab2) 'geleert' (Inhalte gelöscht) werden, so dass ein Einfügen von Daten in der Tab2b über die Spalte L hinaus unterbleibt.
Nochmals vielen Dank für Deine Hilfe und Dein Verständnis.
Viele Grüße
Fritz

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige