HERBERS Excel-Forum - die Beispiele

Thema: Primzahlen 1 bis 10.000.000 eintragen

Home

Gruppe

Allgemein

Problem

In die Tabelle werden die Primzahlen zwischen 1 und 10.000.000 eingetragen. Die Routine kann mit ESCAPE abgebrochen werden.

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
StandardModule: Modul1

Option Base 1

Sub PrimeNumbers()
   Dim VNum As Long
   Dim VMaxNum As Long
   Dim i As Long
   Dim VMaxInd As Long, VMinNum As Long, lRow As Long
   Dim Prime() As Variant
   Dim VCtrl As Boolean
   Application.EnableCancelKey = xlErrorHandler
   On Error GoTo ERRORHANDLER
   Cells.ClearContents
   Application.ScreenUpdating = False
   VMaxInd = 1
   ReDim Prime(VMaxInd)
   Prime(1) = 2
   VMinNum = 1
   VMaxNum = 10000000
   For VNum = 3 To VMaxNum Step 2
      VCtrl = True
      For i = 1 To VMaxInd
         If VNum Mod Prime(i) = 0 Then
            VCtrl = False
            Exit For
         ElseIf (Prime(i)) ^ 2 > VNum Then   ' <--- this is the trick!
            Exit For
         End If
      Next i
      If VCtrl = True Then
         VMaxInd = VMaxInd + 1
         ReDim Preserve Prime(VMaxInd)
         Prime(VMaxInd) = VNum
         lRow = lRow + 1
         Cells(lRow) = VNum
         If lRow Mod 1000 = 0 Then Application.StatusBar = "Trage die " & lRow & ". Primzahl ein (abbrechen mit ESC)..."

      End If
   Next VNum
ERRORHANDLER:
   Application.StatusBar = False
End Sub

Beiträge aus dem Excel-Forum zu den Themen Allgemein und Berechnen

scrollen berechnen Anfangskapital berechnen
Makro/VBA: Neu berechnen bis *Teil 2* Makro/VBA: Neu berechnen bis
Bestimmte Zelle mit Makro berechnen Range-Wert aus der Statistik berechnen
Zeiten (diff. in Monaten) berechnen Auflistung von Zahlen, ohne diese zu berechnen
nach 2 Werten suchen und berechnen Trend/Entwicklung berechnen
zellen berechnen Staus des Berechnens anzeigen
Zwischenzeiten berechnen Pivot - Berechnendes Feld
Allgemeine Frage zur Fehlerbehandlung allgemeine Fragen zu einer Datenbank
XY-Diagramm, Funktionswerte berechnen Werte bereichsweise berechnen
Arbeitstage berechnen Zinsen berechnen in VBA (Fehler)
Kalendarwoche berechnen Anzahl Tage berechnen
Problem mit copy-paste bei manuellem berechnen Matrix / Korridor berechnen
Arbeitstage berechnen Daten aus Pivottabelle berechnen
berechnen mit Combobox Soll eintragen und Zwischenstände berechnen
Doppelte Werte nicht berechnen Zinssatz mit Hilfe des Datums berechnen
Trend berechnen Restliche Tage berechnen
Zwischensumme nicht mitberechnen Bei gleichen Texten Summe berechnen
Überstunden berechnen Dynamisches Diagramm + berechnende Zellen
Formel berechnen? Zellenanzahl eines Bereiches berechnen
allgemein Wie kann ich Exccel beim berechnen *bremsen*?
Abfahrtszeit berechnen Zwischenwerte berechnen
Inhalt+Anzahl berechnen liefertermine berechnen
Rang berechnen summe aus zellen berechnen
Bundesliga Tabellenplatz berechnen ohne Matrix Intervalle berechnen und aufs Tabellenblatt
Arbeitszeit incl. Pausen berechnen Excel bleibt im Berechnen-Modus