NAO CONSIGO INSERIR UM COMMON DIALOG - OFFICE 2003

USUARIO.EXCLUIDOS 26/05/2005 08:59:37
#85289
Comecei a usar o OFFICE 2003, e no excel não consigo criar um Common Dialog. Aparece-me o seguinte aviso:

"Cannot insert object"

Já aconteceu isto a alguem?

Agradeço desde já uma pequena dica.
USUARIO.EXCLUIDOS 26/05/2005 09:11:37
#85291
cara.. isso é coisa de proteção de uso... como certamente você não pagou por esse pacote a nível de desenvolvimento.. sempre dará esse erro... o que lhe indico é uma commom dialog feita ate mesmo por codigo...

coloque isso num modulo...


Public Enum OpenSave
dlgOpen = 1
dlgSave = 2
End Enum

Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Public Enum dialogFlags
cdlOFNAllowMultiselect = &H200 '512
cdlOFNCreatePrompt = &H2000 '8192
cdlOFNExplorer = &H80000 '524288
cdlOFNExtensionDifferent = &H400 '1024
cdlOFNFileMustExist = &H1000 '4096
cdlOFNHelpButton = &H10 '16
cdlOFNHideReadOnly = 4
cdlOFNLongNames = &H200000 '2097152
cdlOFNNoChangeDir = 8
cdlOFNNoDereferenceLinks = &H100000 '1048576
cdlOFNNoLongNames = &H40000 '262144
cdlOFNNoReadOnlyReturn = &H8000 '32768
cdlOFNNoValidate = &H100 '256
cdlOFNOverwritePrompt = 2
cdlOFNPathMustExist = &H800 '2048
cdlOFNReadOnly = 1
cdlOFNShareAware = &H4000 '16384
End Enum
Function OpenDialog(Optional ByVal filter As String = "Todos os arquivos(*.*)" & vbNullChar & "*.*")
Dim OFN As OPENFILENAME
OFN.lStructSize = Len(OFN)
OFN.lpstrFilter = filter
OFN.nFilterIndex = 1
OFN.lpstrFile = Space$(254)
OFN.nMaxFile = 255
OFN.lpstrFileTitle = Space$(254)
OFN.nMaxFileTitle = 255
OFN.lpstrInitialDir = IIf(DefaultDir = "", CurDir, DefaultDir)
OFN.lpstrTitle = "Selecione um arquivo"
OFN.flags = cdlOFNHideReadOnly Or IIf(PromptOverwrite = True, cdlOFNOverwritePrompt, 0)

OpenDialog = GetOpenFileName(OFN)
If (OpenDialog) Then
If Dir$(Trim$(OFN.lpstrFile)) <> "" Then
OpenDialog = Left$(OFN.lpstrFile, InStr(1, OFN.lpstrFile, Chr$(0), vbTextCompare) - 1)
End If
Else
OpenDialog = ""
End If
End Function


e logo basta chamar por esse procedimento... e altere os dados ::::
esse codigo ele usa um filtro de listagem para planilhas do excel..

arquivo = OpenDialog("Planilhas do Excel(*.xls)" & vbNullChar & "*.xls")

[S23]
e lembrando... ja tive muito problema por isso.. hehehe;...
USUARIO.EXCLUIDOS 26/05/2005 10:12:10
#85295
Excelente dica Sibem! Funciona muito bem no Excel.

Agora tou a tentar usa-la no autoCad. Porém aqui ela tem problemas. No autocade ela não reconhece a declaração "Public Enum XxXxXx".

Que devo fazer
USUARIO.EXCLUIDOS 26/05/2005 14:29:10
#85343
Estou quase!!! '

Já dei a volta no autoCad tambem!!
Agora o meu ultimo problema é que este código dá apenas para obter o caminho e nome de ficheiros já existente.

Eu preciso de um que dê para criar um ficheiro novo, do tipo "Guardar".
Tópico encerrado , respostas não são mais permitidas