VBA Projet Numérologie

Bonjour,

Je suis actuellement en Master et dois effectuer un projet pour ma fin d'année. Dans le cadre de celui-ci je dois mettre en place sur VBA une application capable de calculer le chiffre réduit à 1 d'une personne en fonction de la date de naissance qu'elle aura rentré.

Exemple: 09 aout 1991 -> 09 + 08 + 1992 = 2009 -> 2 + 0 + 0 + 9 = 11 -> 2

Or je ne vois pas comment ajouter les chiffres du résultat "2009" entre eux sachant que je ne suis pas professionnelle!!!!

Actuellement j'en suis là:

Public Sub Numerologie()

Dim Jour As Integer

Dim Mois As Integer

Dim An As Integer

Dim Somme As Integer

Jour = InputBox("Quel est votre jour de naissance? (en chiffre)")

Mois = InputBox("Quel est votre mois de naissance? (en chiffre)")

An = InputBox("Quel est votre année de naissance? (en chiffre)")

Somme = Jour + Mois + An

MsgBox (Somme)

End Sub

Donc comme vous le voyez il manque une grosse partie ... Si vous pouviez m'aider ça serait merveilleux car je deviens folle!

Bonjour,

Peut-être comme cela

Option Explicit
Public Sub Numerologie()

Dim Jour As Integer
Dim Mois As Integer
Dim An As Integer
Dim Somme As Integer
Dim Somme2 As Integer
Dim Somme3 As Integer
[A1:B3].ClearContents
Jour = Application.InputBox("Quel est votre jour de naissance? (en chiffre)", , , , , , , 1)
Mois = Application.InputBox("Quel est votre mois de naissance? (en chiffre)", , , , , , , 1)
An = Application.InputBox("Quel est votre année de naissance? (en chiffre)", , , , , , , 1)
Somme = Jour + Mois + An
MsgBox Somme
[A1] = Jour & "+" & Mois & "+" & An
[B1] = Somme
Somme2 = Val(Mid(Somme, 1, 1)) + Val(Mid(Somme, 2, 1)) + Val(Mid(Somme, 3, 1)) + Val(Mid(Somme, 4, 1))
MsgBox Somme2
[A2] = Val(Mid(Somme, 1, 1)) & "+" & Val(Mid(Somme, 2, 1)) & "+" & Val(Mid(Somme, 3, 1)) & "+" & Val(Mid(Somme, 4, 1))
[B2] = Somme2
Somme3 = Val(Mid(Somme2, 1, 1)) + Val(Mid(Somme2, 2, 1))
MsgBox (Somme3)
[A3] = Val(Mid(Somme2, 1, 1)) & "+" & Val(Mid(Somme2, 2, 1))
[B3] = Somme3
End Sub
98chadel.xlsm (21.81 Ko)

Bonne journée

Bonjour

A tester

Public Sub Numerologie()
Dim Jour As Integer
Dim Mois As Integer
Dim An As Integer
Dim Somme As Integer, Nb As Integer

  Jour = InputBox("Quel est votre jour de naissance? (en chiffre)")
  Mois = InputBox("Quel est votre mois de naissance? (en chiffre)")
  An = InputBox("Quel est votre année de naissance? (en chiffre)")

  Somme = Jour + Mois + An
  Do While Len(CStr(Somme)) > 1
    Nb = 0
    For i = 1 To Len(CStr(Somme))
      Nb = Nb + Mid(Somme, i, 1)
    Next i
    Somme = Nb
  Loop
  MsgBox (Somme)
End Sub

Bonjour DL_13

.

Bonjour,

Une proposition avec une fonction personnalisée (VBA).

Dire s'il faut utiliser impérativement des InputBox?

Option Explicit
Public Function test(D As Date) As Byte
Dim a As Integer, tmp As Byte, i As Byte
    a = Year(D) + Month(D) + Day(D)
    For i = 1 To 4
        tmp = Mid(a, i, 1)
        test = test + tmp
    Next
End Function

bonjour,

tu ne dois pas nécessairement faire la somme des chiffres, tu peux utiliser la fonction mod

tu n'as pas grand chose à modifier à ton code, voir en vert

Public Sub Numerologie()

Dim Jour As Integer
Dim Mois As Integer
Dim An As Integer
Dim Somme As Integer

Jour = InputBox("Quel est votre jour de naissance? (en chiffre)")
Mois = InputBox("Quel est votre mois de naissance? (en chiffre)")
An = InputBox("Quel est votre année de naissance? (en chiffre)")

Somme = Jour + Mois + An

MsgBox (Somme mod 9)

End Sub

Merci à tous, la solution de Bainzai64 a marché du premier coup!

Merci en tout cas, vous m'enlevez une grosse écharde du pied je vais pouvoir recommander ce forum à mes amis bloqués

Par contre quelle est la fonction de "Mid" ? Je ne l'ai jamais vu encore.

Bonjour

Chadel a écrit :

Par contre quelle est la fonction de "Mid" ? Je ne l'ai jamais vu encore

C'est la même fonction Excel STXT() (voir mid)

Récupère une partie d'une chaine de caractères

Rechercher des sujets similaires à "vba projet numerologie"