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 4 janvier 2024 - 27 févr. 2015 à 08:10
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 27 févr. 2015 à 08:10
A voir également:
- Nombre premier Excel VBA
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Excel compter cellule couleur sans vba - Guide
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
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
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
1959
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
4 janvier 2024
2 751
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
4 janvier 2024
2 751
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