Hallo zusammen,
die gleiche Fehlermeldung haut mir SiDiary schon das ganze Wochenende um die Ohren. Habe Jörg das Sheet gepostet. Hier mal mein Versuch:
Sub Monat_speichern()
'
' Monat_speichern Makro
' Makro am 13.08.2005 von Ralf Ulrich aufgezeichnet
'
'
Range("A3").Select
Selection.Copy
Sheets("SiDiary").Select
Sheets("SiDiary").Name = Range("A3")
End Sub
Dieses Makro funktioniert im Sheet SiDiaryToDo, wenn ich es zum Schluß plaziere [$CALLMAKRO(Monat_speichern)], wird dann aber nicht gelöscht. Es läuft aber nicht wenn ich es in Alfs Makro zum Schluß einbaue...
'Hier nun Alfs Makro, er hat schon den Zahlen in den BZ-Zellen die Kommastelle zugewiesen, wenn mmol Daten vorliegen.
Public Sub SiDiary_ToDo()
Dim liZeile As Integer
Dim liEndZeile As Integer
Sheets("Sidiary").Select
'Das Ende des Datenbereichs feststellen...
'Dazu suchen wir einfach die Zeichenkette ØM in der ersten Spalte...
liZeile = 5
Do While liZeile < 371
If Sheets("Sidiary").Range("A" & liZeile).Text = "ØM" Then
'Perfekt, die Zeile davor ist die letzte Zeile des Datenbereichs
liEndZeile = liZeile - 1
Exit Do
End If
liZeile = liZeile + 1
Loop
If liEndZeile > 0 Then
'Die Formatierung machen wir nur, wenn wir den Datenbereich korrekt identifizieren konnten!
'Die letzte Leerzeile löschen
Sheets("Sidiary").Rows(liEndZeile & ":" & liEndZeile).Select
Selection.Delete Shift:=xlUp
liEndZeile = liEndZeile - 1
'Jetzt zeilenweise selektieren
For liZeile = 6 To liEndZeile Step 2
Sheets("Sidiary").Range("A" & liZeile & ":AH" & liZeile).Select
Sheets("Sidiary").Range("A" & liZeile).Activate
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Next liZeile
If UCase(Sheets("Sidiary").Range("AN1").Text) = "MMOL/L" Then
'Prüfen, ob der Anwender evtl. in mmol/l arbeitet, denn dann sollten wir
'den Blutzucker mit einer Nachkommastelle anzeigen!
Sheets("Sidiary").Range("C" & liEndZeile + 1 & ",G" & liEndZeile + 1 & ",K" & liEndZeile + 1 & ",O" & liEndZeile + 1 & _
",S" & liEndZeile + 1 & ",W" & liEndZeile + 1 & ",AA" & liEndZeile + 1 & ",AE" & liEndZeile + 1 & _
",AI5:AI" & liEndZeile + 1).Select
Sheets("Sidiary").Range("AI5").Activate
Selection.NumberFormat = "0.0"
'Hier habe ich nun die bedingte Formatierung der BZ-Zahlen eingeschoben:<<<<<<<<<<<<<<<<<<<<
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
Formula1:="4"
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = True
.ColorIndex = 41
End With
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
Formula1:="6"
Selection.FormatConditions(2).Font.ColorIndex = 11
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual _
, Formula1:="8"
Selection.FormatConditions(3).Font.ColorIndex = 3
'Weiter habe ich die Grenzwerte für BZ in mmol neu definiert:<<<<<<<<<<<<<<<<<<<<<<<<<<
Range("B9").Select
ActiveCell.FormulaR1C1 = "<4"
Range("B10").Select
ActiveCell.FormulaR1C1 = "<6"
Range("B11").Select
ActiveCell.FormulaR1C1 = "<8"
Range("B12").Select
ActiveCell.FormulaR1C1 = "<11"
Range("B13").Select
ActiveCell.FormulaR1C1 = ">=11"
End If
End If
Sheets("SiDiary").Range("A1").Select
End Sub
Viele Grüße,
Ralf