Makro-Frage an Franz fcs
09.11.2006 10:52:15
Düppi
ich stehe mit Deinem Code nunmehr vor einer neuen Aufgabe. Kurz mein Problem: Ich bastle an einem Planungsprogramm für eine Tageszeitung. Damit legen wir täglich die Seitenumfänge fest. Mehrere Lokalausgaben mit unterschiedlichen Seitenzahlen. Hier vereinfacht mit zwei Lokalteilen aufgeführt.
Sheet "Ausgaben":
Spalte B: Seiten für Ausgabe lGTL.
Spalte J: Seiten für Ausgabe lWDB.
Spalte A: Seitennummer (1 bis maximal 48 möglich) für Ausgabe lGTL.
Spalte H: Seitennummer (1 bis maximal 48 möglich) für Ausgabe lWDB.
Ich kann, wie es das Makro auch zuverlässig macht, im Sheet "Guetersloh" sehen, wo - Beispiel - die Seite Wirtschaft aus der Ausgabe lGTL in der Ausgabe lWDB läuft. Wo genau sie dort erscheint (an anderer Stelle/gar nicht/auf gleicher Position), wird im Sheet "Guetersloh" dargestellt. Nun ist es (jetzt kommts) möglich, dass wir in lGTL z.B. 32 Seiten drucken, in lWDB nur 28 - oder umgekehrt. Dies stellt sich im Sheet "Ausgaben" wie folgt dar, wobei wir Umfangsdifferenzen in B oder J einfach mit einem x versehen. In H bleibt dann die Zelle mit der Seitennummer leer - Beispiel:
Sheet "Ausgaben" Sheet "Guetersloh"
Ausgabe GTL Ausgabe WDB Ausgabe GTL Wird in WDB...
A B H J
1 Titelseite 1 Titelseite 1 Titelseite 1
2 Politik 2 Politik 2 Politik 2
3 Wirtschaft x 3 Wirtschaft 3
4 Fernsehen x 4 Fernsehen 4
5 Sport 3 Wirtschaft
6 Lokalsport 4 Fernsehen
Du siehst, Franz, dass die Seite Wirtschaft in GTL auf Seitennummer 3, in WDB ebenfalls auf 3 erscheint - allerdings wird die Zahl 3 im Sheet "Guetersloh" mit Deinem VBA, das ja das x nicht kennt, zu tief ausgeworfen, nämlich auf Höhe der Wirtschafts-Seite in WDB. Sie müsste aber um zwei Zeilen tiefer (wegen der beiden x) stehen.
Es wäre also wichtig, die Zeilen mit x in B oder J zu überspringen. Dabei müsstest Du wissen, dass wir nicht immer unterschiedliche Umfänge haben und diese von Ausgabe zu Ausgabe verschieden sind, also mehrere x-e vorkommen können. Hoffentlich kannst Du Dich noch einmal damit befassen, hofft Düppi!
Private Sub Worksheet_Activate()
Dim lGTL As Integer
Dim lWDB As Integer
Dim Ausgaben1 As Range, Ausgaben2 As Range
Worksheets("Guetersloh").Range("K5:O52").ClearContents
Set Ausgaben1 = Sheets("Ausgaben").Range("B5:B52")
Set Ausgaben2 = Sheets("Ausgaben").Range("J5:J52")
For lGTL = 1 To Ausgaben1.Rows.Count
For lWDB = 1 To Ausgaben2.Rows.Count
If Ausgaben1(lGTL, 1) = Ausgaben2(lWDB, 1) And Ausgaben1(lGTL, 1) <> "" Then
Sheets("Guetersloh").Cells(lGTL + 4, "K").Value = Sheets("Ausgaben").Cells(lWDB + 4, "I")
Exit For
End If
Next lWDB
Next lGTL
End Sub