[vba excel]
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
salut, j'ai écris une macro qui me donne tous les nombres premiers compris entre deux nombres donnés.
Seulement, pour lemoment, je suis obligé d'entrer mes deux valeurs bornes directement dans la macro.
J'aimerais pouvoir entrer ces deux valeurs en B1 et en B2 pour que la macro se mette à jour automatiquement.
Pourriez vousmedire comment faire svp?
Voici mon code:
Sub nbprem()
Range("A1").Select
i = 9000
ActiveCell.Offset((i - 2), 0).Range("A1").Select
While i <> 10000
ActiveCell.FormulaR1C1 = i
ActiveCell.Offset(1, 0).Range("A1").Select
i = i + 1
Wend
ActiveCell.FormulaR1C1 = i
ActiveCell.Offset(1, 0).Range("A1").Select
For j = 1 To 150
ActiveCell.FormulaR1C1 = 10000
ActiveCell.Offset(1, 0).Range("A1").Select
Next
' Remplit le tableau avec les nombres compris entre 2
' et la valeur voulue
Range("A1").Select
For k = 2 To Sqr(i)
a = (2 * k - 2)
ActiveCell.Offset(a, 0).Range("A1").Select
While Selection <> 10000
Selection.ClearContents
ActiveCell.Offset(k, 0).Range("A1").Select
Wend
Range("A1").Select
Next
' Supprime les nombres non premiers
While Selection <> 10000
If Selection = 0 Then
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.Offset(-1, 0).Range("A1").Select
Else: ActiveCell.Offset(1, 0).Range("A1").Select
End If
Wend
While Selection = 10000
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.Offset(-1, 0).Range("A1").Select
Wend
Range("A1").Select
' Nettoie le tableau
End Sub
Je sais que c'est très basique comme méthode mais je voudrais d'abord faire un truc simple et qui fonctionne complètement avant de l'améliorer.
Merci d'avance ;)
PS: j'utilise excel97
Seulement, pour lemoment, je suis obligé d'entrer mes deux valeurs bornes directement dans la macro.
J'aimerais pouvoir entrer ces deux valeurs en B1 et en B2 pour que la macro se mette à jour automatiquement.
Pourriez vousmedire comment faire svp?
Voici mon code:
Sub nbprem()
Range("A1").Select
i = 9000
ActiveCell.Offset((i - 2), 0).Range("A1").Select
While i <> 10000
ActiveCell.FormulaR1C1 = i
ActiveCell.Offset(1, 0).Range("A1").Select
i = i + 1
Wend
ActiveCell.FormulaR1C1 = i
ActiveCell.Offset(1, 0).Range("A1").Select
For j = 1 To 150
ActiveCell.FormulaR1C1 = 10000
ActiveCell.Offset(1, 0).Range("A1").Select
Next
' Remplit le tableau avec les nombres compris entre 2
' et la valeur voulue
Range("A1").Select
For k = 2 To Sqr(i)
a = (2 * k - 2)
ActiveCell.Offset(a, 0).Range("A1").Select
While Selection <> 10000
Selection.ClearContents
ActiveCell.Offset(k, 0).Range("A1").Select
Wend
Range("A1").Select
Next
' Supprime les nombres non premiers
While Selection <> 10000
If Selection = 0 Then
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.Offset(-1, 0).Range("A1").Select
Else: ActiveCell.Offset(1, 0).Range("A1").Select
End If
Wend
While Selection = 10000
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.Offset(-1, 0).Range("A1").Select
Wend
Range("A1").Select
' Nettoie le tableau
End Sub
Je sais que c'est très basique comme méthode mais je voudrais d'abord faire un truc simple et qui fonctionne complètement avant de l'améliorer.
Merci d'avance ;)
PS: j'utilise excel97
A voir également:
- [vba excel]
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
6 réponses
si j'ai bien compris ton but ets de remplacer 90000 et 100000 par B1 et B2?
si c'ets le cas, tu as juste a remplacé 90000 par cells(2,1).value
et 100000 par cells (2,2).value
bien sur il faut changer les arguments de cells si tu veux le sfaire entrer ailleurs!
exemple cells (ligne,colonne).value
en esperant t'avoir aidé!
si c'ets le cas, tu as juste a remplacé 90000 par cells(2,1).value
et 100000 par cells (2,2).value
bien sur il faut changer les arguments de cells si tu veux le sfaire entrer ailleurs!
exemple cells (ligne,colonne).value
en esperant t'avoir aidé!
salut,le problèmes c'est qu'avec ma macro j'efface ces deux lignes presque systématiquementserait-il possible de faire la mêmechose mais avec des textbox?
oui surement!
laisse moi juste 2 minutes que je me remettes dans les textbox
//edit finalement j'arrive pas a faire autrement qu'avec un userform
demande voir si kk1 a une idee
mai ssinon fait un userform...
laisse moi juste 2 minutes que je me remettes dans les textbox
//edit finalement j'arrive pas a faire autrement qu'avec un userform
demande voir si kk1 a une idee
mai ssinon fait un userform...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question