Notifications
Clear all

Abrir página da web ao abrir planilha no Office 64 bits

8 Posts
4 Usuários
0 Reactions
1,538 Visualizações
(@evilmaax)
Posts: 82
Trusted Member
Topic starter
 

Olá galera

A dúvida da vez é a seguinte: Tenho um código que faz com que determinada planilha seja aberta cada vez que a planilha for aberta também.
O código é o seguinte:

Private Declare Function ScriptInternet _
Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal Operation As String, ByVal Filename As String, _
Optional ByVal Parameters As String, Optional ByVal Directory As String, _
Optional ByVal WindowStylw As Long = vbMinimizedFocus) As Long

Private Sub Workbook_Open()
Call OpenUrl
 
End Sub

Public Sub OpenUrl()
Dim iAcesso As Long
iAcesso = ScriptInternet(0, "Open", "www.google.com.br")
End Sub

Porém, ele só funciona em ambientes Office 32 bits, se o usuário roda a planilha em Office 64 bits recebe a mensagem que deve mudar para PtrSafe.

Pergunta: Há um método de fazer isso e deixar funcionando tanto para as versões 32, como 64 bits?

Obrigado mais uma vez

 
Postado : 10/02/2017 7:27 am
(@skulden)
Posts: 170
Estimable Member
 

Sub AbrirNavegador()

Dim browser As Variant

    Set browser = CreateObject("InternetExplorer.Application")
    browser.Navigate ("www.google.com")
    browser.Visible = True


End Sub







Se a resposta lhe foi útil, clique no joinha!

 
Postado : 10/02/2017 8:20 am
(@evilmaax)
Posts: 82
Trusted Member
Topic starter
 

    Set browser = CreateObject("InternetExplorer.Application")

Funcionou certinho, mas tem como mudar a linha acima e usar o navegador padrão do computador e não somente o Internet Explorer?

 
Postado : 10/02/2017 10:16 am
pfarias
(@pfarias)
Posts: 265
Reputable Member
 
#If VBA7 Then
        Private Declare PtrSafe Function ScriptInternet _
        Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, _
        ByVal Operation As String, ByVal Filename As String, _
        Optional ByVal Parameters As String, Optional ByVal Directory As String, _
        Optional ByVal WindowStylw As Long = vbMinimizedFocus) As Long

#Else
        Private Declare Function ScriptInternet _
        Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, _
        ByVal Operation As String, ByVal Filename As String, _
        Optional ByVal Parameters As String, Optional ByVal Directory As String, _
        Optional ByVal WindowStylw As Long = vbMinimizedFocus) As Long
#End If

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 10/02/2017 11:06 am
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

Funcionou certinho, mas tem como mudar a linha acima e usar o navegador padrão do computador e não somente o Internet Explorer?

Tem que ser utilizado o API ShellExecute.

Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Ai é só chama-lo.

Sub Botão()
Dim ExeBt As Long
ExeBt = ShellExecute(hwnd, vbNullString, "http://www.planilhando.com.br", vbNullString, "c:", SW_SHOWNORMAL)
End Sub

Fonte:http://www.bufaloinfo.com.br/dicas.aspx?cod=141

Como você está tendo problema com 64-bit, pode declarar assim:

#If VBA7 Then
    Private Declare Function ShellExecute Lib "shell32.dll" _
    Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
#Else
    Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" _
    Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
#End If

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 10/02/2017 11:14 am
Syrax
(@syrax)
Posts: 160
Estimable Member
 

pq não usar apenas o shell?
chama o navegador padrão, e abre a página especificada

Shell ("cmd.exe /c start www.google.com.br")

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 11/02/2017 4:41 pm
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

pq não usar apenas o shell?
chama o navegador padrão, e abre a página especificada

Shell ("cmd.exe /c start www.google.com.br")

QUe irado! Nem sabia do truque. Show. Valeu.

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 13/02/2017 7:42 am
(@evilmaax)
Posts: 82
Trusted Member
Topic starter
 

Opa galera.

Obrigado a todos pela contribuição e troca de experiências.
Consegui resolver da seguinte maneira:

Sub AbrirNavegador()

Dim browser As Variant

    CreateObject("WScript.Shell").Run "www.google.com"
    
End Sub

Funciona em 32 e 64 bits.

Abraços

 
Postado : 13/02/2017 8:58 am