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 :

[VBA-E] Exportation feuille en XML


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut [VBA-E] Exportation feuille en XML
    Salut !

    Voila je voudrais, j'ai quelques connaissances de VB 6 mais en VBA je suis perdu avec les range et tout
    Mon problème est simple je pense (pour vous les experts !). on me demande d'exporter un tableau en XML...

    Voici la structure
    Message

    Layer

    Direction

    Channel Type

    Message | Layer | Direction | Channel Type
    -------------------------------------------
    Packet AR | RLC_MAC | Uplink | PCCH_MSG

    ...
    Je voudrais faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <network>
        <message direction="Uplink">
             <id>Packet AR</id>
             <layer>RLC_MAC</layer>
             <channel>PCCH_MSG</channel> 
        </message>
    </network>
    J'ai fais ca pour l'instant, mais bien sûr ca ne fonctionne pas, j'ai du me fourvoyer dans l'utilisation des ranges...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    Sub export2XML()
        Dim newrange As Range
        Dim cell As Range
        Dim filename As Variant
        Dim retVal As Variant
        Dim suffix As String
        suffix = ""
        Dim iCol As Long
        Dim Col_id As String
        Dim colRange As Range
        Dim fp As Integer
        fp = FreeFile
        filename = ThisWorkbook.Path & "\export.txt"
        Open filename For Output As #fp
        For iCol = 1 To 4
            Set newrange = Intersect(Cells.Columns(iCol), ActiveSheet.UsedRange)
            Col_id = Left(Cells(1, iCol).Address(0, 0), _
              Len(Cells(1, iCol).Address(0, 0)) - 1)
            For Each cell In newrange     'newrange
                If Trim(cell.Text) <> "" Then
                    Print #1, cell.Text & suffix
                End If
            Next cell
        Next iCol
      Close #1
    End Sub
    Merki !!!
    +++
    Ju

  2. #2
    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
    J'avais envie de m'amuser un peu...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub Export2XML()
      Dim rRange As Range
      Dim rCell As Range
      Dim strFilename As Variant
      Dim iFp As Integer
      Dim wksSrc As Worksheet
      iFp = FreeFile
      strFilename = ThisWorkbook.Path & "\export.txt"
      Set wksSrc = ActiveSheet
      Set rRange = Range(wksSrc.[A2], _
                   wksSrc.Cells(wksSrc.Cells.SpecialCells(xlLastCell).Row, 1))
      Open strFilename For Output As #iFp
      For Each rCell In rRange
        If Trim(rCell.Text) <> "" Then
          Print #iFp, "<network>"
          Print #iFp, Space(4) & "<message direction=" & Chr(34) & _
                      rCell.Offset(0, 2) & Chr(34) & ">"
          Print #iFp, Space(8) & "<id>" & rCell & "</id>"
          Print #iFp, Space(8) & "<layer>" & rCell.Offset(0, 1) & "</layer>"
          Print #iFp, Space(8) & "<channel>" & rCell.Offset(0, 3) & "</channel>"
          Print #iFp, Space(4) & "</message>"
          Print #iFp, "</network>"
          Print #iFp,
        End If
      Next rCell
      Close #iFp
    End Sub
    Comme j'ai mis le code dans un module, j'ai instancié la feuille.

    Edit --> Avec indentations
    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!

  3. #3
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Eh beh !
    super ! Ca fonctionnne nickel ! Du premier coup !
    Note : Joli les indentations !
    Merci encore !
    ++
    Ju

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

Discussions similaires

  1. Macro ou VBA pour exporter toutes mes feuilles au format *txt
    Par jakadam dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/08/2011, 01h58
  2. Réponses: 4
    Dernier message: 27/04/2007, 12h19
  3. [VBA Excel] export/sauvegarde d'une feuille excel .csv
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/12/2006, 12h07
  4. [VBA - Excel] Exporter une feuille Excel
    Par Gerard6969 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 27/09/2006, 12h08
  5. [VBA-E] Sélection feuilles sous excel
    Par Mystic eyes dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2004, 13h27

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