none
Salvar planilhas em TXT com critério! RRS feed

  • Pergunta

  • Ola pessoal , preciso muito a ajuda de vocês.

    Eu tenho uma planilha de importação que salva varias sheets no formato txt (Na verdade ele salva todas as sheets da Planilha em TXT).

    Entretanto eu preciso atribuir um código a mais que seria salvar somente as sheets que eu selecionar, segue o código que estou utilizando abaixo:

                                          

    Public Sub GERATXT()

    On Error Resume Next
    Dim planilha(0 To 60) As String
    Dim mPathSave As String
    Dim mPlan As String
    mPathSave = ThisWorkbook.Path

    ActiveWorkbook.Save

    ' 01,20,21... = nome da sheets

    planilha(1) = "01"
    planilha(2) = "20"
    planilha(3) = "21"
    planilha(4) = "22"
    planilha(5) = "23"
    planilha(6) = "24"
    planilha(7) = "40"
    planilha(8) = "41"
    planilha(9) = "42"
    planilha(10) = "43"
    planilha(11) = "44"
    planilha(12) = "45"
    planilha(13) = "50"
    planilha(14) = "51"

    For i = 1 To 60

        mPlan = planilha(i)
        Sheets(planilha(i)).Select

        Range("C1") = Format(Range("C1"), "dd/mm/yyyy")

        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs mPathSave & "\" & mPlan & ".txt", _
            FileFormat:=xlText, CreateBackup:=False

    Next i

    ActiveWorkbook.Close

    End Sub

    Alguém por favor poderia me ajudar a incrementar um código com algumas caixas de seleção ou alguma outra forma para que possa selecionar apenas as sheets que eu quero ?

    Desde já grato

    segunda-feira, 7 de setembro de 2015 18:55

Respostas

  • Olá Cezário,

    Você pode usar um inputbox, que é uma janela onde o usuário digita um valor.

    Pensei no usuário digitar o nome da planilha que deseja exportar nesse inputbox.

    Essa inputbox seria atribuída a uma variável.

    Ex:

    Dim resp as variant
    
    resp = inputbox("Qual planilha deseja exportar")
    
    Sheets(resp).Select
    
      ActiveWorkbook.SaveAs mPathSave & "\" & mPlan & ".txt", _
            FileFormat:=xlText, CreateBackup:=False

    Caso seja mais de uma planilha que deseja imprimir por vez, o usuário pode digitar na inputbox separado por vírgula.

    Ex: 3, 4, 5, 6

    Armazene tudo num array e depois você pode usar a função split (https://msdn.microsoft.com/pt-br/library/6x627e5f(v=VS.90).aspx) para separar os valores e imprimir uma de cada vez.

    Caso deseje fazer via formulário, diga-nos como estruturou o formulário e apresentamos as opções.

    Abs


    quarta-feira, 9 de setembro de 2015 16:44