Affichage des articles dont le libellé est Excel. Afficher tous les articles
Affichage des articles dont le libellé est Excel. Afficher tous les articles

lundi 1 juillet 2013

Convertir un fichier CSV en XML avec Excel

Deux méthodes pour convertir un fichier CSV ou autre en fichier XML depuis Excel :

  1. La méthode brute : Insérer des colonnes avant et après les données qui contiendrons les noeuds xml du fichier XML final, par exemple :



    Il ne reste plus qu'à copier/coller le résultat dans un éditeur de texte et à supprimer les espaces restants avec des rechercher/remplacer complexes. Pas élégant mais rempli son office.

  2. La méthode normale : Utiliser les outils XML d'Excel

    la procédure complète est disponible dans l'article suivant : Créer un fichier de données XML et un fichier de schéma XML à partir des données d’une feuille de calcul. Pour résumer :


    1. Télécharger et installer Excel 2003 Add-in: XML Tools Add-in
    2. Installer le module via Fichiers > Options > Compléments > Compléments Excel (en bas) > "Atteindre..." > "Parcourir..." pour aller chercher le fichier XmlTools.xla
    3. Une fois fait, Un menu "XML Tools" est accessible dans l'onglet "Compléments"


    4. Cliquer sur "Convert a Range to an XML List...", sélectionner la plage concernée (Cette plage deviendra un tableau Excel, l'opération ne pourra donc pas se refaire. Il faudra, pour recommencer, repartir d'une plage de cellule non formatée)


    5. "OK" et là, erreur!! Il faut corriger une erreur présente dans la macro de l'outil
    6. Rechercher/Remplacer la valeur DOMDocument50 par DOMDocument dans l'éditeur VBA


    7. re"OK" et là, ça marche! Le mappage XML est réalisé, il ne reste plus qu'à faire "Enregistrer sous..." au format Données XML
La deuxième méthode étant, bien sûr, la plus conseillée :)

jeudi 6 janvier 2011

Importer des fichiers Excel dans SharePoint

Option disponible dans Excel 2003 et Excel 2007, la possibilité de créer des listes de manière automatisée dans SharePoint à partir de fichier Excel, permet de faire gagner beaucoup de temps tout en permettant de structurer l'information.

Sous Excel 2007 :
  1. Sélectionner les données devant faire l'objet d'une liste
  2. Dans l'onglet Insertion, cliquer sur tableau et valider les options



  3. Une fois fait, l'option Exporter est active et permet la création d'une liste dans un site SharePoint dont on aura, au préalable, saisit l'url


Sous Excel 2003, l'opération est quasi identique mais les options différentes :

  1. Clic-droit sur les données et sélectionner Créer une liste

  2. Clic-droit, Liste et Publier la liste

Du côté SharePoint, le même résultat peut-être obtenu avec Afficher tout le contenu du site > Créer >

Importer une feuille de calcul

Les types de données prises en charges par cet import restent des types simples :
  1. Texte
  2. Devise
  3. Date/heure
  4. Nombre
  5. Lien hypertexte
Voilà!

jeudi 29 mai 2008

Trucs et astuces VBA Excel

Quelques aides mémoires utiles pour Développement Macro VBA que je n'aurais pas à chercher :

Détecter un simple clic
Entre le SelectionChange et le DoubleClick il n'existe pas dans Excel (à ma connaissance :)) de moyen de capturer le simple clic dans une cellule (entendu par là, que le fait de faire un simple clic dans la cellule déjà sélectionné doit lever l'évenement).
L'astuce la plus fonctionnelle consiste lors du SelectionChange, qui est au moins déclenché la première fois, de faire son traitement et de terminer par :
ThisWorkbook.Worksheets(feuilleB).Range("B" & Target.row & ",Z" & Target.row).Select
Afin de modifier la sélection en cours (ici on sélectionne la cellule B et Z de la ligne en cours), ce qui fait que lors du prochain clic, SelectionChange sera forcément levé


Permettre de manipuler les plans avec les feuilles protégées
La protection d'une feuille entraine par défaut le fait qu'il n'est plus possible d'utiliser le mode plan permettant de manipuler les données en arbre, il faut alors affiner sa protection :
Sheets(feuilleB).EnableOutlining = activate
Sheets(feuilleB).Protect "", userInterfaceOnly:=activate

Ouvrir, refermer les niveaux d'un plan en VBA
Dans la continuité de l'astuce précédente et toujours sur les plans , voici le code VBA vous permettant de déployer ou replier les niveaux par programmation :
Sub expandCollapse()
'Expand niveau 2
MsgBox "Expand niveau 2"
Sheets(3).Outline.ShowLevels RowLevels:=2
'Collapse niveau 2
MsgBox "Collapse niveau 2"
Sheets(3).Outline.ShowLevels RowLevels:=1
End Sub

mercredi 13 février 2008

Appel d'une assembly .net depuis une application VBA

tout est dans le titre, comment donc faire appel à une assembly .net depuis une application VBA (au hasard Excel) :
  1. Créer une ClassLibrary
  2. Dans le propriétés du projet > Application > Information de l’assembly > cocher "Rendre l’assembly visible par COM"
  3. Puis dans Générer > cocher "Inscription pour Com Interop"
  4. Signer le projet avec un fichier SNK
  5. Dans la classe elle même, créer les membres et les fonctions en public
  6. Créer un fichier Excel.exe.config contenant le code ciblant le framework à utiliser :
    <?xml version="1.0"?>
    <configuration>
    <startup>
    <supportedRuntime version="v2.0.50727"/>
    </startup>
    </configuration>
  7. Mettre ce fichier au niveau de l'exécutable Excel.exe
  8. Ensuite au niveau de l'application Excel, ouvrir le Visual Basic Editor > Outils > Références > cocher votre composant dans la liste
  9. Créer votre code VBA pour faire appel à votre assembly :
    Sub CallAssemblyTest()
    Dim MaClass As New MonAssemblyClass
    MsgBox MaClass.MaFonction
    Set MaClass = Nothing
    End Sub
Plus d'infos dans ce précieux article : http://richnewman.wordpress.com/2007/04/15/a-beginner’s-guide-to-calling-a-net-library-from-excel/