none
Do Excel para o MS Outlook em VBA RRS feed

  • Pergunta

  • Olá

    Já venho utilizando um código VBA para enviar para um grupo de destinatários dados de uma planilha. Acontece que parte desses destinatários utiliza endereço de e-mail corporativo e a empresa utiliza uma série de restrições e os dados da planilha, que envio colada como tabela na mensagem, não podem ser lidos. Existe algum código que converta esses dados em plain text, dados separados por espaços ou tabulações, por exemplo?

    Obrigado


    quinta-feira, 21 de abril de 2011 23:52

Respostas

  • Olá Haroldo bom dia,

    Para converter tabela para texto siga os seguintes passos:

    How to use:

     

    1. Open your Workbook.
    2. Press Alt + F11 to open VBE.
    3. Insert-Module. (Insert -> module)
    4. Paste the code there in the window at right. (F7)
    5. Close VBE (Alt + Q or press the X in the top right hand corner).
    6. Save the file.
     

     

    Test the code:

     

    1. From Excel, press Alt + F8 to open the macro dialog box.
    2. Select ConvertTableToText to convert a table to text
    3. Click Run.
    4. From Excel, press Alt + F8 to open the macro dialog box.
    5. Select ConvertTextToTable to convert text to a table
    6. Click Run.

    Option Explicit

    Sub ConvertTableToText()
        Dim oTable As Word.Table
        
         ' \\ If bookmarked table count not 1 then exit sub
        If ActiveDocument.Bookmarks("bmTable").Range.Tables.Count _
        <> 1 Then Exit Sub
        
         ' \\ Get a handle to the bookmarked table
        Set oTable = ActiveDocument.Bookmarks("bmTable").Range.Tables(1)
        
         ' \\ Convert it to text separated by Tabs
        oTable.ConvertToText Separator:=wdSeparateByTabs
        
         ' \\ Clean up
        Set oTable = Nothing
    End Sub

    Sub ConvertTextToTable()
        Dim oRange As Word.Range
        
         ' \\ If bookmarked table count not 0 then exit sub
        If ActiveDocument.Bookmarks("bmTable").Range.Tables.Count _
        <> 0 Then Exit Sub
        
         ' \\ Get a handle to the bookmarked range
        Set oRange = ActiveDocument.Bookmarks("bmTable").Range
        
         ' \\ Convert it to a table separated by Tabs
        oRange.ConvertToTable Separator:=wdSeparateByTabs
        
         ' \\ Clean up
        Set oRange = Nothing
    End Sub

    Espero ter ajudado, se sim, por favor qualificar.

    Abraços,


    Carlos Carvalho Citrangulo Junior
    Microsoft Certified Professional
    Microsoft Certified Desktop Support Technician
    MCTS Microsoft Windows Vista Configuration
    MCITP Enterprise Support Technician
    Profissional 5 Estrelas Microsoft
    http://carloscitrangulo.wordpress.com
    sábado, 23 de abril de 2011 04:24

Todas as Respostas

  • Olá Haroldo bom dia,

    Para converter tabela para texto siga os seguintes passos:

    How to use:

     

    1. Open your Workbook.
    2. Press Alt + F11 to open VBE.
    3. Insert-Module. (Insert -> module)
    4. Paste the code there in the window at right. (F7)
    5. Close VBE (Alt + Q or press the X in the top right hand corner).
    6. Save the file.
     

     

    Test the code:

     

    1. From Excel, press Alt + F8 to open the macro dialog box.
    2. Select ConvertTableToText to convert a table to text
    3. Click Run.
    4. From Excel, press Alt + F8 to open the macro dialog box.
    5. Select ConvertTextToTable to convert text to a table
    6. Click Run.

    Option Explicit

    Sub ConvertTableToText()
        Dim oTable As Word.Table
        
         ' \\ If bookmarked table count not 1 then exit sub
        If ActiveDocument.Bookmarks("bmTable").Range.Tables.Count _
        <> 1 Then Exit Sub
        
         ' \\ Get a handle to the bookmarked table
        Set oTable = ActiveDocument.Bookmarks("bmTable").Range.Tables(1)
        
         ' \\ Convert it to text separated by Tabs
        oTable.ConvertToText Separator:=wdSeparateByTabs
        
         ' \\ Clean up
        Set oTable = Nothing
    End Sub

    Sub ConvertTextToTable()
        Dim oRange As Word.Range
        
         ' \\ If bookmarked table count not 0 then exit sub
        If ActiveDocument.Bookmarks("bmTable").Range.Tables.Count _
        <> 0 Then Exit Sub
        
         ' \\ Get a handle to the bookmarked range
        Set oRange = ActiveDocument.Bookmarks("bmTable").Range
        
         ' \\ Convert it to a table separated by Tabs
        oRange.ConvertToTable Separator:=wdSeparateByTabs
        
         ' \\ Clean up
        Set oRange = Nothing
    End Sub

    Espero ter ajudado, se sim, por favor qualificar.

    Abraços,


    Carlos Carvalho Citrangulo Junior
    Microsoft Certified Professional
    Microsoft Certified Desktop Support Technician
    MCTS Microsoft Windows Vista Configuration
    MCITP Enterprise Support Technician
    Profissional 5 Estrelas Microsoft
    http://carloscitrangulo.wordpress.com
    sábado, 23 de abril de 2011 04:24
  • Haroldo bom dia,

    Alguma novidade?

    Ajude o fórum a ficar organizado, por favor qualificar se seuproblema foi resolvido.

    Qualquer dúvida estoua disposição.

    Abraços,


    Carlos Carvalho Citrangulo Junior
    Microsoft Certified Professional
    Microsoft Certified Desktop Support Technician
    MCTS Microsoft Windows Vista Configuration
    MCITP Enterprise Support Technician
    Profissional 5 Estrelas Microsoft
    http://carloscitrangulo.wordpress.com
    quarta-feira, 27 de abril de 2011 03:33