Conversion VBA (Excel) en html

Fermé
hobbes81 Messages postés 2 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 23 août 2010 - 18 janv. 2009 à 22:09
 hobbes81 - 21 janv. 2009 à 19:07
Bonjour,
Je n'y connait pas grand chose en html. J'ai fait une petite macro sous excel et j'aimerais la mettre sur mon blog. Pour cela, j'aimerais la convertir en html. Connaissez-vous un logiciel qui ferait ca en automatique ? Ou quelqu'un qui prendrait 10 min pour me traduire ca:
Merci !


JourNaiss = 20
MoisNaiss = 11
AnneeNaiss = 2008

Jour = Day(Now) - JourNaiss
Mois = Month(Now) - MoisNaiss
Annee = Year(Now) - AnneeNaiss

If Jour < 0 Then JourFinal = Jour + 31 Else: JourFinal = Jour
SemaineFinal = Round(JourFinal / 7, 0)
If SemaineFinal > JourFinal / 7 Then SemaineFinal = SemaineFinal - 1
JourFinal = JourFinal - SemaineFinal * 7

If Jour < 0 Then MoisFinal = Mois - 1 Else MoisFinal = Mois
If MoisFinal < 0 Then MoisFinal = Mois + 11

If Mois <= 0 Then AnneeFinal = Annee - 1 Else AnneeFinal = Annee

Cells(20, 3) = AnneeFinal
Cells(20, 4) = MoisFinal
Cells(20, 5) = SemaineFinal
Cells(20, 6) = JourFinal

Phrase = "Je suis né depuis "
If AnneeFinal <> 0 Then Phrase = Phrase & AnneeFinal & " ans, "
If MoisFinal <> 0 Then Phrase = Phrase & MoisFinal & " mois, "
If SemaineFinal <> 0 Then Phrase = Phrase & SemaineFinal & " semaine(s) "
If JourFinal <> 0 Then Phrase = Phrase & "et " & JourFinal & " jours. "

Cells(21, 3) = Phrase 'affiche la phrase finale
A voir également:

5 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 689
19 janv. 2009 à 09:34
bonjour

Excel n'est pas utilisable sur un blog car c'est un logiciel qui s'exécute en local sur ton micro.

Tu devrais essayer d'écrire ta macro en javascript qui est assez proche du basic pour te permettre de le faire et tu pourras en profiter pour corriger ton calcul qui n'est pas tout à fait exact.
0
Merci, mais je ne voulais pas mettre du excel sur mon blog. En fait, le seul langage que je connait bien c'est vba, et j'ai réussi à "programmer" un truc qui tourne bien donc je voulais le convertir dans le format qui va bien pour pouvoir l'utiliser sur mon blog. Je vais essayer de trouver des trucs en java alors...
Et sinon, qu'est ce qui est faux dans mon calcul ?
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 689
19 janv. 2009 à 23:38
bonjour

qu'est ce qui est faux dans mon calcul ?

Si tu remplaces 20/11/2008 par 10/12/2008 par exemple tu vas t'apercevoir que tu as 1 semaine et 2 jours, ce qui me parait incorrect pour un 19/1/2009.

Je ne me suis pas plongé dans l'algorithme mais il doit y avoir un bug.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
20 janv. 2009 à 06:24
Bonjour,
Je connais pas le html mais en VBA il y a moyen de faire ta fonction en plus cour etjuste (je crois)
Sub TempsDeVie()
Dim Né As Date, Temps As Date, TB
Dim t As Long
    Né = "20/11/2008"
    T = DateDiff("d", Né, Date)
    Temps = t
    TB = Split(Temps, "/")
    MsgBox "vous ête né depuis " & TB(0) & " jour(s), " & _
    TB(1) - 1 & " mois et " & TB(2) - 1900 & " année(s)" & Chr(13) _
    & "Soit " & t & " jours ou " & Int(t / 7) & " semaine(s)"
End Sub

A+
0
En effet, ca a l'air plus simple. Disons que je suis aussi un débutant en VBA... Peut-etre que je me suis un peu trop compliqué la vie, donc je vais utiliser ta macro. Par contre, à quoi ca sert de passer par la variable t ? Pourquoi ne pas mettre DateDiff directement dans Temps ?
Ensuite, pour l'affichage final, je voulais afficher les semaines. Par exemple, si je suis né depuis 2 mois et 10 jours, mettre 2 mois, 1 semaine et 3 jours. En tous cas, merci pour votre aide... Ca résout pas encore mon problème de html, mais je vais essayer de coder tout ca en java...

La fonction finale, qui a l'air de bien tourner:

Sub TempsDeVie2()
Dim Né As Date, Temps As Date, TB
Dim JT As Long
Né = "20/11/2008"
Temps = Abs(DateDiff("d", Date, Né))
TB = Split(Temps, "/")

MsgBox "Je suis né depuis " & (TB(0) - Int(TB(0) / 7) * 7) & " jour(s), " & _
Int(TB(0) / 7) & " semaine(s), " & _
TB(1) - 1 & " mois et " & TB(2) - 1900 & " année(s)"
End Sub
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 689
20 janv. 2009 à 23:23
bonjour

C'est très bien ton exercice de simplification et tu peux encore continuer :
Sub TempsDeVie3()
Dim Né As Date, TB
Né = "12/12/2007"
TB = Split(Format(Date - Né + 1, "dd/mm/yyyy"), "/")

MsgBox "Je suis né depuis " & TB(0) Mod 7 & " jour(s), " & _
Int(TB(0) / 7) & " semaine(s), " & _
TB(1) - 1 & " mois et " & TB(2) - 1900 & " année(s)"
End Sub

Même s'il faudrait probablement en faire un peu plus pour supprimer les valeurs à zéro.

La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.
(Antoine de Saint-Exupéry)

Il doit être possible de perfectionner encore...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
De mieux en mieux ! Bientot, y aura meme plus de texte si on continues à simplifier comme ca.
Bon, sinon, j'ai essayé de trouver des trucs sur internet pour confirmer en html ou java, mais j'ai rien trouvé. Quelqu'un serait-il capable de me convertir tout ca. J'aimerais l'utiliser comme un widget sous blogger après... Donc, avec du code html, ca serait parfait.
Merci d'avance (et merci pour le code vba...)
0