Frage von Pille1601, 68

Es geht un Excel und wie ich dort Automatisch tabellen miteinander vergleiche?

Ich weiß das wurde schon mal irgendwann gefragt aber das konnte mir nicht weiterhelfen.

Ich möchte wenn ich was in eine neue Zelle geschrieben habe die ich vorher neu eingefügt habe und zwar irgendwo, wo ich sie brauche also

24 Bla Bla
25 Hier würde ich eine neue Zelle machen und  was reinschreiben 
26 Bla Bla 2

Die 2 Tabelle:

24 Bla Bla
25 Hier soll automatisch eine neu zelle genau an dem punkt mit dem text sein 
26 Bla Bla 2

Diese Tabelle ist nochmal vorhanden und genau gleich aufgebaut und ich möchte wenn ich das in der haupt tabelle geändert habe, die gleiche änderung in der andern haben und das am besten ohne sie zu öffnen.

Wäre super wenn ihr mir helfen könntet und falls fragen dazu noch sind beantworte ich sie so schnell wie möglich.

Danke im voraus :)

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Iamiam, Community-Experte für Excel, 33

Es gibt eine Formel, die eingeschobene Zeilen im Original berücksichtigt, allerdings muss die ganze Zweittabelle dann nur aus dieser Formel bestehen und rückwärts gehts nicht:

=Adresse(Zeile();Spalte()) das musst Du noch auf das Originalblatt beziehen mit

=INDIREKT("'[ERLEDIGE^_.xls]Einkauf'!"&ADRESSE(ZEILE();SPALTE()))

ich beziehe mich dabei auf das Blatt Einkauf in der Datei ERLEDIGE^_.xls (Du schreibst ja keinen eigenen Dateinamen-grrrr!- da musst Du halt dann selber korrigieren!

Vergiss nicht die Hochkommata vor [ und vor !

Die Formel kannst Du auf den gesamten beschriebenen und unbeschriebenen Bereich kopieren. Für leere Zellen liefert sie 0. Das auszuschließen bringt nichts, denn die Formel belegt ja selbst eine Zelle, so dass Texte beschnitten werden könnten.

Du kannst aber die Null ganz unauffällig machen, indem Du folgendes Format (Benutzerdefiniert) verwendest:

Standard;[Rot]Standard;[Magenta]º  oder
Standard;[Rot]Standard;[Magenta]٠

das ٠ ist die sog. indische Null, nur in starker Vergrößerung als schräge Raute zu erkennen. Dieser kleine magentafarbige Punkt stört nicht die Übersichtlichkeit des Blattes, zeigt aber an, dass in der Zelle was steht (nämlich die Formel)

Da sich die Formel auf die Adressen im Zielblatt bezieht, kann sie eingefügte Zeilen/Spalten im Originalblatt erfassen

Es geht übrigens auch mit index, aber dazu reicht mir die Korrekturzeit nicht mehr. Frag bei Bedarf.

Kommentar von Iamiam ,

wenn beide Dateien bearbeitet werden sollen, musst Du natürlich Änderungen erst überprüfen und dann manuell nachvollziehen, xl kann ja nicht wissen, was nun Sache ist. Du kannst dazu ein weiteres Blatt anlegen  und die Formel etwas aufwändiger aber analog verwenden mit =(Blatt1... = BlattandereDatei)*1

Das lefert dann Wahr und Falsch bzw nach Multiplikation mit 1 1 und 0.

Hier empfiehlt es sich, die 0 auffällig zu gestalten per Bendef Format: anstatt ° oder der indischen Null verwendest Du ▓ oder █ , das hebt abweichende Zellen ausreichend kenntlich hervor.

Frag auch da ggf nochmal nach.

Kommentar von Pille1601 ,

Habe jetzt dieses makro erstellt

Sub Makro3()

' Kopieren und Öffnen
Range("A20:A20000").Select
Selection.Copy
Workbooks.Open Filename:= _
"L:\SIV\overview.xls"
Windows("overview.xls").Activate

' Alle Tabellen aktualisieren

Sheets("suad1").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suad2").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suad3").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suad4").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suad5").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suvd3").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suvd3_a").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suvm4").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suvm4_a").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suv11").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suv11_a").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suvm6").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suvm6_a").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suv31").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suv31_a").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suv32").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suv32_a").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suse1").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suen1").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suen3").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suen4").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suen4").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("suen6").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("sue12").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("sue13").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("sue16").Select
Range("A20:A20000").Select
ActiveSheet.Paste
Sheets("sue18").Select
Range("A20:A20000").Select
ActiveSheet.Paste

' Speichern und Ende (Schließen)
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

und das geht alles aber er nimmt die formatierung einfach von den anderen zellen mit und das soll er nicht er soll einfach die neue zelle kopieren und sie unformatiert einfügen.

Vielen dank für die viele hilfe

Kommentar von Iamiam ,

Du willst also in die gleiche Datei das Gleiche in ungezählte Blätter vervielfältigen?

Dann anstatt

.paste den Befehl:

.pastespecial (xlformulas) oder -falls nur als Werte: (xlvalues)

kannst Du gesammelt ersetzen.

Kommentar von Pille1601 ,

Moin ich habe leider ein problem an sich funktioniert alles nur irgendwie übernimmt er bei den neuen einträgen auch die formatierung also muss ich das programm so ändern das wenn eine neue zeile eingefügt wird sich die in der anderen datei tabelle auch erstellt und genau das gleiche rein geschrieben wird.

Kommentar von Iamiam ,

Wenn eine neue Zeile eingefügt wird, übernimmt xl automatisch das Format von der Zeile drüber.

Du musst also die Formate löschen:

<Zielzelle>.entirerow.clearformats (möglicherweise muss noch ein ..cells rein, probier das selber aus

Antwort
von Pille1601, 3

Moin ich habe leider ein problem an sich funktioniert alles nur

irgendwie übernimmt er bei den neuen einträgen auch die formatierung

also muss ich das programm so ändern das wenn eine neue zeile eingefügt

wird sich die in der anderen datei tabelle auch erstellt und genau das

gleiche rein geschrieben wird.

Expertenantwort
von Suboptimierer, Community-Experte für Excel, 55

Kopier doch die komplette Datei, nachdem du sie geschlossen hast. Theoretisch könntest du dafür auch ein Makro aufzeichnen.

Kommentar von Pille1601 ,

irgendwie verstehe ich grade nicht wie ich jetzt damit weiter machen soll. Natürlich erstmal danke für die antwort :).

Aber wie kann ich das jetzt am geschicktesten machen mit dem aufzeichnen will das nicht so richtig leider.

Kommentar von Suboptimierer ,

Du willst am Ende eine zweite Tabelle haben, die genauso aussieht, wie die erste Tabelle. Das kannst du am einfachsten erreichen, indem du das komplette Excelfile kopierst.

Den Kopiervorgang kann man mittels Makro oder Skript automatisieren.

Mehr wollte ich nicht sagen.

Kommentar von Pille1601 ,

ah verstehe aber ne das ist nicht ganz das was ich brauche weil ab zelle 20 soll alles gleich sein also sozusagen alles ab A20 makieren und dann bis keine ahnung ende so machen wie die andere

Kommentar von Suboptimierer ,

Am besten ist, du zeichnest ein Makro auf.

Entwicklertools (letzter Reiter) → Makro aufzeichnen 

Dann markierst du 20:20000 und kopierst die Zeilen in den Zielbereich und beendest die Aufnahme. Dann kannst du dir eine Schaltfläche (Steuerelement) hinzufügen und dieser das Makro zuweisen.

Kommentar von Pille1601 ,

ok hab ich gemacht das ist ja im grunde ja auch nur kopie paste aber das wollte ich ja und jetzt muss es halt so funktionieren das wenn ich das mache er das aktualisiert in der anderen ohne das ich sie offen habe

Das ist der code

Sub Makro6()
'
' Makro6 Makro
'

'
Range("A20:A20000").Select
Selection.Copy
Windows("MG46_160901_102648h_result_overview.xls").Activate
Range("A20:A20000").Select
ActiveSheet.Paste
End Sub
Kommentar von Suboptimierer ,

Du kannst die Datei mit Set wb = Workbook.Open (meine ich) öffnen und mit wb.Close schließen.

Zum Schreiben musst du die Datei kurz öffnen. Du kannst sie aber mit wb.Visible = False (oder so ähnlich; habe gerade kein Excel zur Hand) für den Schreibprozess unsichtbar schalten.

Keine passende Antwort gefunden?

Fragen Sie die Community