Verteiler erstellen

Hallo alle zusammen,

ich habe heute die lustige Aufgabe bekommen in unserem kleinen, aber feinen Büro ein neues Verteilersystem zu entwerfen.

Ich habe auch schon die Grundidee einen Verteiler per Excel zu erstellen. Da dieser benutzerfreundlich sein soll, möchte ich per Kontrollkästchen die betreffenen Personen markieren und diese dann, an anderer Stelle des Blattes, aufgereiht drucken lassen.

Ich habe die entsprechenden Kästchen schon erstellt und verknüpft, möchte jetzt aber nicht im Druckbereich eine „wenn-dann“ Formel ala

„=wenn(a1=wahr;b1;wenn(a2=wahr;b2;wenn(a3=wahr; …“ und so weiter

Kennt jemand einen eleganteren und besser aussehenden Weg?

Ach ja ich benutze Excel 2010

Gruß und Dank schonmal
Steffen

Hallo,

da meine Glaskugel in Reparatur ist (kam nur Werbung) wäre es gut, mal ne anonymisierte Bsp. Datei zu posten.
Uber externe Anbieter (nur nicht rapidschei…) ist es möglich!

Dann schaun wir mal…:smile:

VG René

So hier die Datei.
Ich hab da einen kleinen Kommentar noch zu geschrieben. Hoffe das
hilft euch und dadurch mir :wink:

http://www.file-upload.net/download-3164529/Verteile…

Hallo,

Formel in F4 ( Versionen bis XL2007 )
{=WENN(ISTFEHLER(INDEX(A:A;KKLEINSTE(WENN($B$1:blush:B$11=WAHR;ZEILE($1:blush:11));ZEILE(A1))));"";INDEX(A:A;KKLEINSTE(WENN($B$1:blush:B$11=WAHR;ZEILE($1:blush:11));ZEILE(A1))))}

Formel in F4 ( Versionen ab XL2007 )
{=WENNFEHLER(INDEX(A:A;KKLEINSTE(WENN($B$1:blush:B$11=WAHR;ZEILE($1:blush:11));ZEILE(A1)));"")}

ACHTUNG! Matrixformel. Die {} nicht mit eingeben. Nach der letzten ), STRG+SHIFT festhalten und ENTER drücken. Dann werden die {} erzeugt!

VG René
P.S. Bei Fragen bitte neuen Thread beginnen, denn soweit runter scrolle ich im Normalfall nicht mehr. :wink:

ok danke für die schnelle hilfe :wink:

Ich hab da einen kleinen Kommentar noch zu geschrieben. Hoffe
das
http://www.file-upload.net/download-3164529/Verteile…
.html

Hallo Steffen,

deine Kontrollkästchen sind durcheinandergeraten mit ihrem Index, das bringt langfristig nur Ärger, besser ist es sie von oben nach unten durchzunummerieren.

Dafür dient(e) das erste Makro, damit kannst du auch gleich die Positionen, Größe, Text, Wahr/Falsch für den Strat festlegen.

Die Größe des Quadrats wo das Kreus nachher erscheint kannst du nicht direkt bestimmen.
Du kannst die Größe und Position des ganzen Kontrollfeldes festlegen.

Da du scheinbar noch beim Entwickeln bist, mit dem maro kannst du leicht andere Werte/Positionen austesten wie sie dann optisch wirken.
Wenn alles fertig ist kannste ja ggfs. das Makro löschen.

Die zwei nachfolgenden Codes dienen dazu die Auswertung in F auch mit Makros zu erledigen.

Willst du die Auswertung in F auch gleich immer per Makro machen, müssen halt immer bei Mappenstart die Makros aktiviert werden, außer du zertifizierst dich selbst, dazu gibt es im Archiv einiges, Stichwort selfcert.

Code in ein Standardmodul, das hast du ja schon.

Sub PositionGroesse()
Dim CB As OLEObject, Zei As Long
With Worksheets("Tabelle1")
 For Zei = 1 To .OLEObjects.Count
 With .OLEObjects(Zei)
 .Object.Caption = ""
 .Left = 45
 .Top = Cells(Zei + 3, 1).Top + 7
 .Height = 10
 .Width = 10
 .LinkedCell = "" 'Cells(Zei + 3, 2).Address(0, 0)
 .Object.Value = False
 End With
 Next Zei
End With
End Sub

Diesen Code auch in das Standardmodul:

Sub VerteilerAkualisieren()
Dim N As Long, ZeiF As Long
With Worksheets("Tabelle1")
 Range("F4:F100").ClearContents
 For N = 1 To .OLEObjects.Count
 If .OLEObjects(N).Object.Value = True Then
 .Cells(4 + ZeiF, 6).Value = .OLEObjects(N).TopLeftCell.Text
 ZeiF = ZeiF + 1
 End If
 Next N
End With
End Sub

Diesen Code in das Modul „Tabelle1“

Private Sub CheckBox1\_Click()
Call VerteilerAkualisieren
End Sub

Private Sub CheckBox2\_Click()
Call VerteilerAkualisieren
End Sub

Private Sub CheckBox3\_Click()
Call VerteilerAkualisieren
End Sub

Private Sub CheckBox4\_Click()
Call VerteilerAkualisieren
End Sub

Private Sub CheckBox5\_Click()
Call VerteilerAkualisieren
End Sub

Private Sub CheckBox6\_Click()
Call VerteilerAkualisieren
End Sub

Private Sub CheckBox7\_Click()
Call VerteilerAkualisieren
End Sub

Private Sub CheckBox8\_Click()
Call VerteilerAkualisieren
End Sub

Gruß
Reinhard