Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
940to944
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
940to944
940to944
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen suchen kopieren und einfügen

Zeilen suchen kopieren und einfügen
20.01.2008 13:04:00
Wild
Hallo Excel Gemeinde
Ich habe da ein Ordner Namens VBZ. Darin sind 23 Unterordner. In diesen Unterordnern hat es jeweils eine Excel Mappe mit minimum 5 bis maximum 128 Tabellenblätter.
Hier das Muster eines Tabellenblattes.
https://www.herber.de/bbs/user/49207.xls
Und das Muster eines Datenblattes.
https://www.herber.de/bbs/user/49212.xls
Leider musste ich die Tabelle ohne Formeln hochladen da sie sonst zu gross gewesen wäre.
Hier nun einige Erklärungen zur Tabelle.
In jeder Tabelle wird
in Spalte A fortlaufend das Datum,
in Spalte B der dazugehörende Tag
und in Spalte C eine Dienstnummer berechnet.
Jede Tabelle ist ein Jahresplan in dem nur die Dienstnummern unterschiedlich sind.
Weiter werden in Spalte D - H die Tagesart berechnet.
Es sind folgende:
Montag - Donnerstag, =1
Freitag, =2
Samstag, =3
Sonntag, =4
Feiertag, =5
Ferien Mo. - Do., =6
Ferien Fr. =7
In Spalte J - N und P - U werden dann die Passenden Dienste zu den Dienstnummern berechnet.
Diese Arbeit mache ich mit einer WENN Formel in die SVERWEIS Formeln eingebunden sind.
Hier ein Beispiel einer solchen Formel
=WENN(ODER((W11=48);(W11=49);(W11=47));" ";(WENN((F11="1");(SVERWEIS(C11; '[Drucken.xls]Mo. - Do.'!$A$1:$V$392;5;FALSCH));(WENN((F11="2");(SVERWEIS(C11; [Drucken.xls]Fr.!$A$1:$X$392;5;FALSCH));(WENN((F11="3");(SVERWEIS(C11;[Drucken.xls]Sa.!$A$1:$X$392;5; FALSCH));(WENN((F11="4");(SVERWEIS(C11;[Drucken.xls]So.!$A$1:$X$392;5;FALSCH));(WENN((F11="5"); (SVERWEIS(C11;'[Drucken.xls]Ferien Dienste Mo. - Do.'!$A$1:$V$619;5;FALSCH));(WENN((F11="6"); (SVERWEIS(C11;'[Drucken.xls]Ferien Dienste Fr.'!$A$1:$V$571;5;FALSCH));(WENN((F11="7");" ";" "))))))) ))))))))
In Spalte W wird noch die Kallenderwoche berechnet.
Mein Problem ist nun folgendes:
Die WENN Formel ist restlos ausgereizt. Ich müsste aber neu noch 3 weitere Kriterien einfügen können.
Das heist ich hätte neu 10 verschiedene Tagesarten.
Jede Tabelle hat pro Blatt über 3000 Formeln. Das heist bei 128 Tabellen in einer Mappe über 384000 Formeln.
Das speichern dauert bei 128 Blättern so ca. 20 Minuten.
Meine Ueberlegung ist nun folgende.
Ist es wohl möglich das ein Makro
1. Bei Zeile 1 beginnt zu prüfen ob eine Tagesart vorhanden ist, wenn ja die Tagesart prüft, wenn nein zur nächsten Zeile springt
2. Anhand der Tagesart die entsprechende Datentabelle auswählt
3. danach gemäss Dienstnummer die richtige Zeile markiert und sie
4. vom Datenblatt zur Tabelle kopiert ohne Dienstnummer
Und das so lange wiederholt bis zum schluss der Tabelle
Ich denke das ist ein riesen Ding aber mit meinen Kenntnissen und mit Formeln kommt man hier so vermute ich nicht mehr weiter.
Sollte hier ein Makro funktionieren so könnte ich sämmtliche Formeln der Spalten J - T löschen was die Speicherzeit sicher enorm verkürzt.
Für euere Bemühungen danke ich euch schon im voraus tausend mal
Mit freundlichen Grüssen
Rolf Wild

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen suchen kopieren und einfügen
21.01.2008 10:30:00
Wolli
Hallo Rolf. Das Makro alleine ist überhaupt kein Riesenproblem, das kann man schon machen. Aber da Du selbst Dich mit Programmierung kaum auskennst, ist die Frage, ob Du es passend integrieren kannst. Jetzt mal ehrlich: Wenn ich Deine beiden Dateien sehe und die Formel und die Anzahl der Arbeitsmappen etc. - ich könnte keine Nacht ruhig schlafen, wenn ich damit die Richtigkeit der Dienstpläne hunderter Busfahrer sicherstellen sollte. Meines Erachtens ist es dringend nötig, diese Lösung durch etwas Neues zu ersetzen, das handhabbar, überschaubar und pflegbar ist. Zum Beispiel eine Art Datenbank, mit allen wichtigen Angaben und EINEN Jahresplan, der sich auf Knopfdruck mit den Daten des Fahrers füllt. Das wäre ein Projekt, das für einen Programmierer vielleicht in 20-40 Stunden zu realisieren ist, das Geld wäre für Deinen Arbeitgeber gut angelegt.
Hier findest Du unter "Forumsseiten - Profile - Profilliste" eine ganze Reihe Helfer-Profile (u.a. auch meins), vielleicht lässt Du Dich da konkret von jemandem unterstützen. Ich hätte schon Lust, will mich aber nicht aufdrängen :-)
So, ich schicke das jetzt ab und schiebe gleich noch ein Makro hinterher das das Gewünschte tut.
Beste Grüße aus Hannover, Wolli

Anzeige
Makrolösung
21.01.2008 10:59:01
Wolli

Sub Dienste_Kopieren()
Dim lngZielZeile As Long, _
lngQuellZeile As Long, _
wkbQuellmappe As Workbook, _
wksQuellblatt As Worksheet, _
rngGefunden As Range
'Arbeitsmappennamen + Blattnamen anpassen!
Set wkbQuellmappe = Workbooks("49212.xls")
Set wksQuellblatt = wkbQuellmappe.Sheets("Sheet1")
For lngZielZeile = 1 To ActiveSheet.Cells(1, 1).SpecialCells(xlLastCell).Row
' Es werden nur nummerische, nichtleere Zellen berücksichtigt!
If IsNumeric(Cells(lngZielZeile, 3)) And Not (IsEmpty(Cells(lngZielZeile, 3))) Then
Set rngGefunden = wksQuellblatt.Columns(1).Find(what:=Cells(lngZielZeile, 3))
If Not (rngGefunden Is Nothing) Then
lngQuellZeile = rngGefunden.Row
Range(wksQuellblatt.Cells(lngQuellZeile, 3), wksQuellblatt.Cells(lngQuellZeile,  _
14)).Copy
ActiveSheet.Cells(lngZielZeile, 10).PasteSpecial Paste:=xlValues
End If
End If
Next lngZielZeile
Application.CutCopyMode = False
End Sub


Gruß, Wolli

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige