La mort du VBA

BOUCHEZ JD

XLDnaute Junior
Bonjour.

Je m'étonne dans un site aussi complet qu'Excel Downloads le sujet de la disparition de VBA ne soit jamais abordé.
Si l'on va sur les sites américains, depuis 2008, le consensus est de dire que Microsoft ne maintiendra VBA (sans évolution) qu'une dizaine
d'années au maximum. Et dix ans, c'est vite passé ..... 2018

Selon Microsoft, l'avenir du VBA c'est VSTO


Quelques sites :

Ce lien n'existe plus

VBA Vs VSTO – An interesting study « Very Simple Tools for Office

Blog de Julien Dollon (MVP) | [VSTO & OpenXml] Introduction au développement pour Office 2010

3 videos en Français :
[MSTD09] - De la macro VBA au développement .NET VSTO - 1/3

Un livre :
From VBA to VSTO: Is Excel's New ... - Google Livres

Plus d'USERFORM dans VSTO :
Create UDF using VSTO and no VBA - Stack Overflow




Bon WE
 

JNP

XLDnaute Barbatruc
Re : La mort du VBA

Bonjour :),
Disons que ce n'est pas la préoccupation principale :p...
Si on regarde la compatibilité descendante de VBA, on s'aperçoit déjà que c'est pas du gâteau :eek:... Chaque nouvelle version apporte son lot de nouveauté, et de plantage en enregistrement pour les versions antérieures :D.
Le VBA Mac n'est pas toujours (rarement à en entendre certains :rolleyes:...) compatible avec le VBA PC...
OO qui commence à envahir les administrations, voir les entreprises, n'est pas compatible avec VBA :mad:...
Et cerise sur le gâteau, le VBA 64 bits utilise de nouveaux formats de variable, ce qui pose problème pour le chargement des DLL 32 bits :eek:...
Les MàJ Office (d'ailleurs, 2010 n'a pas de proposition de MàJ depuis 2007, il faut racheter directement la nouvelle version :() coûtent cher, et il est rarement envisageable d'investir toujours dans la dernière version pour pouvoir être sûr de la compatibilité... Il suffit de regarder sur le forum, il y a encore du 97 qui tourne :)...
Maintenant VSTO (que j'ai plus l'habitude d'appeler VB.NET ou simplement .NET) a l'avantage d'être gratuit (tout au moins avec la version Express). La MàJ du FrameWork est gratuite aussi. Donc plus facile au niveau de la compatibilité. Les applis peuvent être développée aussi bien en .Net qu'en C# pour ceux qui connaissent mieux le C. Le passage de VBA à VB.NET (et vice versa) n'est pas trop perturbant. J'ai déjà recodé du code VBA en .NET pour m'affranchir d'Excel, et trouvé des codes .NET qui m'intéressaient et que j'ai recodé en VBA. Ça ne m'a pas pris des plombes :rolleyes:...
L'éditeur est plus interactif, et le debuggage est plus intuitif.
L'inconvénient, c'est qu'il n'y a pas d'enregistreur de macro pour trouver facilement des instructions inconnues :eek:.
Alors VBA va-t'il mourir au profit de .NET ? Bonne question. Comme pour beaucoup de chose, je pense que les 2 vont vivre côte à côte pendant un certain temps. Il a bien fallu passer du français à l'anglais entre Excel 95 et Excel 97, on a râlé, mais tout le monde s'y est mis. Passer de VBA à .NET sera beaucoup moins difficile à mon avis ;).
Bonne journée :cool:
 

Brigitte

XLDnaute Barbatruc
Re : La mort du VBA

Bonjour à tous,

Toujours à la pointe Jean Noel, tu seras jamais débordé par les événéments, toi... Je t'envie d'être aussi optimiste et moderne !!

Moi l'idée rien que d'être privée de mon joujou excel, me donne des frissons, et pourtant je fais pas de vba (à part l'enregistreur et de l'arrangement de macros) et pas de formules rocambolesques...

Il est vrai cependant que j'avais très peur de 2007 et que ma foi, même si déroutée, je me suis un peu adaptée (à la maison donc pas de gros chantiers) et j'ai même 2010...

Il est temps que moi aussi on me remplace !!

Bonne journée
 

tototiti2008

XLDnaute Barbatruc
Re : La mort du VBA

Bonjour à tous,

A chaque fois on nous annonce la mort du VBA...
Pourquoi Microsoft n'inclut-il pas d'enregistreur de macro en VB.NET dans Office ?
Moi non plus, ça ne m'enchante pas, je ne connais pas VB.NET et c'est toujours dommage de monter en puissance sur un langage qui finira par disparaître, ce qui veut dire reprendre à zéro certaines choses qu'on maîtrisait auparavant. Mais bon, si on a pas le choix...

Image : La mort du Disco - par masterVBA :D
 

Pièces jointes

  • 3.jpg
    3.jpg
    3.5 KB · Affichages: 341
  • 3.jpg
    3.jpg
    3.5 KB · Affichages: 353
  • 3.jpg
    3.jpg
    3.5 KB · Affichages: 356
G

Guest

Guest
Re : La mort du VBA

Bonjour tous,

C'est vrai la mort de VBA on l'attend depuis....Comme certains attendent la fin du monde.

Ce qui est sûr c'est qu'il devra, sinon disparaître, au moins s'adapter à .Net

La chose qui me chagrinerait le plus c'est que VBA disparaisse et que les nouveaux outils ne soient pas gratuits(au contraire de ce que semble penser JNP). Des milliers (ions) de personnes n'auraient plus accès à ces technologies, qui concerneraient alors qu'une élite de programateurs. (Décidement fait pas bon être petit ne nos jours). Or adieu alors à l'esprit collaboratif des début entre amateurs.

VSTO, l'ensemble des outils écrits en .Net pour les applications Office, n'est aujourdhui gratuit que si vous achetez une suite professionnelle de Visual Studio. (désolé JNP avec EXPRESS j'ai essayé;))

Si VBA avait du être payant combien d'entre-nous serions ici aujourd'hui?
XLD pourrait-il seulement exister autrement que comme forum 'd'élites éclairées et initiées'

A+
 
Dernière modification par un modérateur:

Brigitte

XLDnaute Barbatruc
G

Guest

Guest
Re : La mort du VBA

Re,

M' est avis qu'il est dans l'interêt de Microsoft de laisser ces rumeurs courrir pour avoir un pouls des réactions, et adapter sa stratégie en conséquence! C'est pourquoi d'ailleurs je participe à ce fil.

Brigitte, à moins d'être maraboutée ou que le Grand Microsoft (GM) se prenne pour Dieu et trifouille les antrailles de nos machines pour véroler nos petites macro, je ne vois pas pourquoi nous ne pourrions plus faire mumuse avec nos outils actuels.

A+
 

JNP

XLDnaute Barbatruc
Re : La mort du VBA

Re :),
VSTO, l'ensemble des outils écrits en .Net pour les applications Office, n'est aujourdhui gratuit que si vous achetez une suite professionnelle de Visual Studio. (désolé JNP avec EXPRESS j'ai essayé;))
C'est vrai que je n'ai pas poussé très loin, mais j'avais eu l'impression que la grosse différence était dans l'intégré de la suite professionnelle, alors que les différents Express permettait de faire aussi, mais en plus compliqué, puisqu'il faut passer de l'un à l'autre :eek:.
C'est une mauvaise nouvelle que tu nous annonces, Ges :(.
A + :cool:
 

mromain

XLDnaute Barbatruc
Re : La mort du VBA

Bonjour à tous,

Que de lectures intéressantes (je n'avais pas encore entendu parlé de VSTO).
Je vais peut-être dire une bêtise, mais d'après ce que j'ai compris, VSTO et VBA (à proprement parler) n'ont pas la même vocation.

VSTO serai plus approprié pour le développement d'applications utilisant (entre autres) des outils d'Office. Un peu comme un Script VB utilisant Office et ses fonctionnalités (avec la puissance de .Net). VSTO sera ici pratique, car les objets Office (VBA) seront intégrés à Visual Studio.

VBA restera utile pour rajouter des fonctionnalités persos à un fichier Office (tel qu'on le connait aujourd'hui).

Je penses donc que VSTO et VBA vivront en parallèle. On pourrait imaginer, lors d'un développement d'application VSTO, utiliser l'enregistreur VBA sur Office pour trouver la bonne syntaxe.

A+
 

BOUCHEZ JD

XLDnaute Junior
Re : La mort du VBA

Bonjour.

EVOLUTION 2010 : OBA (Office Business Applications)
Voir :
Blog de Julien Dollon (MVP) | [VSTO & OpenXml] Introduction au développement pour Office 2010

Dans ma boite (Un grosse Cie d'Assurances) , les services informatiques ne veulent plus assurer l'assistance des utilisateurs de VBA au dela de 2015.
Ils réagissent comme pour les macros Excel 4 avant Excel 95 : Si cela marche, tant mieux pour vous, dans le cas contraire 'Demerdensiesich'.
Ils n'offrent pas de solution de remplacement car MS ne dit pas grand chose sur le sujet.
Comme nous sommes un 'grand compte' chez Microsoft, quelques fuites laissent bien entendre que VBA, c'est fini et que le successeur est bien VSTO ou un de ses succédanés (OBA ...). Le point de litige, c'est l'aspect coùt.
La tendance actuelle est comme pour le RUN TIME ACCESS 95 : Payant. Mais rien n'est joué car MS sait que la masse des utilisateurs de VBA a un certain poids dans les entreprises et ce n'est pas neutre lors du renouvellemnt des licences en entreprises. Ce qui est sur, à ce jour, c'est que techniquement MS veut séparer les données des traitements. Il y aura donc bien un 'module' externe qui permettra d'utiliser EXCEL, WORD, OUTLOOK ...
Moi, ce qui m'enerve, c'est que MS ne prenne pas clairement position sur ses choix stratégiques. Qu'il dise une fois pour toute quelle est la direction a prendre. Maintenant, quand je code du VBA, j'ai l'impression d'écrire en grec ancien avec le sentiment que personne ne me lira. Desespérant ...
.
Bonne journée.
 

JNP

XLDnaute Barbatruc
Re : La mort du VBA

Re :),
Dans ma boite (Un grosse Cie d'Assurances) , les services informatiques ne veulent plus assurer l'assistance des utilisateurs de VBA au dela de 2015.
Ils réagissent comme pour les macros Excel 4 avant Excel 95 : Si cela marche, tant mieux pour vous, dans le cas contraire 'Demerdensiesich'.
Ils n'offrent pas de solution de remplacement car MS ne dit pas grand chose sur le sujet.
...
Moi, ce qui m'enerve, c'est que MS ne prenne pas clairement position sur ses choix stratégiques. Qu'il dise une fois pour toute quelle est la direction a prendre. Maintenant, quand je code du VBA, j'ai l'impression d'écrire en grec ancien avec le sentiment que personne ne me lira. Desespérant ...
Mais c'est déjà magnifique qu'ils assurent jusque 2015 :p...
Relit mon post, VBA 64bits pose de gros problèmes de compatibilité avec VBA 32 bits, et 64 bits sur une partie du parc, ce ne sera pas 2015, mais bien avant :rolleyes:...
De mon expérience professionnelle, mon entreprise à changé 2 fois de progitiel en 3 ans... Notre job (enfin, c'est comme celà que je le ressent) est de nous adapter, pas de nous enfermer dans notre confort :D...
L'important est de se souvenir comment on l'a fait, et de le refaire, même si cela passe par réécrire en C# ce qu'on a écrit en VB.net, qu'on avait préalablement écrit en VBA :eek:.
Ce n'est pas le langage qui compte, mais ce qu'il traduit ;).
Enfin, c'est juste mon avis :rolleyes:...
Bon WE :cool:
 

ROGER2327

XLDnaute Barbatruc
Re : La mort du VBA

Bonsoir à tous
Qui dit qu'en 2015 Microsoft existera encore ?

Bon, j'arrête tout de suite avant de me faire engueuler…

Je préfère parler d'avenir, car je m'y promène à volonté. Par exemple, je dispose déjà d'une version d' OpenOffice.org programmable non seulement en Basic, mais aussi en JavaScript, BeanShell et Python.

Ci-joint un petit truc pour disposer du vrai calendrier. C'est du Basic facilement traduisible en VisualBasic.

Code
Code:
[B][COLOR=DarkSlateGray]REM  *****  OpenOffice.org Basic  *****

Function DateRep(Optional DGreg As Date, Optional f As Integer, Optional c As Integer)
' _________________________________ Mémo ___________________________________________________________________________________
' Équivalence d'une date grégorienne dans l'Ère des Français
' Fonction créée le 13 Vendémiaire An CCXI (04/10/2002) par ROGER
' Modifiée le 2 Fructidor An CCXVIII (19/08/2010) par ROGER
' Modifiée le 16 Brumaire An CCXIX (06/11/2010) par ROGER
'       Utilise les fonctions romain2(), premier(), fete_G() et fete_R()
'
' =DateRep("22/9/1791")            renvoie 6 Sanculottide An II av. la Rép.
' =DateRep("2/5/2003";1)           renvoie 13 Floréal An CCXI (Vendredi 2 Mai 2003)
' =DateRep("2/5/2003 06:30:00";2)  renvoie 13 Floréal An CCXI, 2,7083h (vendredi 2 mai 2003, 6h 30mn 0s)
' =DateRep()                       renvoie la date courante dans l'Ère des Français
' _________________________________ Variables ______________________________________________________________________________
Dim a, k As String          'Année républicaine, Avant la République
Dim m, n                    'Mois républicains, Mois grégoriens
Dim Q, t As Long            'Jour de la semaine grégorienne, (Rang du jour dans l'année républicaine) - 1
' _________________________________ Initialisation des constantes __________________________________________________________
Const D0 As Long = 39544    ' Constante à modifier sous MacIntosh utilisant la réf. de date 1904
m = Array("Vendémiaire", "Brumaire", "Frimaire", "Nivôse", "Pluviôse", "Ventôse", "Germinal", "Floréal", "Prairial", "Messidor", "Thermidor", "Fructidor", "Sanculottide")
Q = Array("", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche")
n = Array("", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre")
k = " av. la Rép."
    If IsMissing(DGreg) Then DGreg=Date
    If IsMissing(f) Then f=0
    If IsMissing(c) Then c=0
' _________________________________ Corps du programme _____________________________________________________________________
    a = Year(DGreg) - 1790
    Do: a = a - 1: t = Int(DGreg - 365 * a - Int(a / 4) + Int(a / 100) - Int(a / 400)) + D0: Loop While t < 0
    If a <= 0 Then a = romain2(1 - a) & k Else a = romain2(a)
    DateRep = premier(1 + t Mod 30, 0)
    If Int(t / 30) = 12 And t Mod 30 > 0 Then DateRep = DateRep & "ème"
    DateRep = DateRep & " " & m(Int(t / 30)) & " An " & a
    If c <> 0 Then DateRep = DateRep & " - " & fete_R(t)
    If f > 1 Then DateRep = DateRep & ", " & Right$(Left$(10 * (1 + DGreg - Int(DGreg)) + 0.00005 & "00000", 7), 6) & "h"
    If f > 0 Then
        DateRep = DateRep & " / " & Q(Weekday(DGreg, 0)) & " " & premier(Day(DGreg)) & " " & n(Month(DGreg)) & " " & Year(DGreg)
        If c <> 0 And fete_G(Month(DGreg), Day(DGreg)) <> "" Then DateRep = DateRep & " - " & fete_G(Month(DGreg), Day(DGreg))
    End If
    If f > 1 Then DateRep = DateRep & ", " & Hour(DGreg) & "h " & Minute(DGreg) & "mn " & Second(DGreg) & "s"
End Function
'__________________________________________________________________________________________________________________________
'
Private Function fete_R(n As Long) As String
'
' Fonction créée le 03/11/2004 par ROGER
' Modifiée le 03/11/2004 par ROGER
'
Dim s(0 To 365) As String
s(0) = "raisin": s(1) = "safran": s(2) = "châtaigne": s(3) = "colchique": s(4) = "cheval": s(5) = "balsamine": s(6) = "carotte": s(7) = "amarante": s(8) = "panais": s(9) = "cuve": s(10) = "pomme de terre": s(11) = "immortelle": s(12) = "potiron": s(13) = "réséda": s(14) = "âne": s(15) = "belle-de-nuit": s(16) = "citrouille": s(17) = "sarrasin": s(18) = "tournesol": s(19) = "pressoir": s(20) = "chanvre": s(21) = "pêche": s(22) = "navet": s(23) = "amaryllis": s(24) = "bœuf": s(25) = "aubergine": s(26) = "piment": s(27) = "tomate": s(28) = "orge": s(29) = "tonneau"
s(30) = "pomme": s(31) = "céleri": s(32) = "poire": s(33) = "betterave": s(34) = "oie": s(35) = "héliotrope": s(36) = "figue": s(37) = "scorsonère": s(38) = "alisier": s(39) = "charrue": s(40) = "salsifis": s(41) = "macre": s(42) = "topinambour": s(43) = "endive": s(44) = "dindon": s(45) = "chervis": s(46) = "cresson": s(47) = "dentelaire": s(48) = "grenade": s(49) = "herse": s(50) = "bacchante": s(51) = "azerole": s(52) = "garence": s(53) = "orange": s(54) = "faisan": s(55) = "pistache": s(56) = "macjon": s(57) = "coing": s(58) = "cormier": s(59) = "rouleau"
s(60) = "raiponse": s(61) = "turnep": s(62) = "chicorée": s(63) = "nèfle": s(64) = "cochon": s(65) = "mâche": s(66) = "chou-fleur": s(67) = "miel": s(68) = "genièvre": s(69) = "pioche": s(70) = "cire": s(71) = "raifort": s(72) = "cèdre": s(73) = "sapin": s(74) = "chevreuil": s(75) = "ajonc": s(76) = "cyprès": s(77) = "lierre": s(78) = "sabine": s(79) = "hoyau": s(80) = "érable à sucre": s(81) = "bruyère": s(82) = "roseau": s(83) = "oseille": s(84) = "grillon": s(85) = "pignon": s(86) = "liége": s(87) = "truffe": s(88) = "olive": s(89) = "pelle"
s(90) = "tourbe": s(91) = "houille": s(92) = "bitume": s(93) = "soufre": s(94) = "chien": s(95) = "lave": s(96) = "terre végétale": s(97) = "fumier": s(98) = "salpêtre": s(99) = "fléau": s(100) = "granit": s(101) = "argile": s(102) = "ardoise": s(103) = "grès": s(104) = "lapin": s(105) = "silex": s(106) = "marne": s(107) = "pierre à chaux": s(108) = "marbre": s(109) = "van": s(110) = "pierre à plâtre": s(111) = "sel": s(112) = "fer": s(113) = "cuivre": s(114) = "chat": s(115) = "étain": s(116) = "plomb": s(117) = "zinc": s(118) = "mercure": s(119) = "crible"
s(120) = "lauréole": s(121) = "mousse": s(122) = "fragon": s(123) = "perce-neige": s(124) = "taureau": s(125) = "laurier-tin": s(126) = "amadouvier": s(127) = "mézéréon": s(128) = "peuplier": s(129) = "cognée": s(130) = "éllébore": s(131) = "brocoli": s(132) = "laurier": s(133) = "avelinier": s(134) = "vache": s(135) = "buis": s(136) = "lichen": s(137) = "if": s(138) = "pulmonaire": s(139) = "serpette": s(140) = "thlaspi": s(141) = "thyméle": s(142) = "chiendent": s(143) = "trainasse": s(144) = "lièvre": s(145) = "guède": s(146) = "noisetier": s(147) = "cyclamen": s(148) = "chélidoine": s(149) = "traineau"
s(150) = "tussilage": s(151) = "cornouiller": s(152) = "violier": s(153) = "troêne": s(154) = "bouc": s(155) = "asaret": s(156) = "alaterne": s(157) = "violette": s(158) = "marsault": s(159) = "bêche": s(160) = "narcisse": s(161) = "orme": s(162) = "fumeterre": s(163) = "vélar": s(164) = "chèvre": s(165) = "épinard": s(166) = "doronic": s(167) = "mouron": s(168) = "cerfeuil": s(169) = "cordeau": s(170) = "mandragore": s(171) = "persil": s(172) = "cochléaria": s(173) = "pâquerette": s(174) = "thon": s(175) = "pissenlit": s(176) = "sylvie": s(177) = "capillaire": s(178) = "frêne": s(179) = "plantoir"
s(180) = "primevère": s(181) = "platane": s(182) = "asperge": s(183) = "tulipe": s(184) = "poule": s(185) = "blette": s(186) = "bouleau": s(187) = "jonquille": s(188) = "aulne": s(189) = "couvoir": s(190) = "pervenche": s(191) = "charme": s(192) = "morille": s(193) = "hêtre": s(194) = "abeille": s(195) = "laitue": s(196) = "mélèze": s(197) = "ciguë": s(198) = "radis": s(199) = "ruche": s(200) = "gainier": s(201) = "romaine": s(202) = "marronnier": s(203) = "roquette": s(204) = "pigeon": s(205) = "lilas": s(206) = "anémone": s(207) = "pensée": s(208) = "myrtile": s(209) = "greffoir"
s(210) = "rose": s(211) = "chêne": s(212) = "fougère": s(213) = "aubépine": s(214) = "rossignol": s(215) = "ancolie": s(216) = "muguet": s(217) = "champignon": s(218) = "hyacinthe": s(219) = "râteau": s(220) = "rhubarbe": s(221) = "sainfoin": s(222) = "bâton-d'or": s(223) = "chamærops": s(224) = "ver-à-soie": s(225) = "consoude": s(226) = "pimprenelle": s(227) = "corbeille-d'or": s(228) = "arroche": s(229) = "sarcloir": s(230) = "staticé": s(231) = "fritillaire": s(232) = "bourrache": s(233) = "valériane": s(234) = "carpe": s(235) = "fusain": s(236) = "civette": s(237) = "buglosse": s(238) = "sénevé": s(239) = "houlette"
s(240) = "luzerne": s(241) = "hémérocalle": s(242) = "trèfle": s(243) = "angélique": s(244) = "canard": s(245) = "mélisse": s(246) = "fromental": s(247) = "martagon": s(248) = "serpolet": s(249) = "faux": s(250) = "fraise": s(251) = "bétoine": s(252) = "pois": s(253) = "acacia": s(254) = "caille": s(255) = "œillet": s(256) = "sureau": s(257) = "pavot": s(258) = "tilleul": s(259) = "fourche": s(260) = "barbeau": s(261) = "camomille": s(262) = "chèvrefeuille": s(263) = "caille-lait": s(264) = "tanche": s(265) = "jasmin": s(266) = "verveine": s(267) = "thym": s(268) = "pivoine": s(269) = "chariot"
s(270) = "seigle": s(271) = "avoine": s(272) = "oignon": s(273) = "véronique": s(274) = "mulet": s(275) = "romarin": s(276) = "concombre": s(277) = "échalote": s(278) = "absinthe": s(279) = "faucille": s(280) = "coriandre": s(281) = "artichaut": s(282) = "giroflée": s(283) = "lavande": s(284) = "chamois": s(285) = "tabac": s(286) = "groseille": s(287) = "gesse": s(288) = "cerise": s(289) = "parc": s(290) = "menthe": s(291) = "cumin": s(292) = "haricot": s(293) = "orcanète": s(294) = "pintade": s(295) = "sauge": s(296) = "ail": s(297) = "vesce": s(298) = "blé": s(299) = "chalémie"
s(300) = "épeautre": s(301) = "bouillon-blanc": s(302) = "melon": s(303) = "ivraie": s(304) = "bélier": s(305) = "prêle": s(306) = "armoise": s(307) = "carthame": s(308) = "mûre": s(309) = "arrosoir": s(310) = "panis": s(311) = "salicot": s(312) = "abricot": s(313) = "basilic": s(314) = "brebis": s(315) = "guimauve": s(316) = "lin": s(317) = "amande": s(318) = "gentiane": s(319) = "écluse": s(320) = "carline": s(321) = "caprier": s(322) = "lentille": s(323) = "aunée": s(324) = "loutre": s(325) = "myrthe": s(326) = "colsa": s(327) = "lupin": s(328) = "coton": s(329) = "moulin"
s(330) = "prune": s(331) = "millet": s(332) = "lycoperdon": s(333) = "escourgeon": s(334) = "saumon": s(335) = "tubéreuse": s(336) = "sucrion": s(337) = "apocyn": s(338) = "réglisse": s(339) = "échelle": s(340) = "pastèque": s(341) = "fenouil": s(342) = "épine-vinette": s(343) = "noix": s(344) = "truite": s(345) = "citron": s(346) = "cardière": s(347) = "nerprun": s(348) = "tagète": s(349) = "hotte": s(350) = "églantier": s(351) = "noisette": s(352) = "houblon": s(353) = "sorgho": s(354) = "écrevise": s(355) = "bigarade": s(356) = "verge d'or": s(357) = "maïs": s(358) = "marron": s(359) = "panier"
s(360) = "fête de la Vertu": s(361) = "fête du Génie": s(362) = "fête du Travail": s(363) = "fête de l'Opinion": s(364) = "fête des Récompenses": s(365) = "fête de la Révolution"
fete_R = s(n)
End Function
'__________________________________________________________________________________________________________________________
'
Private Function fete_G(m As Long, j As Long) As String
'
' Fonction créée le 03/11/2004 par ROGER
' Modifiée le 03/11/2004 par ROGER
'
Dim s(1 To 12, 1 To 31)
s(1, 1) = "": s(1, 2) = "Basile": s(1, 3) = "Geneviève": s(1, 4) = "Odilon": s(1, 5) = "Édouard": s(1, 6) = "Melaine": s(1, 7) = "Raymond": s(1, 8) = "Lucien": s(1, 9) = "Alix": s(1, 10) = "Guillaume": s(1, 11) = "Paulin": s(1, 12) = "Tatiana": s(1, 13) = "Yvette": s(1, 14) = "Hilaire": s(1, 15) = "Rémi": s(1, 16) = "Marcel": s(1, 17) = "Roseline": s(1, 18) = "Prisca": s(1, 19) = "Marius": s(1, 20) = "Sébastien": s(1, 21) = "Agnès": s(1, 22) = "Vincent": s(1, 23) = "Barnard": s(1, 24) = "François (de Sales)": s(1, 25) = "Paul (Conv de -)": s(1, 26) = "Paule": s(1, 27) = "Angèle": s(1, 28) = "Thomas (d'Aquin)": s(1, 29) = "Gildas": s(1, 30) = "Martine": s(1, 31) = "Marcelle"
s(2, 1) = "Ella": s(2, 2) = "Théophane": s(2, 3) = "Anatole, Blaise": s(2, 4) = "Véronique": s(2, 5) = "Agathe": s(2, 6) = "Gaston": s(2, 7) = "Eugénie": s(2, 8) = "Jacqueline": s(2, 9) = "Apolline": s(2, 10) = "Arnaud": s(2, 11) = "": s(2, 12) = "Félix": s(2, 13) = "Béatrice": s(2, 14) = "Valentin": s(2, 15) = "Claude": s(2, 16) = "Julienne": s(2, 17) = "Alexis": s(2, 18) = "Bernadette": s(2, 19) = "Gabin": s(2, 20) = "Aimée": s(2, 21) = "Pierre Damien": s(2, 22) = "Isabelle": s(2, 23) = "Lazare": s(2, 24) = "Modeste": s(2, 25) = "Roméo": s(2, 26) = "Nestor": s(2, 27) = "Honorine": s(2, 28) = "Romain": s(2, 29) = "Auguste": s(2, 30) = "": s(2, 31) = ""
s(3, 1) = "Aubin": s(3, 2) = "Charles (le Bon)": s(3, 3) = "Guénolé": s(3, 4) = "Casimir": s(3, 5) = "Olive": s(3, 6) = "Colette": s(3, 7) = "Félicité": s(3, 8) = "Jean (de Dieu)": s(3, 9) = "Françoise": s(3, 10) = "Vivien": s(3, 11) = "Rosine": s(3, 12) = "Justine": s(3, 13) = "Rodrigue": s(3, 14) = "Mathilde": s(3, 15) = "Louise (de M.)": s(3, 16) = "Bénédicte": s(3, 17) = "Patrice": s(3, 18) = "Cyrille": s(3, 19) = "Joseph": s(3, 20) = "": s(3, 21) = "Clémence": s(3, 22) = "Léa": s(3, 23) = "Victorien": s(3, 24) = "Catherine (de Suède)": s(3, 25) = "": s(3, 26) = "Larissa": s(3, 27) = "Habib": s(3, 28) = "Gontran": s(3, 29) = "Gwladys": s(3, 30) = "Amédée": s(3, 31) = "Benjamin"
s(4, 1) = "Hugues": s(4, 2) = "Sandrine": s(4, 3) = "Richard": s(4, 4) = "Isidore": s(4, 5) = "Irène": s(4, 6) = "Marcellin": s(4, 7) = "Jean-Baptiste (de la Salle)": s(4, 8) = "Julie": s(4, 9) = "Gauthier": s(4, 10) = "Fulbert": s(4, 11) = "Stanislas": s(4, 12) = "Jules": s(4, 13) = "Ida": s(4, 14) = "Maxime": s(4, 15) = "Paterne": s(4, 16) = "Benoît-Joseph": s(4, 17) = "Anicet": s(4, 18) = "Parfait": s(4, 19) = "Emma": s(4, 20) = "Odette": s(4, 21) = "Anselme": s(4, 22) = "Alexandre": s(4, 23) = "Georges": s(4, 24) = "Fidèle": s(4, 25) = "Marc": s(4, 26) = "Alida": s(4, 27) = "Zita": s(4, 28) = "Valérie": s(4, 29) = "Catherine (de Sienne)": s(4, 30) = "Robert": s(4, 31) = ""
s(5, 1) = "Jérémie": s(5, 2) = "Boris": s(5, 3) = "Philippe & Jacques": s(5, 4) = "Sylvain": s(5, 5) = "Judith": s(5, 6) = "Prudence": s(5, 7) = "Gisèle": s(5, 8) = "": s(5, 9) = "Pacôme": s(5, 10) = "Solange": s(5, 11) = "Estelle": s(5, 12) = "Achille": s(5, 13) = "Rolande": s(5, 14) = "Jeanne (d'Arc), Matthias": s(5, 15) = "Denise": s(5, 16) = "Honoré": s(5, 17) = "Pascal": s(5, 18) = "Éric": s(5, 19) = "Yves": s(5, 20) = "Bernardin": s(5, 21) = "Constantin": s(5, 22) = "Émile": s(5, 23) = "Didier": s(5, 24) = "Donatien": s(5, 25) = "Sophie": s(5, 26) = "Bérenger": s(5, 27) = "Augustin (de Canterbury)": s(5, 28) = "Germain": s(5, 29) = "Aymar": s(5, 30) = "Ferdinand": s(5, 31) = ""
s(6, 1) = "Justin": s(6, 2) = "Blandine": s(6, 3) = "Kévin": s(6, 4) = "Clotilde": s(6, 5) = "Igor": s(6, 6) = "Norbert": s(6, 7) = "Gilbert": s(6, 8) = "Médard": s(6, 9) = "Diane": s(6, 10) = "Landry": s(6, 11) = "Barnabé": s(6, 12) = "Guy": s(6, 13) = "Antoine (de Padoue)": s(6, 14) = "Élisée": s(6, 15) = "Germaine": s(6, 16) = "Jean-François Régis": s(6, 17) = "Hervé": s(6, 18) = "Léonce": s(6, 19) = "Romuald": s(6, 20) = "Fabien": s(6, 21) = "Louis (de Gonzague)": s(6, 22) = "Alban": s(6, 23) = "Audrey": s(6, 24) = "Jean-Baptiste": s(6, 25) = "Éléonore, Prosper": s(6, 26) = "Anthelme": s(6, 27) = "Fernand": s(6, 28) = "Irénée": s(6, 29) = "Pierre & Paul": s(6, 30) = "Martial": s(6, 31) = ""
s(7, 1) = "Thierry": s(7, 2) = "Martinien": s(7, 3) = "Thomas": s(7, 4) = "Florent": s(7, 5) = "Antoine": s(7, 6) = "Mariette": s(7, 7) = "Raoul": s(7, 8) = "Thibaut": s(7, 9) = "Amandine": s(7, 10) = "Ulrich": s(7, 11) = "Benoît": s(7, 12) = "Olivier": s(7, 13) = "Henri & Joël": s(7, 14) = "": s(7, 15) = "Donald": s(7, 16) = "": s(7, 17) = "Charlotte": s(7, 18) = "Frédéric": s(7, 19) = "Arsène": s(7, 20) = "Marina": s(7, 21) = "Victor": s(7, 22) = "Marie-Madeleine": s(7, 23) = "Brigitte": s(7, 24) = "Christine": s(7, 25) = "Jacques": s(7, 26) = "Anne & Joachim": s(7, 27) = "Nathalie": s(7, 28) = "Samson": s(7, 29) = "Marthe": s(7, 30) = "Juliette": s(7, 31) = "Ignace (de Loyola)"
s(8, 1) = "Alphonse": s(8, 2) = "Julien-Eymard": s(8, 3) = "Lydie": s(8, 4) = "Jean-Marie (Vianney)": s(8, 5) = "Abel": s(8, 6) = "": s(8, 7) = "Gaétan": s(8, 8) = "Dominique": s(8, 9) = "Amour": s(8, 10) = "Laurent": s(8, 11) = "Claire": s(8, 12) = "Clarisse": s(8, 13) = "Hyppolyte": s(8, 14) = "Évrard": s(8, 15) = "Marie": s(8, 16) = "Armelle": s(8, 17) = "Hyacinthe": s(8, 18) = "Hélène": s(8, 19) = "Jean-Eudes": s(8, 20) = "Bernard": s(8, 21) = "Christophe": s(8, 22) = "Fabrice": s(8, 23) = "Rose (de Lima)": s(8, 24) = "Barthélemy": s(8, 25) = "Louis": s(8, 26) = "Natacha": s(8, 27) = "Monique": s(8, 28) = "Augustin": s(8, 29) = "Sabine": s(8, 30) = "Fiacre": s(8, 31) = "Aristide"
s(9, 1) = "Gilles": s(9, 2) = "Ingrid": s(9, 3) = "Grégoire": s(9, 4) = "Rosalie": s(9, 5) = "Raïssa": s(9, 6) = "Bertrand": s(9, 7) = "Reine": s(9, 8) = "": s(9, 9) = "Alain": s(9, 10) = "Inès": s(9, 11) = "Adelphe": s(9, 12) = "Apollinaire": s(9, 13) = "Aimé": s(9, 14) = "": s(9, 15) = "Roland": s(9, 16) = "Édith": s(9, 17) = "Renaud": s(9, 18) = "Nadège": s(9, 19) = "Émilie": s(9, 20) = "Davy": s(9, 21) = "Matthieu": s(9, 22) = "Maurice": s(9, 23) = "Constant": s(9, 24) = "Thècle": s(9, 25) = "Hermann": s(9, 26) = "Côme & Damien": s(9, 27) = "Vincent (de Paul)": s(9, 28) = "Venceslas": s(9, 29) = "Michel": s(9, 30) = "Jérôme": s(9, 31) = ""
s(10, 1) = "Thérèse (de l'Enfant-Jésus)": s(10, 2) = "Léger": s(10, 3) = "Gérard": s(10, 4) = "François (d'Assise)": s(10, 5) = "Fleur": s(10, 6) = "Bruno": s(10, 7) = "Serge": s(10, 8) = "Pélagie": s(10, 9) = "Denis": s(10, 10) = "Ghislain": s(10, 11) = "Firmin": s(10, 12) = "Wilfried": s(10, 13) = "Géraud": s(10, 14) = "Juste": s(10, 15) = "Thérèse (d'Avila)": s(10, 16) = "Edwige": s(10, 17) = "Boudouin": s(10, 18) = "Luc": s(10, 19) = "René": s(10, 20) = "Adeline": s(10, 21) = "Céline": s(10, 22) = "Élodie": s(10, 23) = "Jean (de Capistran)": s(10, 24) = "Raphaël": s(10, 25) = "Crépin, Enguerran": s(10, 26) = "Dimitri": s(10, 27) = "Émeline": s(10, 28) = "Simon & Jude": s(10, 29) = "Narcisse": s(10, 30) = "Bienvenue": s(10, 31) = "Quentin"
s(11, 1) = "Toussaint": s(11, 2) = "": s(11, 3) = "Hubert": s(11, 4) = "Charles": s(11, 5) = "Sylvie": s(11, 6) = "Bertille, Léonard": s(11, 7) = "Carine": s(11, 8) = "Geoffroy": s(11, 9) = "Théodore": s(11, 10) = "Léon": s(11, 11) = "Martin": s(11, 12) = "Christian": s(11, 13) = "Brice": s(11, 14) = "Sidoine": s(11, 15) = "Albert": s(11, 16) = "Marguerite": s(11, 17) = "Élisabeth": s(11, 18) = "Aude": s(11, 19) = "Tanguy": s(11, 20) = "Edmond": s(11, 21) = "": s(11, 22) = "Cécile": s(11, 23) = "Clément": s(11, 24) = "Flora": s(11, 25) = "Catherine (Labouré)": s(11, 26) = "Delphine": s(11, 27) = "Séverin": s(11, 28) = "Jacques (Majeur)": s(11, 29) = "Saturnin": s(11, 30) = "André": s(11, 31) = ""
s(12, 1) = "Florence": s(12, 2) = "Viviane": s(12, 3) = "Xavier": s(12, 4) = "Barbara": s(12, 5) = "Gérald": s(12, 6) = "Nicolas": s(12, 7) = "Ambroise": s(12, 8) = "": s(12, 9) = "Pierre (Fourier)": s(12, 10) = "Romaric": s(12, 11) = "Daniel": s(12, 12) = "Jeanne-Françoise (de Chantal)": s(12, 13) = "Lucie": s(12, 14) = "Odile": s(12, 15) = "Ninon": s(12, 16) = "Alice": s(12, 17) = "Judicaël, Gaël": s(12, 18) = "Gatien": s(12, 19) = "Urbain": s(12, 20) = "Abraham, Théophile": s(12, 21) = "Pierre (C.)": s(12, 22) = "Françiose-Xavière": s(12, 23) = "Arman"
fete_G = s(m, j)
End Function
'__________________________________________________________________________________________________________________________
'
Function romain2(N0 As Variant)
'
' Transcription d'un entier < 5000 en chiffres romains. N0 est un entier ou un littéral représentant un entier.
' Les entiers > 4999 sont renvoyés sans modification.
' Fonction créée le 26/10/2002 par ROGER. Equivaut à la fonction 'ROMAIN()' d'Excel.
' Modifiée le 19/08/2010 par ROGER.
'
Dim c, d, E, f
Dim N1 As Long, N2 As Long, N3 As Long: Dim T1 As Integer, T2 As Integer, t3 As Integer

c = Array("", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX")
d = Array("", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC")
E = Array("", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM")
f = Array("", "M", "MM", "MMM", "MMMM")

    If N0 > 4999 Or N0 < 0 Then
        romain2 = N0
    Else
        T1 = N0 Mod 10: N1 = (N0 - T1) / 10: T2 = N1 Mod 10: N2 = (N1 - T2) / 10: t3 = N2 Mod 10: N3 = (N2 - t3) / 10
        romain2 = f(N3) & E(t3) & d(T2) & c(T1)
    End If
End Function
'__________________________________________________________________________________________________________________________
'
Function premier(n As Variant, Optional a As Byte)
'
' Remplace "1" par "premier" si 'a' est 1 ou omis, par "1er" si 'a' est 0.
' Fonction créée le 26/10/2002 par ROGER
' Modifiée le 15/01/2006 par ROGER
'
    If IsMissing(a) Then a=1
    If n = 1 Then
        If a = 0 Then premier = "1er" Else premier = "premier"
    Else
        premier = n
    End If
End Function[/COLOR][/B]
D'autant plus que Open Office va sûrement finir par intégrer un langage de programmation ...
avec un retard important :rolleyes:
Mort de rire !
ROGER2327
#4466


Mercredi 4 As 138 (Saint Cravan, boxeur, SQ)
16 Brumaire An CCXIX
2010-W44-6T23:50:18Z
 

Pièces jointes

  • Date de la République Une et Indivisible.zip
    31 KB · Affichages: 156

BOUCHEZ JD

XLDnaute Junior
Re : La mort du VBA

Bonjour

Réponse à JNP
Citation :
"L'important est de se souvenir comment on l'a fait, et de le refaire, même si cela passe par réécrire en C# ce qu'on a écrit en VB.net, qu'on avait préalablement écrit en VBA .
Ce n'est pas le langage qui compte, mais ce qu'il traduit
"

Certes, il ne faut pas s'encrouter; mais expliquer à une direction que ce qui a été écrit en 2010 en VBA devra être réécrit en 2010 en .NET puis en 2016 en C#, cela risque de coincer fort : TIME is MONEY pour une entreprise.

Pour ROGER2327 :
Concernant OPEN OFFICE, je doute que SUN (Qui comme toute entreprise doit faire du fric) continue à offrir gracieusement ce produit au monde. Le jour où son bilan sera dans le rouge, cela sera soit le passage à la trappe soit la licence à payer.
Quant à la reprise en libre, SOURCEFORGE est plein de projet abandonné. Assurer la maintenance et le developpement d'un produit comme OO n'est pas à la portée technique de tout le monde. C'est un metier, et un métier, cela se paye ...

Bon W.E
 

Brigitte

XLDnaute Barbatruc
Re : La mort du VBA

Bonjour,

Je vous lis avec intérêt...

Complètement d'accord avec JD :

Concernant OPEN OFFICE, je doute que SUN (Qui comme toute entreprise doit faire du fric) continue à offrir gracieusement ce produit au monde. Le jour où son bilan sera dans le rouge, cela sera soit le passage à la trappe soit la licence à payer.

Je pense cela depuis longtemps, quand on sera bien "ferrés", et que le retour en arrière sera bien trop difficile pour tous, qui dit qu'OOo ne développera pas une appli payante pour qu'elle soit plus complète, et que ne restera "libre de droits" que celle de base comme Microsoft le fait a priori déjà actuellement ?

Comme des boîtes telles GRISOFT qui offre un produit de base : antivirus AVG FREE et pour avoir l'ensemble, un produit payant et n'arrête pas de le proposer lorsqu'on met à jour ou autre... La gratuité a des limites, et les vrais altruistes sont morts ...

Je doute de la gratuité à long terme, dans ce monde de profit.
 

ROGER2327

XLDnaute Barbatruc
Re : La mort du VBA

Re...
(…)
Pour ROGER2327 :
Concernant OPEN OFFICE, je doute que SUN (Qui comme toute entreprise doit faire du fric) continue à offrir gracieusement ce produit au monde. Le jour où son bilan sera dans le rouge, cela sera soit le passage à la trappe soit la licence à payer.
Quant à la reprise en libre, SOURCEFORGE est plein de projet abandonné. Assurer la maintenance et le developpement d'un produit comme OO n'est pas à la portée technique de tout le monde. C'est un metier, et un métier, cela se paye ...
(…)
Qui dit le contraire ?
Ma réponse concernait seulement l'affirmation péremptoire sur les possibilités (ou plutôt sur les impossibilités) présentes d'OpenOffice.org.
Affirmation gratuite relevant de la désinformation*.
Quant à Sun, il me semble bien qu'il a déjà passé la main depuis son rachat par Oracle, lequel pourrait effectivement créer sa propre suite bureautique (Cloud Office)…
Rien n'est simple, en effet, et il n'est pas dit que la gratuité dure longtemps. Mais ce n'était pas mon propos, et votre réponse n'éclaire en rien la question de savoir si OpenOffice.org…
…va sûrement finir par intégrer un langage de programmation…
…et avec quel retard.

Ceci dit, comme ces discussions d'experts ne m'intéressent guère, je ne vais pas en faire un fromage. Chacun est libre de raconter ce qu'il veut et je ne vois aucun inconvénient à ce qu'on professe que la Terre est plate, pourvu que j'ai le droit de dire qu'elle est ronde.

À Brigitte :
()
La gratuité a des limites, et les vrais altruistes sont morts…
(…)
Et nous, alors ? Nous ne sommes pas encore tout à fait morts !​
Cordialement,
ROGER2327
#4469


Jeudi 5 As 138 (Saint Van Meegeren, faussaire, SQ)
17 Brumaire An CCXIX
2010-W44-7T14:08:44Z
_______________________________
* terme politiquement correct qui désigne tantôt l'ignorance, tantôt le mensonge, quelquefois les deux.
 
Dernière édition: