Accéder au contenu principal

Excel: générer du VBA avec...du VBA !

Après avoir développé une formule complexe dans la feuille de calcul, quoi de plus fastidieux que de devoir ensuite la "traduire" en Vba ? Plus maintenant, grace a cette petite routine, à exécuter depuis la fenêtre de Debug (ctrl+G):
 
Sub RngToVba(src As Range)  
 'writes the VBA code to re-create the formulae in given range  
 'by Patrick Honorez - www.idevlop.com  
 'usage: from debug window, type RngToVba [L14:R14]  
 ' or RngToVba range("L14:R14")  
  Dim c As Range  
  For Each c In src  
  Debug.Print "range(""" & c.Address & """).formula = """ & _  
        Replace(c.Formula, """", """""") & """"""  
  Next c  
 End Sub  

Commentaires

Posts les plus consultés de ce blog

ROW_NUMBER OVER PARTITION en Access

Ceux qui ont l'habitude de travailler avec une "grosse" base données comme SQL Server / Oracle / PostGreSQL, sont parfois frustrés face à certaines lacunes du SQL d'Access.   Prenons par exemple: ROW_NUMBER() OVER PARTITION, dont l'absence rend certaines requêtes très compliquées.   J'ai donc écrit une petite fonction VBA qui peut être appelée depuis un query Access et qui simulera assez bien ce ROW_NUMBER() OVER PARTITION.   Notez que ceci ne fonctionnera pas correctement dans une vue ou un formulaire interactif. Par contre comme source d'un rapport ou d'un export Excel, c'est impeccable.   En pratique il est préférable d'initialiser la fonction avec une chaîne de caractères "improbable" avant de lancer le rapport, comme indiqué dans le code.

Gmail: comment gérer les adresses email obsolètes ?

Lorsqu'un de vos contacts Gmail change d'adresse email, vous avez un choix à faire: soit vous supprimez l'ancienne adresse de la fiche du contact, mais alors vous n'accéderez plus aussi facilement à la liste des échanges avec cette personne, puisque les mails liés à l'ancienne adresse ne seront pas repris. soit vous laissez l'adresse obsolète dans la fiche, mais vous risquez de continuer à lui envoyer des emails à son ancienne adresse, puisqu'en composant un nouveau mail, Gmail vous la proposera. Il y a une solution toute simple: dans la fiche du contact, rajoutez une "*" (sans les guillemets bien sûr) devant l'adresse obsolète. Ex: pour "pierre.dupont@xyz.com", changez l'adresse en "*pierre.dupont@xyz.com". Et le tour est joué. Dorénavant cette adresse n'apparaîtra plus dans la liste des destinataires lorsque vous créez un nouveau mail, mais si vous cherchez la liste des échanges avec Pierre Dupont, les email...