Ir para conteúdo
Fórum Script Brasil

João.Neto

Membros
  • Total de itens

    139
  • Registro em

  • Última visita

Sobre João.Neto

  • Data de Nascimento 26/12/1987

Contatos

  • Website URL
    http://officevbavsto.blogspot.com/
  • ICQ
    0

Perfil

  • Gender
    Male
  • Location
    SP - Graaaandeee ABC
  • Interests
    - VBA<br />- Excel<br />- Estatistica<br />- ASP<br />- VB6<br />- JAVA

João.Neto's Achievements

0

Reputação

  1. Creio que sim, mas acho interessante na empresa do cliente ter pelo menos uma licença de Access ou é melhor você confirmar isso diretamente com a Microsoft.
  2. Veja no blog http://officevbavsto.blogspot.com/. Outras coisas que são importantes para você aprender: HTML, CSS e javascript (essas pesquise em apostilas ou livros).
  3. Já desenvolvi usando Access como banco de dados e Excel como front-end, segue minha experiência nesse assunto: - Você só consegue armazer até 2 Gb de dados por arquivo .mdb, portanto estruture muito bem suas tabelas (faltou nas aulas de modelagem de dados, hum?!); - Você tem um limite de até 8 conexões simultâneas; - Use com até 30 usuários, mais do que isso migre para um sistema robusto (SQL Server com C# ou PHP com mySQL); - No seu código abra a conexão e feche o quanto antes, nunca mantenha uma conexão. Só abra conexão se realmente necessário; - Não precisa ter Access instalado na máquina do usuário, você pode colocar o arquivo .mdb em uma rede onde todos os usuários acessam; - Só é interessante ter Access em uma máquina apenas para efeito de manutenção; - Sempre execute o recurso de "Compactar e Restaurar Banco" (fora de horário comercial), pois assim seu banco ficará compacto e terá mais espaço disponível e otimizado; - O banco de dados pode corromper-se facilmente ou travar e ficar como somente leitura dependendo de n fatores (o último é reversível, o primeiro em alguns casos não); - Crie um arquivo .mdb somente para tabelas e outro para as VIEWS e MACROS, pois assim seu banco de dados ficará mais leve; - Quanto mais arquivo .mdb divididos melhos, exemplo: um arquivo para guardar os usuários e senha, um arquivo para guardar assuntos do comercial, outro para assuntos do financeiro e etc. Se você precisar fazer JOIN entre tabelas de arquivos .mdb diferentes, crie um arquivo .mdb apartado somente para as consultas vinculando as tabelas. Enfim, não exagere no uso do Access, pois mais cedo ou mais tarde ele vai te deixar na mão. :(
  4. Tenta o seguinte: total_dias = DateDiff("d",data1,data2)
  5. ok então. Fiz duas modificações em seu código (em negrito) 'Declara variáveis. Dim APLICATIVOEXCEL As Excel.Application Dim PASTA As Excel.Workbook Dim PLANILHA As Excel.Worksheet 'Carrega o Excel. Set APLICATIVOEXCEL = CreateObject("Excel.Application") 'Limitar o número de planilhas no novo arquivo excel gerado. APLICATIVOEXCEL.SheetsInNewWorkbook = 1 'Cria uma pasta de trabalho. Set PASTA = APLICATIVOEXCEL.Workbooks.Add 'Define uma nova planilha. Set PLANILHA = APLICATIVOEXCEL.ActiveWorkbook.Worksheets(1) 'Define o nome da planilha. PLANILHA.Name = "DADOS" 'Aplicação e planilha visíveis. APLICATIVOEXCEL.Visible = True PLANILHA.Visible = True
  6. Oi, segue código VBA: Application.SheetsInNewWorkbook = 1 B)
  7. João.Neto

    VBA interagindo com IE

    Boas notícias, achei a solução, ou melhor, as duas soluções. 1) "A outra duvida e meio que relacionada a essa, gostaria de saber como faco para controla uma janela já aberta do windows (IE mesmo) sem ter que criar um novo objeto". Sim, vide código abaixo: Function GetOpenIEByURL() 'Adicionar referência ao 'Microsoft Internet Controls' Dim ie As InternetExplorer Dim objShellWindows As New SHDocVw.ShellWindows i_URL = "http://www.google.com.br/" On Error Resume Next For Each ie In objShellWindows If TypeName(ie.Document) = "HTMLDocument" Then If ie.Document.URL = i_URL Then ie.Document.all.Item("q").innerText = "Teste" End If End If Next End Function Esse cara aqui SHDocVw.ShellWindows permite você percorrer todas as instâncias de Internet Explorer abertas em sua máquina e fazer um loop usando o objeto InternetExplorer. 2) "Tenho uma macro que loga no meu email pessoal e envia um email para o meu email do trabalho, porem, gostaria de saber como posso anexar um arquivo nesse email, visto que, quando foi anexar um arquivo ele sai da tela do IE e abre outra janela, o que quero saber é como posso controlar essa janela." Eu entendi que você esteja falando daquela janela do Windows "Selecionar arquivo", certo? Use o código abaixo. Só um ponto de atenção é mudar o nome da janela e do botão "Abrir" no código, pois eu fiz no Windows em Inglês, ok? Private Declare Function GetWindow Lib "user32" (ByVal hWnd _ As Long, ByVal wFlag As Long) As Long Private Declare Function GetWindowText Lib "user32" Alias _ "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As _ String, ByVal cch As Long) As Long Private Declare Function FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal lpClassName As String, ByVal _ lpWindowName As String) As Long Private Declare Function GetClassName Lib "user32" Alias _ "GetClassNameA" (ByVal hWnd As Long, ByVal _ lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal _ wParam As Long, lParam As Any) As Long Private Declare Function PostMessage Lib "user32" Alias _ "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long Const WM_CLOSE = &H10 Const WM_SETTEXT = &HC Const WM_SYSKEYDOWN = &H104 Const WM_RBUTTONDOWN = &H204 Const WS_MAXIMIZE = &H1000000 Const WM_CHAR = &H102 Const BM_CLICK As Long = &HF5& Private Const GW_HWNDNEXT = 2& Private Const GW_CHILD = 5& Private Function GetFirstTextBoxHandle(nFormCaption As String, _ pClass As String, Optional nTextboxText As String) As Long Dim iHwnd As Long Dim iSize As Long Dim iClass As String Dim iText As String iHwnd = FindWindow(vbNullString, nFormCaption) If iHwnd Then iHwnd = GetWindow(iHwnd, GW_CHILD) Do While iHwnd iClass = Space(64) iSize = GetClassName(iHwnd, iClass, Len(iClass)) If iSize > 0 Then iClass = Left(iClass, iSize) 'If iClass = "ThunderTextBox" Or iClass = "ComboBoxEx32" Then 'Debug.Print iClass If iClass = pClass Then If nTextboxText <> "" Then iText = Space(100) GetWindowText iHwnd, iText, 100& iText = Left(iText, InStr(iText, _ Chr(0)) - 1) 'Debug.Print iText If iText = nTextboxText Then GetFirstTextBoxHandle = iHwnd Exit Function End If Else GetFirstTextBoxHandle = iHwnd Exit Function End If End If End If iHwnd = GetWindow(iHwnd, GW_HWNDNEXT) Loop End If End Function Private Sub Command1_Click() Dim WINDOWCAPTION As String WINDOWCAPTION = "Choose file" SendMessage GetFirstTextBoxHandle(WINDOWCAPTION, "ComboBoxEx32"), WM_SETTEXT, ByVal 0, ByVal "Aqui vai o nome do anexo e endereço" PostMessage GetFirstTextBoxHandle(WINDOWCAPTION, "Button", "&Open"), BM_CLICK, 0, 0 End Sub Se teu Windows não for em inglês você vai ter que mudar o valor da variável WINDOWCAPTION para o nome que aparece na janela de selecionar arquivo e o nome do botão "Abrir" (está como "&Open") na linha de código abaixo: PostMessage GetFirstTextBoxHandle(WINDOWCAPTION, "Button", "&Open"), BM_CLICK, 0, 0 Espero ter ajudado (espero mesmo, porque deu um trabalho achar isso)... mas replicar conhecimento nunca é demais. Abraços
  8. Esse código pode te dar uma ajudar, se eu endendi direito o teu problema: Image1.Picture = LoadPicture("d:\1.bmp")
  9. É possível. Grave os valores de configuração em um lugar da sua planilha e quando for carregar o Form atribua os valores gravados nessa planilha nos campos que você deseja.
  10. João.Neto

    PROCV COM MULTIPLICAÇÃO

    É por causa das aspas duplas Dim percentual as Double 'Percentual não é número inteiro! <_< percentual = txtpercentual.value activecell.formular1c1 = "=VLOOKUP(RC[-3],listaOficial,4,0) * " & Replace(percentual, ",", ".") 'Tem que usar o formato de número decimal americano onde se usa ponto como separador decimal Testa esse código e responde se deu certo.
  11. João.Neto

    VBA interagindo com IE

    Posta o código. Mas já te adianto de que você vai precisar usar duas APIs do Windows para fazer isso: SendMessage e GetWindow. Vai estudando estas APIs enquanto eu tento achar uma solução também com base nestas APIs
  12. João.Neto

    MSGbox PopUp =]

    Tenta appactivate thisworkbook.name
  13. Tem como disponibilizar seu código para eu ver?
  14. Já verificou se as macros estão habilitadas em outros computadores.
  15. Declara o objeto fora da subrotina. Assim: Dim uorde As Object 'uorde pois se trata de um documento do word Sub late() Set uorde = CreateObject("Word.Application") With uorde .Visible = True .Workbooks.Add End With End Sub
×
×
  • Criar Novo...