IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Equivalent sérialisation sous VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Météorologiste
    Inscrit en
    Octobre 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Météorologiste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 60
    Par défaut Equivalent sérialisation sous VBA
    Bonjour,
    Sous VB, lorsque je voulais sauvegarder une variable tableau, j'utilisais la sérialisation. Existe-t-il un équivalent sous VBA ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Imports System
    Imports System.IO
    Imports System.Runtime.Serialization.Formatters.Binary
    Imports System.Runtime.Serialization
     
    Dim myFileStream As Stream = File.Create("SaveTableau.xml")
        Dim serializer As New soapFormatter
        serializer.Serialize(myFileStream, MonTableau)
        myFileStream.Close()

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Il n'y a pas d'équivalent direct de la sérialisation en VBA.

    À partir d'Excel 2003 (je pense) Excel peut sauvegarder au format XML. Tu pourrais envisager de mettre tes paramètres dans un classeur Excel que tu pourrais envisager de sauvegarder au format XML ou encore dans un classeur Excel indépendant.

    Tu peux aussi envisager une sauvegarde dans le registre avec SaveSettings. Sauf que tu ne peux pas choisir dans quel endroit du registre. L'endroit est imposé par Microsoft. Pour les récupérer, c'est getSettings.

    Ou, tu peux utiliser in fichier texte avec Open(). En fait, tu peux même formater manuellement ton fichier au format XML dans les opérations d'écriture. Je dis manuellement, parce que l'instruction Open date depuis des lustres (du BASIC original ou presque) et n'a jamais été actualisée pour manipuler automatiquement le format XML.

    En utilisant l'API Windows, tu peux utiliser tout le registre au lieu des barrières de SaveSettings, ou les fichiers .ini

    Mais comme je disais, ce ne sont pas des équivalents directs, et cela demande sans doute plus de travail (et de prudence) que la sérialisation pure et simple.

    Désolé pour la déception.

  3. #3
    Membre confirmé
    Femme Profil pro
    Météorologiste
    Inscrit en
    Octobre 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Météorologiste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 60
    Par défaut
    Merci pour votre réponse.

    Je vais tenter de sauvegarder au format XML.
    Pour le moment je sais le faire en récupérant une plage sur excel mais ça ne me tente pas de recopier ma variable tableau dans une feuille pour ensuite la sauvegarder en XML, autant le faire directement depuis la variable tableau, en espérant que cela soit réalisable.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Une possibilité avec la librairie Microsoft XML:
    http://arkham46.developpez.com/artic...b/?page=page_4

    Pas aussi direct qu'une Sérialisation mais permet, au moins, de ne pas devoir s'occuper de la fermeture des balises et gère des notions de Parent/Enfant et d'attribut.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour laguernette,

    si la variable tableau ne dépasse pas deux dimensions, le XML n'est pas obligatoire sauf besoin spécifique.

    J'ai codé quelque chose dans le genre avant l'apparition du XML mais limité à deux dimensions …

  6. #6
    Membre confirmé
    Femme Profil pro
    Météorologiste
    Inscrit en
    Octobre 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Météorologiste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 60
    Par défaut
    Merci AlainTech, j'avais déjà lu cet article, cela prouve que je suis sur la bonne voie.

    Marc-L, ma variable tableau à 3 dimensions pour le moment et pourrait en avoir plus. Mais pour ma propre culture perso, je suis intéressée par ta solution avec un tableau à 2 dimensions, on ne sait jamais, ça pourrait servir un jour.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Equivalent recherchev, sous vba, entre deux fichiers et avec plusieurs critères
    Par Gallinettechouette dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/07/2013, 13h01
  2. Equivalent TWebBrowser sous Delphi édition personnelle
    Par lil_jam63 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 22/09/2004, 18h52
  3. (VBA-A] Requete access sous VBA
    Par vanima dans le forum VBA Access
    Réponses: 12
    Dernier message: 20/07/2004, 16h07
  4. Syntaxe PARAMETERS pour requête sous VBA
    Par GAGNON dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/11/2003, 11h39
  5. Réponses: 7
    Dernier message: 07/04/2003, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo