AW: Wer hat in bestimmtem Zeitraum Geburtstag
12.12.2005 00:57:47
FLorian
Klasse, hast mir sehr geholfen. Habe es aber nicht mit den Formeln in den Zellen gemacht sondern über VB, kann dann auch noch ein paar formatierungen automatisieren.
Als Basis dienen aber Deine Ideen mit Spalte J, Zelle M7 und M9. Durch VB muss ich auch die Zeile 2 nicht ausblenden...
Hier mein VB-Skript:
Private Sub Workbook_Open()
'---- Auswertungstabelle säubern -----'
Range("L12:N600").Select
Selection.ClearContents
Range("A2").Select
'------------ Zeitraum entfernen ---------------'
Range("M5").Select
Selection.ClearContents
Range("M7").Select
Selection.ClearContents
'---- überflüssige Zeilen löschen -----'
Range("K22:O600").Select
Selection.Delete Shift:=xlUp
'---- Tabelle unten grau "schließen" -----'
Range("K22:O22").Select
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
'------------ Cursor ins Home ---------------'
Range("A2").Select
End Sub
Private Sub Suchen_Click()
Dim i As Integer '------- Variable i -> 1. Zeile in Ausgabetabelle --------'
Dim x As Integer '------- Variable x -> Kontrollvariable ob durchsuchte Zeile auch Eintrag besitzt --------'
'------------ Variablen bestimmen ---------------'
i = 12 '------- Variable i -> 1. Zeile in Ausgabetabelle --------'
x = 0 '------- Variable x -> Kontrollvariable ob durchsuchte Zeile auch Eintrag besitzt --------'
'------------ Eingabenkontrolle und ggf. MsgBox ---------------'
If Range("M5") = 0 Or Range("M7") = 0 Then
MsgBox " Bitte kontrollieren Sie Ihre Eingaben für den Zeitraum des Gemeindebriefes", _
48, " Fehler! "
End If
If Range("M9") = 0 Then
MsgBox " Bitte kontrollieren Sie Ihre Eingabe des Mindesalters", _
48, " Fehler! "
End If
'------------ Auswertung beginnen ---------------'
If Range("M5") <> 0 And Range("M7") <> 0 And Range("M9") <> 0 Then
For n = 2 To 600 Step 1
If Range("A" & n) <> 0 Then '------------ Suchfunktion in Basistabelle -> beginnt bei Zeile 2 ---------------'
x = 1
End If
If Range("M6") <= Range("J" & n) And Range("J" & n) <= Range("M8") And Range("F" & n) >= Range("M9") - 1 And x = 1 Then
ActiveWorkbook.Sheets(1).Range("L" & i) = ActiveWorkbook.Sheets(1).Range("A" & n)
ActiveWorkbook.Sheets(1).Range("N" & i) = ActiveWorkbook.Sheets(1).Range("F" & n) + 1
i = i + 1
x = 0
End If
Next n
End If
'------------ Formatierung ---------------'
Range("K12:O12").Select
Selection.Copy
Range("K13:O" & i - 1).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("K" & i & ":O" & i).Select
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
'------------ Sortierung ---------------'
Range("L12:N600").Select
Selection.Sort Key1:=Range("N12"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'------------ Cursor ins Home ---------------'
Range("A2").Select
End Sub