Nombre premier Excel VBA
Gaetan
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
Salut à tous, je n'arrive pas à comprendre ce qui bugg dans mon script VBA: je cherche à trouver les nombres premiers et à les colorier en jaune dans ma feuille excel:
Merci d'avance ;)
For Each cell In Selection
For n = 2 To n = (cell.Value - 1)
If (cell.Value / n) - Int(cell.Value / n) = 0 Then
cell.Interior.Color = vbWhite
Else: cell.Interior.Color = vbYellow
End If
Next
Next
Merci d'avance ;)
A voir également:
- Nombre premier Excel VBA
- Nombre de jours entre deux dates excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - 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
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+
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 🎶