Numéro d'article: 202782 - Dernière mise à jour: mardi 10 octobre 2006 - Version: 2.2

Comment obtenir des nombres de la prime ou facteurs

A noterCet article s'applique à un système d'exploitation différent de celui que vous utilisez. Le contenu de l'article qui ne vous concerne peut-être pas est désactivé.
Cet article s'applique également à :
  • Microsoft Excel pour Windows 95 7.0|7.0
  • Microsoft Excel pour Windows 95 7.0a|7.0a
  • Microsoft Excel pour Windows 5.0|5.0
  • Microsoft Excel pour Windows 5.0c|5.0 c
  • Microsoft Excel pour le 5.0|5.0 Macintosh
  • Microsoft Excel pour le 5.0a|5.0a Macintosh
Agrandir tout | Réduire tout

Résumé

Un nombre premier est un nombre entier quelconque peut être divisée uniformément uniquement par lui-même et un. Un facteur d'un nombre est un entier qui peut être divisé de façon égale dans ce numéro. Cet article contient Microsoft Visual Basic pour applications macros pour Excel que vous pouvez utiliser pour déterminer tous les nombres premiers dans une plage ou dériver tous les facteurs d'un nombre.

Plus d'informations

Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie expresse ou implicite. Cela inclut, mais n'est pas limité à, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du support technique Microsoft peuvent vous aider à comprendre la fonctionnalité d'une procédure particulière, mais ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques. Pour créer les macros, procédez comme suit :

  1. Enregistrer et fermer les classeurs ouverts et puis créer un nouveau classeur.
  2. Créer un nouveau module :

    Dans Microsoft Excel 97, démarrez l'éditeur Visual Basic en appuyant sur ALT + F11.

    Dans Microsoft Excel 5.0 ou 7.0, cliquez sur macro et module dans le menu Insertion.
  3. Tapez le code suivant dans le module :
       Sub GetFactors()
          Dim Count As Integer
          Dim NumToFactor As Single 'Integer limits to < 32768
          Dim Factor As Single
          Dim y As Single
          Dim IntCheck As Single
       
          Count = 0
          Do
             NumToFactor = _
                Application.InputBox(Prompt:="Type integer", Type:=1)
             'Force entry of integers greater than 0.
             IntCheck = NumToFactor - Int(NumToFactor)
             If NumToFactor = 0 Then
                Exit Sub
                'Cancel is 0 -- allow Cancel.
             ElseIf NumToFactor < 1 Then
                MsgBox "Please enter an integer greater than zero."
             ElseIf IntCheck > 0 Then
                MsgBox "Please enter an integer -- no decimals."
             End If
             'Loop until entry of integer greater than 0.
          Loop While NumToFactor <= 0 Or IntCheck > 0
          For y = 1 To NumToFactor
             'Put message in status bar indicating the integer being checked.
             Application.StatusBar = "Checking " & y
             Factor = NumToFactor Mod y
             'Determine if the result of division with Mod is without _
                 remainder and thus a "factor".
             If Factor = 0 Then
                'Enter the factor into a column starting with the active cell.
                ActiveCell.Offset(Count, 0).Value = y
                'Increase the amount to offset for next value.
                Count = Count + 1
             End If
          Next
          'Restore Status Bar.
          Application.StatusBar = "Ready"
       End Sub
       
       Sub GetPrime()
          Dim Count As Integer
          Dim BegNum As Single  'Integer limits to < 32768
          Dim EndNum As Single
          Dim Prime As Single
          Dim flag As Integer
          Dim IntCheck As Single
          Count = 0
       
          Do
             BegNum = _
                Application.InputBox(Prompt:="Type beginning number.", Type:=1)
             'Force entry of integers greater than 0.
             IntCheck = BegNum - Int(BegNum)
             If BegNum = 0 Then
                Exit Sub
                'Cancel is 0 -- allow Cancel.
             ElseIf BegNum < 1 Then
                MsgBox "Please enter an integer greater than zero."
             ElseIf IntCheck > 0 Then
                MsgBox "Please enter an integer -- no decimals."
             End If
             'Loop until entry of integer greater than 0.
          Loop While BegNum <= 0 Or IntCheck > 0
       
          Do
             EndNum = _
                Application.InputBox(Prompt:="Type ending number.", Type:=1)
             'Force entry of integers greater than 0.
             IntCheck = EndNum - Int(EndNum)
             If EndNum = 0 Then
                Exit Sub
                'Cancel is 0 -- allow Cancel.
             ElseIf EndNum < BegNum Then
                MsgBox "Please enter an integer larger than " & BegNum
             ElseIf EndNum < 1 Then
                MsgBox "Please enter an integer greater than zero."
             ElseIf IntCheck > 0 Then
                MsgBox "Please enter an integer -- no decimals."
             End If
             'Loop until entry of integer greater than 0.
          Loop While EndNum < BegNum Or EndNum <= 0 Or IntCheck > 0
       
          For y = BegNum To EndNum
             flag = 0
             z = 1
             Do Until flag = 1 Or z = y + 1
                'Put message into Status Bar indicating the integer and _
                    divisor in each loop.
                Application.StatusBar = y & " / " & z
                Prime = y Mod z
                If Prime = 0 And z <> y And z <> 1 Then
                   flag = 1
                End If
                z = z + 1
             Loop
       
             If flag = 0 Then
                'Enter the factor into a column starting with the active cell.
                ActiveCell.Offset(Count, 0).Value = y
                'Increase the amount to offset for next value.
                Count = Count + 1
             End If
          Next y
          'Restore Status Bar.
          Application.StatusBar = "Ready"
       End Sub
    					
  4. Dans le menu fichier, cliquez sur Fermer et retourner à Microsoft Excel. Basculez vers la feuille de calcul sur laquelle vous souhaitez exécuter la macro, puis cliquez sur une cellule dans laquelle vous souhaitez créer la colonne des facteurs ou de nombres premiers.
  5. Dans le menu Outils, pointez sur macro et cliquez sur macros.
  6. Cliquez sur GetFactors, puis cliquez sur exécuter pour obtenir les facteurs.

    - ou -

    Cliquez sur GetPrime, puis cliquez sur exécuter pour obtenir la liste des nombres premiers.
Remarque : bien que ces macros peuvent rechercher une grande plage de nombres et de facteurs pour un grand nombre de nombres premiers, exécuter ce code peut prendre du très temps. Pour cette raison, la barre d'état affiche la progression pendant l'exécution de la macro.

Références

Pour plus d'informations sur la marche à suivre pour obtenir de l'aide concernant Visual Basic pour applications, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
163435  (http://support.microsoft.com/kb/163435/EN-US/ ) VBA : Ressources de programmation pour Visual Basic pour applications
226118  (http://support.microsoft.com/kb/226118/EN-US/ ) OFF2000 : Ressources de programmation pour Visual Basic pour applications
Pour plus d'informations sur l'exécution des exemples de code, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
173707  (http://support.microsoft.com/kb/173707/EN-US/ ) OFF97 : Comment faire pour exécuter un exemple de code à partir des articles de la base de connaissances
212536  (http://support.microsoft.com/kb/212536/EN-US/ ) OFF2000 : Comment faire pour exécuter un exemple de code à partir des articles de la base de connaissances

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Excel 97 Standard
Mots-clés : 
kbmt kbhowto KB202782 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 202782  (http://support.microsoft.com/kb/202782/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Retired KB ArticleExclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.