Sim, e porque não voltar ao básico? Perfect!
Revemos o princípio e melhoramos o presente com excelentes perspectivas para o futuro.
Pronto para COPIAR e COLAR - Abra a caixa de diálogo e escolha o arquivo que desejar para o propósito que preferir.
Primeira opção
Não é raro precisarmos pedir alguma informação para o usuário. Qual a melhor maneira de fazer isso se não usar uma caixa de diálogo?
Sub UserInput()
Dim iReply As Integer
iReply = MsgBox(Prompt:="Do you wish to run the 'update' Macro", _
Buttons:=vbYesNoCancel, Title:="UPDATE MACRO")
If iReply = vbYes Then
Run "UpdateMacro"
ElseIf iReply = vbNo Then
'Do Other Stuff
Else 'They cancelled (VbCancel)
Exit Sub
End If
End Sub
Segunda opção
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
Agora suponhamos que você queira submeter os dados entrados a uma análise prévia e direcionamento...Ahhh, isso seria interessante não é mesmo? Tente isso:
Sub GetUserName()
Dim strName As String
strName = InputBox(Prompt:="Seu nome,por favor.", _
Title:="Digite o seu Nome", Default:="Digite seu nome aqui")
If strName = " Digite seu nome aqui " Or _
strName = vbNullString Then
Exit Sub
Else
Select Case strName
Case "André"
'Faça as coisas para o perfil André
Case "Luiz"
'Faça as coisas para o perfil Luiz
Case "Bernardes"
'Faça as coisas para o perfil Bernardes
Case Else
'Faça as coisas para uns perfis mais genéricos
End Select
End If
End Sub
Terceira opção
Dim strFilePath As String, strPath As String
Dim fdgO As FileDialog, varSel As Variant
MsgBox "A tabela não está correta, " &
_
"e o arquivo de dados não pôde ser achado na respectiva pasta: " & _
strPath & ". Por favor,localize a pasta que contenha dados de exemplo " & _
".: Dialog.", vbInformation, gstrAppTitle
Set fdgO = Application.FileDialog(msoFileDialogFilePicker)
With fdgO
.AllowMultiSelect = False
.Title = "Localize a pasta com dados de exemplo"
.ButtonName = "Escolha"
.Filters.Clear
.Filters.Add "All Files", "*.*", 1
.FilterIndex = 1
.InitialFileName = strPath
.InitialView = msoFileDialogViewDetails
If .Show = 0 Then
MsgBox "Houve falha para selecionar o arquivo correto. ATENÇÃO: " & _
"Você talvez não tenha aberto uma tabela conectada a aplicação. " & _
" Você pode re-abrir este formulário ou " & _
"inicie o formulário, tentando novamente.", vbCritical,
gstrAppTitle
Let CheckConnect = False
Exit Function
End If
Let strFilePath = .SelectedItems(1)
End With
Let strPath = Left(strFilePath, InStrRev(strFilePath, "\") - 1)
Let varSel = AttachAgain(strPath)
Sub GetDat ()
' Posiciona num local específico.
ChDrive "C: \"
ChDir "C: \ Teste \"
Let FileToOpen = Application.GetOpenFilename _
(Title:="Por favor escolha o arquivo a importar:", FileFilter:="Arquivos Excel *.xls (*.xls),")''
If FileToOpen = False Then
MsgBox "Arquivo não especificado!", vbExclamation, ":. A&A"
Exit Sub
Else
Workbooks.Open Filename:=FileToOpen
End If
End Sub
Tags: VBA, Dialog box, message, mensagem, caixa de diálogo