733 Aufrufe
Gefragt in Tabellenkalkulation von
Guten Tag!

Ich habe ein Excel-Registerblatt, das mittels Aggregat-Formel auf ein zweites Registerblatt zugreift. Sprich: In dem zweiten Registerblatt habe ich Stammdaten, wenn ich dort ein "x" ausfülle, werden die Daten in das erste Registerblatt eingetragen. Weitere Daten werden mittels Sverweis in das erste Blatt vom zweiten übernommen. Also die Spalten A-G werden automatisch befüllt.

Ich habe nun folgendes Problem: in meinem ersten Registerblatt werden also automatisch Zeilen eingefügt, sobald ich im zweiten ein "x" mache. Es gibt in dem ersten Blatt aber auch Zuständigkeiten (Spalten H-I), die ich direkt im ersten Blatt mittels Dropdown eintrage - diese verschieben sich aber nicht mit, wenn eine neue Zeile über die Aggregat-Formel eingefügt wird. Die Inhalte werden dadurch falsch.

Kann mir irgendwer einen Tipp geben, wie das zu lösen ist?

Danke im Voraus!

Grüße, Anton

24 Antworten

0 Punkte
Beantwortet von
Bearbeitet
Hallo M.O.,

ich habe es hingekriegt, ich weiß gar nicht, wie ich mich bei Dir bedanken kann.

Darf ich noch etwas fragen: kann das Makro auch automatisch gestartet werden? Sprich, ich wähle ein "x" im Registerblatt "DATEN" und das Makro wird automatisch gestartet?

Ein kleines Problem ist nur die Geschwindigkeit, aber das lässt sich wahrscheinlich nicht ändern?

Und falls Du noch weiterhelfen könntest: ich möchte nur die Zeilen drucken, sofern in den Spalten L-U (Ergebnisliste) ein Wert angegeben ist (in einer der Spalten reicht ein Wert) - geht das einfach mit einem Makro?

DANKE, DANKE und nochmals DANKE! Ich sitze schon Stunden vor dem Problem.

Gruß,

Anton
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Anton,

wenn du die Makros richtig in die einzelnen Module kopiert hast, dann sollten die Makros automatisch starten, wenn du in der Tabelle Daten ein x in die Spalten R oder S machst (über das Worksheet-Change-Ereignis in der Tabelle Daten).

Wichtig ist, dass nach dem Einfügen der Makros die Datei erst noch einmal gespeichert, geschlossen und wieder geöffnet wird, da beim Öffnen die Daten aus den beiden Datenblättern eingelesen werden.

Wenn deine Originaldatei viele Datensätze enthält, dann dauert er Abgleich leider etwas. ich kann noch einmal versuchen, das Makro etwas schneller zu machen.

Gruß

M.O.
0 Punkte
Beantwortet von
Bearbeitet
Hallo M.O.,

ich habe die Tabelle "zum Laufen" gebracht.

Aufgefallen ist mir, dass, wenn ich eine andere Auswahl in den Spalten G-K treffe (also nachträglich ändere), immer der "alte" Wert nach Setzen des "x" in der jeweiligen Zelle steht. Das wird nur gespeichert, wenn ich die Tabelle wieder auf und zumache, nur Speichern hilft da nicht. Das ist leider etwas fehleranfällig.
Bei meiner Mustertabelle dauern die Befehlt ca. 25sec., wenn das schneller ginge, wäre das echt super, zumal die Originaltabelle viel größer ist.

Danke und Gruß,

Anton
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Anton,

da hatte ich nicht daran gedacht, die Daten neu einzulesen, wenn in den beiden Listen etwas geändert wird sad.

Da muss ich auch noch nachbessern.

Gruß

M.O.

0 Punkte
Beantwortet von
Hallo M.O.,

danke!

Ich habe noch eine Bitte: in meiner Originaldatei habe ich nicht nur 2 "Ergebnislisten", sondern 5. Das heißt, ich greife in der Datentabelle nicht nur auf die Spalten R-S, sondern auf die Spalten N-S zu und habe Ergebnisliste A-D. Ich habe versucht, das umzuprogrammieren, scheitere aber an meinem mangelnden VBA-Wissen. Könntest Du das auch noch mit in den neuen Code aufnehmen?

Und ich habe noch eine Frage zur Geschwindigkeit / zum generellen Code: meinst Du, es wäre sinnvoll, dass das Makro in der Datentabelle Werte sucht, und wenn vorhanden, unabhängig von der Reihenfolge, diese immer am Ende der Ergebnistabelle hineinschreibt, und das Makro dann die Sortierung nachträglich macht? Wäre das einfacher? Ich kann es leider nicht umsetzen, mache mir aber ein paar Gedanken, vielleicht hilfts ja.

Gruß,

Anton
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Anton,

ich habe mal deine letzte Anregung aufgenommen und deine Beispieltabelle etwas umgebaut: Beispieltabelle neu

Jetzt werden die Daten kopiert wenn ein x gesetzt wird, bzw. gelöscht, wenn ein x gelöscht wird. Beachte bitte, dass in den Ergebnistabellen nur noch die Werte stehen und alle Zeilen, die mit Formeln versehen waren, gelöscht wurden.

Schau mal, ob das so für dich funktioniert. Der Code kann auch einfach auf deine richtige Tabelle erweitert werden.

Gruß

M.O.

0 Punkte
Beantwortet von

Hallo M.O.,

wow, danke!

Das Einfügen der neuen Daten mit dem "x" funktioniert super, jedoch beim Löschen erhalte ich Fehlermeldungen (Meldung 1, Meldung 2).

In "Diese Arbeitsmappe" habe ich noch den Befehl "call einfügen" gelöscht, da kam nämlich schon die erste Fehlermeldung. Danach hat wie gesagt das Einfügen neuer Daten funktioniert, aber nicht das Löschen.

Hab ich was falsch gemacht?

Gruß,

Uschi

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Uschi (oder Anton?) frownwink

ich hatte vergessen, dass ich im Arbeitsmappe-Öffnen-Ereignis noch den Verweis hatte.

Und beim Löschen-Makro hatte ich vergessen, den Blattschutz aufzuheben. Hier die geänderte Version:

Sub loeschen(strName As String, lngCopy As Long)
Dim strNummer As String
Dim lngLetzte As Long
Dim lngZeile As Long

strNummer = Worksheets("Daten").Cells(lngCopy, 4).Value
With Worksheets(strName)
  .Unprotect
  lngLetzte = .Cells(Rows.Count, 3).End(xlUp).Row + 1
  For lngZeile = 10 To lngLetzte
   If .Cells(lngZeile, 3).Value = strNummer Then
     .Cells(lngZeile, 3).EntireRow.Delete Shift:=xlUp
     Exit Sub
   End If
  Next lngZeile
.Protect
End With
End Sub

Gruß

M.O.

0 Punkte
Beantwortet von

Hallo M.O.,

ohje... ein Verschreiber... sorry... blush

Ich habe den Code nun hineinkopiert, in Ergebnisliste B funktioniert alles (außer, dass die Zeilen mit dem Index 1.1 und 1.1.1 doppelt in den Ergebnislisten angezeigt werden). In den Spalten V, W und X habe ich noch Werte, die für die bedingte Formatierung erforderlich sind. In der Ergebnisliste A kann ich zwar Daten entfernen ("x" abwählen), aber nicht hinzufügen.

Ich lade Dir mal die Datei, wie sie jetzt bei mir aussieht, hoch.

Danke Dir! Wenn es  Dich nicht mehr freut, kann ich das auch notfalls anders umsetzen wink.

Gruß,

Anton

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Anton,

ich hatte nur in der Ergebnisliste B getestet. Da in der Ergebnisliste A eine Gliederung vorhanden ist, kopiert er zwar die Daten, aber er sortiert nicht. Das habe ich inzwischen behoben. Nur die Sortierung ist noch nicht ganz korrekt. Da will ich noch mal etwas probieren.

Gruß

M.O.
...