Sub importa_texto_nome()
On Error GoTo erro
Dim Pasta As String
Dim Arquivo As String
Dim linha As Double
Dim registro As String
Dim vetor() As String
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = Application.DefaultFilePath & "\"
.Title = "Selecione a pasta"
.Show
If .SelectedItems.Count = 0 Then
Exit Sub
Else
Pasta = .SelectedItems(1) & "\"
End If
End With
Range("A:AA").Clear
Application.Cursor = xlWait
Application.ScreenUpdating = False
linha = 1
Arquivo = Dir(Pasta & Arquivo)
Do While Arquivo <> ""
Open Pasta & Arquivo For Input As #1
DoEvents
Do Until EOF(1)
DoEvents
Line Input #1, registro
vetor() = Split(registro, ";") 'Ajustar a quantidade de colunas de acordo com a necessidade
Cells(linha, 1) = vetor(0)
Cells(linha, 2) = vetor(1)
If linha = 1 Then
Cells(linha, 3) = "Arquivo"
Else
Cells(linha, 3) = Arquivo
End If
linha = linha + 1
Loop
Close #1
Arquivo = Dir
Loop
erro:
Application.ScreenUpdating = True
Application.Cursor = xlDefault
If Err.Number = 0 Then
MsgBox "A importação dos arquivos de texto foi concluída."
Else
MsgBox Err.Description, vbCritical
End If
Exit Sub
End Sub
Eventualmente dicas sobre outros programas, Windows e hardware.
sábado, 15 de julho de 2023
Importação de arquivos csv em lote - Excel VBA
quarta-feira, 26 de abril de 2023
Outlook VBA - capturar o link de uma imagem no corpo do e-mail
Deixando registrado aqui o código de uma necessidade pontual.
;-)
Sub CapturarAtributoTag()
Dim objMail As Outlook.MailItem
Set objMail = Application.ActiveExplorer.
Dim objHTMLDoc As MSHTML.HTMLDocument
Set objHTMLDoc = New MSHTML.HTMLDocument
objHTMLDoc.body.innerHTML = objMail.HTMLBody
Dim objImg As MSHTML.HTMLImg
Set objImg = objHTMLDoc.
MsgBox objImg.getAttribute("src")
End Sub
sexta-feira, 3 de março de 2023
Capturar a assinatura do Outlook pelo VBA
Naõ tenho certeza se este código ainda funciona, mas vou deixar aqui para registro antes de apagar dos meus backups.
;-)
Option Explicit
Dim assinatura As Variant
Public Function pega_assinatura(ByVal sFile As String) As String
'Dick Kusleika
Dim FSO As Object
Dim ts As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ts = FSO.GetFile(sFile).OpenAsTextStream(1, -2)
pega_assinatura = ts.ReadAll
ts.Close
End Function
Sub Cria_mensagem_HTML()
'Creates a new e-mail item and modifies its properties.
Dim olApp As Outlook.Application
Dim objMail As MailItem
Set olApp = Outlook.Application
'Create mail item
Set objMail = olApp.CreateItem(olMailItem)
assinatura = pega_assinatura("C:\Documents and Settings\" & Environ("username") & "\AppData\Roaming\Microsoft\Assinaturas\Paulo.htm")
With objMail
'Set body format to HTML
'a tag <br/> quebra linha
'a tag <strong></strong> formata o texto para negrito
.BodyFormat = olFormatHTML
.HTMLBody = "<HTML><H2>The body of this message will appear in HTML.</H2><BODY>Type the " & _
"<strong>message</strong><br/>Nova Linha</BODY><br/></HTML>" & assinatura
.Display
End With
End Sub
quarta-feira, 8 de fevereiro de 2023
Dicas para não perder código VBA
Segue aí uma dica para evitar perda de códigos VBA, que pode ocorrer se o personal.xlsb corromper ou mesmo se der problema no próprio computador.
Um dia o meu personal.xlsb corrompeu e eu perdi vários códigos porque não conseguia acessá-los mais e também não foi possível recuperar o arquivo, desde então parti para duas soluções:
1 - fazer backup do personal.xlsb periodicamente;
2 - exportar os módulos um a um em arquivos separados. Isso facilita também quando quero levar os códigos para outro computador, bastando apenas importá-los dentro do VBA.
Pesquisar este blog
Quem sou eu
- Kazu
- Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.