Bereich.Value=Bereich.Value ändert Werte
Reinhard
nachstehend der Code aus einem Standardmodul, Gibt nur noch einen Einzeiler in ComboBox1_Change, der Call Berechne(...) ausführt .
Je nach Auswahl in der Combobox des Blattes sollen Werte in F unterschiedlich berechnet/ausgewertet werden, Ergebnis dann nach G. Gelöst habe ich das so daß je nach Auswahl in G unterschiedliche Formeln reinkommen.
Klappt auch, wenn auch erstaunlich langsam für 150 Zellen !?
Aber, deshalb frage ich an, wenn ich bei gewältem "Primzahl" diese Codezeile in "Berechne"
'Ber.Value = Ber.Value
auskommentiere, ist 103, 311, usw. eine Primzahl
Mach ich das Hochkomma weg, sind alle Zahlen keine Primzahlen.
Ich kann mir das nicht erklären, auf welchem Schlauch stehe ich denn?
Hier die Datei (495 KB):
http://www.file-upload.net/download-3092610/kwTabbi-Online.xls.html
Danke ^ Gruß
Reinhard
Option Explicit
Sub Berechne(Was As String)
Dim Zei As Long, Ber As Range
With Worksheets("Tabbi")
For Zei = 8 To 158 Step 5
If Not Ber Is Nothing Then
Set Ber = Union(Ber, .Range(.Cells(Zei, 7), .Cells(Zei + 3, 7)))
Else
Set Ber = .Range(.Cells(Zei, 7), .Cells(Zei + 3, 7))
End If
Next Zei
Application.ScreenUpdating = False
If Was = "Quersumme" Then Ber.Formula = "=Quersumme(F8)"
If Was = "Durchdrei" Then Ber.Formula = "=DurchDrei(F8)"
If Was = "Primzahl" Then Ber.Formula = "=Primzahl(F8)"
'Ber.Value = Ber.Value
Application.ScreenUpdating = True
End With
End Sub
Function Quersumme(Zelle As Range) As Integer
Dim intI As Integer
For intI = 1 To Len(Zelle.Value)
Quersumme = Quersumme + CInt(Mid(Zelle.Value, intI, 1))
Next
End Function
Function DurchDrei(Zelle As Range) As String
DurchDrei = IIf(Zelle.Value Mod 3 = 0, "ja", "nein")
End Function
Function Primzahl(Zelle As Range) As String
Dim N As Integer, p As Boolean
For N = Zelle.Value - 1 To 2 Step -1
If Zelle.Value Mod N = 0 Then
p = True
Exit For
End If
Next N
Primzahl = IIf(p = False, "ist", "keine")
End Function