Nombre premier Excel VBA
Fermé
Gaetan
-
Modifié par pijaku le 26/02/2015 à 16:14
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 15 mars 2023 - 27 févr. 2015 à 08:10
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 15 mars 2023 - 27 févr. 2015 à 08:10
A voir également:
- Nombre premier Excel VBA
- Liste déroulante excel - Guide
- Formule excel - Guide
- Supprimer espace nombre excel ✓ - Forum Excel
- Déplacer une colonne excel - Guide
- Find vba - Astuces et Solutions
4 réponses
Salut, essaye comme ça:
For Each cell In Selection
For n = 2 To cell.Value - 1
If (cell.Value / n) - Int(cell.Value / n) = 0 Then
cell.Interior.Color = vbWhite
Exit For
Else
cell.Interior.Color = vbYellow
End If
Next
Next
ccm81
Messages postés
10543
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
18 mars 2023
2 336
26 févr. 2015 à 16:01
26 févr. 2015 à 16:01
Bonjour à tous
Et pour aller un petit peu plus vite
Cdlmnt
Et pour aller un petit peu plus vite
nmax = Sqr(cell.Value)
For n = 2 To nmax
Cdlmnt
Zoul67
Messages postés
1956
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
26 févr. 2015 à 16:31
26 févr. 2015 à 16:31
Bonjour,
Pour ne répondre qu'à ta question : si tu suis ton code en pas à pas, ta cellule peut changer plusieurs fois de couleur mais prendra toujours sa couleur finale par rapport à Cell.Value - 1, qui n'est pas un diviseur de Cell.Value.
Le code de Yoda permet de sortir de la boucle dès qu'un diviseur est trouvé.
A+
Pour ne répondre qu'à ta question : si tu suis ton code en pas à pas, ta cellule peut changer plusieurs fois de couleur mais prendra toujours sa couleur finale par rapport à Cell.Value - 1, qui n'est pas un diviseur de Cell.Value.
Le code de Yoda permet de sortir de la boucle dès qu'un diviseur est trouvé.
A+
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 712
Modifié par pijaku le 27/02/2015 à 08:00
Modifié par pijaku le 27/02/2015 à 08:00
Bonjour tout le monde,
Ou alors, en nous servant de toutes ces excellentes réponses, on peut construire une fonction personnalisée.
Cette fonction pourra servir aussi bien dans la feuille que dans le code.
Dans le code :
Appel :
Fonction :
🎼 Cordialement,
Franck 🎶
Ou alors, en nous servant de toutes ces excellentes réponses, on peut construire une fonction personnalisée.
Cette fonction pourra servir aussi bien dans la feuille que dans le code.
Dans le code :
Appel :
For Each cell In Selection
If EstPremier(cell) Then
cell.Interior.Color = vbWhite
Else: cell.Interior.Color = vbYellow
End If
Next
Fonction :
Function EstPremier(Nb As Integer) As Boolean
Dim i As Long
For i = 2 To Sqr(Nb)
If Nb Mod i = 0 Then EstPremier = False: Exit Function
Next i
EstPremier = True
End Function
🎼 Cordialement,
Franck 🎶
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 712
27 févr. 2015 à 08:10
27 févr. 2015 à 08:10
Ou encore pour coller parfaitement à la définition :
Function EstPremier(Nb As Integer) As Boolean
Dim i As Long
If Nb = 1 Or Nb = 0 Then Exit Function
For i = 2 To Sqr(Nb)
If Nb Mod i = 0 Then Exit Function
Next i
EstPremier = True
End Function