Ir ao conteúdo
  • Cadastre-se

Basole

Membro Pleno
  • Posts

    2.019
  • Cadastrado em

Tudo que Basole postou

  1. Opa desculpe estive 1/2 ocupado, pegou fácil o fio da meada... é isso ai mesmo, certinho !!! No arq. "Semana XX" eu nomei o intervalo [ $A$3:$P$500 ], como "tbProgramacao", e a macro 'enxerga' este intervalo como sendo uma tabela, então voce pode usar este mesmo lay-out (que estava usando anterirmente), que nao terá problemas. Caso os DADOS utrapassam a linha 500, voce deve ajustar esse intervalo. Caso for usar desta forma altere então no codigo, esta linha (abaixo), com o novo nome da tabela: SQL = "UPDATE [tbProgramacao]" & _ Abx. excel-3.zip
  2. Tudo bem relaxa meu brother Em uma tabela de banco de dados, voce não pode colocar nada acima dos campos e nem linhas vazias. Então eu exclui as linhas acima e onde tinha 'SEMANA 50' eu coloquei em uma caixa de texto suspensa, e fiz algumas inversões no codigo, agora deve funcionar de acordo. Abx. excel-2.zip
  3. Como as colunas de OM, Sub, etc são diferentes no BD e no formulário, não seria preciso especificar na macro onde elas ficam? Pelo que notei, só estão especificadas as do formulário (d, e, k). Não a macro encontra pelo nome do campo [ OM ], etc.....independente da coluna que estiver. Me parece que alterou este trecho do codigo e inseiu aspas simples para o campo que é numerico. Qualquer espaço ou aspas a + ou a - faz diferença. Pra mim aqui estra funcionando perfeitamente. Tente isso, altere a respect. linha por esta: " WHERE [Sub] =" & ws.Range("e" & i) & ";"
  4. Outra opção é este site que mostra a interface excel com uma porta serial, inclusive tem exemplo para download. http://dev.emcelettronica.com/serial-port-communication-excel-vba abx.
  5. Perfeito, funcionou!Porém, quando alterei os dados para os arquivos originais, deu o erro "Erro de compilação: O tipo definido pelo usuário não foi definido" Esse erro causado, informado acima é em função de que faltou (*** Habilitar a ref. microsoft activeX data objects x.xx library), que nao vem habilitado por defalut no excel. Abra o editor vba ( Alt + F11 ), vá na aba Ferramentas, selecione Referencias e marque a opção: "Microsoft activeX data objects 2.8 library", "2.7", ou a que estiver disponivel. Abaixo 'passei a limpo' o codigo de acordo c/ as inf. que você passou. Sub transfere() ' *** Habilitar a ref. microsoft activeX data objects x.xx library Dim Conn As New ADODB.Connection Dim mrs As New ADODB.Recordset Dim DBPath As String, sconnect As String Dim ws As Worksheet: Set ws = ActiveSheet Dim SQL As String Dim i As Long: i = 4 DBPath = "D:\Programação\Semana XX.xlsm" 'Redirecionei para o banco de dados. While ws.Range("d" & i).Value <> "" sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes;" Conn.Open sconnect SQL = "UPDATE [Programação$]" & _ " SET [OM] = " & ws.Range("d" & i).Value & _ ", [status] = '" & ws.Range("k" & i).Value & "'" & _ " WHERE =" & ws.Range("e" & i).Value i = i + 1 Set mrs = New ADODB.Recordset mrs.Open SQL, Conn Set mrs = Nothing Conn.Close Wend MsgBox "Dados atualizadono BD com sucesso!", 0, " SUCESSO" EndSub 'Abx.
  6. Veja agora, a macro vai atender a 2 criterios: Só atualizará o "Status" se -> valor [ = ] coluna A e valor [ = ] a coluna B. Abx. Sub AtualizaBD() ' *** Habilitar a ref. microsoft activeX data objects x.xx library Dim Conn As New ADODB.Connection Dim mrs As New ADODB.Recordset Dim DBPath As String, sconnect As String Dim ws As Worksheet: Set ws = ActiveSheet 'altere aqui sua plan(aba) ex.: [ Sheets("Form1") ] Dim SQL As String Dim i As Long: i = 2 'inicio de dados a partir da 2ª linha DBPath = ThisWorkbook.Path & "\exemplo.xlsx" ' altere aqui o diretorio do "arq. BD" - ex.: "C:\Temp\BD.xlsx" While ws.Range("a" & i).Value <> "" sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes;" Conn.Open sconnect SQL = "UPDATE [bD$]" & _ " SET [OM] = '" & ws.Range("a" & i).Value & "'" & _ ", [status] = '" & ws.Range("d" & i).Value & "'" & _ " WHERE =" & ws.Range("b" & i).Value & _ " And [Desc] = '" & ws.Range("c" & i).Value & "';" Debug.Print SQL i = i + 1 'soma a linha atual a um linha abaixo 'Set mrs = New ADODB.Recordset mrs.Open SQL, Conn Set mrs = Nothing' limpa o recordset Conn.Close 'fecha conexao Wend' faz o loop MsgBox "Dados atualizadono BD com sucesso!", 0, " SUCESSO" EndSub
  7. Só tem um detalhe, ao atualizar os dados no BD, é preciso que a macro compare a coluna A e B. Pelos testes que fiz, está comparando apenas a A. Não entendi, somente atualizar o "status" se as coluna A e B forem iguais as coluna A e B do BD, é isso?
  8. Esta macro atualiza o BD sem a necessidade de abrir o arquivo. Nos arquivos (Pasta de Trabalho) Form1 e Form2, (alt+ f11) e crie um modulo e copie e cole o codigo abaixo. E edite o codigo (no local indicado), para alterar o diretorio do seu arquivo (BD). Sub AtualizaBD() ' habilitado a ref. microsoft activeX data objects x.xx library Dim Conn As New ADODB.Connection Dim mrs As New ADODB.Recordset Dim DBPath As String, sconnect As String Dim ws As Worksheet: Set ws = ActiveSheet 'altere aqui sua plan (aba) Dim SQL As String Dim i As Long: i = 2 'inicio de dados a partir da 2ª linha DBPath = ThisWorkbook.FullName ' altere aqui o diretorio do "arq. BD" - ex.: "C:\Temp\BD.xlsx" While ws.Range("a" & i).Value <> "" sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes;" Conn.Open sconnect SQL = "UPDATE [bD$]" & _ " SET [OM] ='" & ws.Range("a" & i).Value & "'" & _ ", [status] = '" & ws.Range("d" & i).Value & "'" & _ " WHERE [Desc] = '" & ws.Range("c" & i).Value & "'" i = i + 1 'soma a linha atual a um linha abaixo Set mrs = New ADODB.Recordset mrs.Open SQL, Conn Set mrs = Nothing ' limpa o recordset Conn.Close 'fecha conexao Wend ' faz o loop MsgBox "Dados atualizadono BD com sucesso!", 0, " SUCESSO" End Sub exemplo-v1.rar
  9. tiagolpf, o que quer dizer form1, Form2.? Se puder anexar um exemplo destacando o resultado que deseja, facilita a quem possa ajuda-lo no entendimento do que voce precisa, abx.
  10. Veja se é isso que precisa: E obrigado pelo 'fera' , (-), ainda estou engatinhando..rsssss Abx. Sub imprimir_capa() ' imprimir_capa Macro Dim cnc As String Application.ScreenUpdating = False If Sheets("RATEIO SIMP.").[C12].Value = "" Then MsgBox "INSIRA A NUMERAÇÃO DGV" Else If Sheets("RATEIO SIMP.").[E13].Value = "" Then MsgBox "INSIRA A DATA DO DGV" Else Sheets(Array("CAPA", "RATEIO")).Select Sheets("CAPA").Activate cnc = Application.Dialogs(xlDialogPrinterSetup).Show If cnc = False Then MsgBox "Impressão cancelada !!", 64, "AVISO" Exit Sub Else ActiveWindow.SelectedSheets.PrintOut Copies:=1 Application.ScreenUpdating = True Sheets("RATEIO SIMP.").Select MsgBox "IMPRESSÃO COM SUCESSO!" End If Application.ScreenUpdating = True End If End If End Sub
  11. tente isso: Range("d4").Interior.Color = Range("a1").Interior.Color
  12. Pois é, a coisa mais chata que eu acho quando. se programa é ter que criar dados para poder fazer os teste do mais proximo da realidade ou seja dos dados reais. Mas dei um jeito aqui e repeti alguns dados e colunas para preencher todo intervalo envolvido. Mais dificuldades a parte, vamos la, nessa versão que fiz no trabalho, que roda no office 2007 ou > e que provavelmente, nao vai funcionar (trazer todos os dados das colunas [ AP a BL ], na sua versao 2003, pois o metodo de inserir texto no shape (pop-up), com mais de 255 caracteres é diferente. Sendo assim, mais tarde se der tempo hj. em casa (pois lá tenho o 2003 numa maq virtual), vou codificar p/ office 2003. No momento disponibilizo em anexo [2007>] , para quem se interessar. Abx. Pop-Pup-2007-v4.xls
  13. Ae my brother como falei num companhei os post nao. Parece que tenho boas noticias. Vai separando os Balas.. Se puder disponibilizar para fazer uns teste aqui, um exemplo com os dados de pelo menos unas 15 a 20 linhas, o intervalo de digamos ("Ap5" a "BL15" ) e sem repetir dados. Pois o exemplo que baixei so tem dados na coluna "AP" abx.
  14. agora vai: Sub imprimir_capa()' imprimir_capa Macro Application.ScreenUpdating = False If Sheets("RATEIO SIMP.").[E14].Value = "" Then Exit Sub Else Sheets(Array("CAPA", "RATEIO")).Select Sheets("CAPA").Activate ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" Sheets("RATEIO SIMP.").Select MsgBox "IMPRESSÃO COM SUCESSO!", 0, "SUCESSO" End If Application.ScreenUpdating = TrueEnd Sub
  15. Poié brother é quase isso véiii na idade no esqueleto zero bala cara d quem toma todassss acertou em cheio !!!!!bora Bom a validação é simples e é so alterar no codigo onde esta: Range("A1"), altere para Range("D4") ,por exemplo. Eu incluir mais alguns recursos que fiz para um outro trabalho, como escolher a fonte e tam. altere tbem. para as celulas que desejar. E tbém as Linhas tem q ser no máximo com 253 caracteres, ou seja, o que passar disso, continuar com quebra automática pra linha de baixo ok!! Puts. ce num falou que teria mais alguma (dados), coisa nas colunas alem de datas. Com o codigo de classificação de colunas por ordem crescente, se inserir mais informações nas celulas das colunas ref. o pop-up vai mostrar o resultado como "00:00:00". Para classificar da forma que esta querendo com outras informações inseridas juntamente com a data, é necessario re-escrever o codigo e estudar algumas possibilidades de classificação dessas colunas ou linhas do intervalo "ap:bl" Pop-Pup-2003-v3.xls
  16. Sub imprimir()' imprimir MacroIf Plan1.[a1].value ="" then 'substitua por sua celula e planExit subElse ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"End IfEnd Sub juntando e misturando todo.fica esse trem ai acima.
  17. Tente algo como: Sub Verificar()If Plan1.[a1].value ="" then 'substitua por sua celula e planExit sub Else' Sua Macro 'insira o nome da sua macro aqui s/ a aspa simples no inicio da linhaEnd IfEnd Sub
  18. veja esse passo-a-passo se te ajuda: http://www.techrepublic.com/blog/windows-and-office/how-to-populate-a-dependent-dropdown-list-in-word/
  19. Latinha.???? hahahaaa to falando de garrafa. qum esse calor de rachaa, 1 latinha num dah nem pra molha os beiço heheheehee. Tente expor melhor seria essa a disposição dos dados que está querendo???????? (vide image abaixo): O 2003, tem uns bugs c/ a validação de dados, por essa razão que inseri um combobox, mas voce pode tentar inserir a validaçao dai, o importante é a celula "A1" estar inserido o valor correto (grafia) no caso as cores. Sim substitua no codigo toda referencia de "PLAN1", que estiver entre aspas, para o nome da sua respectiva Plan.
  20. Ae brother, vai separando umas caixas bem gelada!!! pois todo esse trampo.. só tomando umas.... Tava mexendo numas coisas antigas e achei o cd antigo (que nem o velho aqui), todo riscado, mas consegui instalar numa maq. virtual o 2003, e estou conseguindo testa-lo. Num acompanhei os outros post, mas veja lá se é isso que queria. abx. . Pop-Pup-2003-v2.xls
  21. Olá jcgmc, se me deve uma(s) cerveja. Testei no 2003 funcionou, veja se na sua versão roda bem. abx. Pop-Pup-2003.xls
  22. Segue em anexo exemplo de integração excel + access baixado na net, Veja se consegue adaptar a suas necessidades. Infelizmente ele nao fala portugues. Control de Stock.zip
  23. Segue me anexo um exemplo c/ o calendario ("Microsoft Date and TIme Picker Control 6.0..") inserido. Coloquei algumas imagens, p/ ajudar a entender o procedimento. Pasta1.xlsx
  24. É bem simples. Eu uso o win7 (32b),eu abri Excel, fui na aba ->Desenvolvedor-> Inserir Controles (icone c/ 2 ferramentas)-> clickei no icone 'Mais Controles', e procurei por ordem alfabetica, e selecionei o "Microsoft Date and TIme Picker Control 6.0" e OK.
  25. O recurso "Microsoft Date and TIme Picker Control 6.0" (que faz o que voce quer), só tem no office<2007, no office 2010 vem c/ o "Microsoft MonthView Control", (tem um comportamento diferente), acredito que no 2013 tbem. Caso seu offcice seja 32 bits, voce pode baixar (anexo), inserir na pasta C;\Windows\System32 e registra-lo (c/ o CMD regsvr32 mscomct2.ocx), que estará habilitado automaticamente na caixa de ferramentas. MSCOMCT2.zip

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!