
DANYY
Membros-
Total de itens
67 -
Registro em
-
Última visita
Tudo que DANYY postou
-
Boa tarde Benhur e obrigada pela resposta. Mas ao colocar o tratamento de erro quando não localizado a variavel a macro não deveria ser direcionada a ler novamente a planilha de desconto e fazer o loop no proximo registro??
-
Boa tarde a todos!! Criei uma macro que le a célula ativa de uma planilha armazena o valor em uma variavel e procura esse valor em outra planilha. Esta funcionando corretamente até o momento que um dos valores localizados não é encontrado na planilha de pesquisa gerando o erro 91. Segue a macro, sendo a planilha Relatorio Desconto.xlsx a planilha onde contem o valor que deve ser pesquisado na planilha Retorno pmsp.xlsm. Ao depurar o código o erro aparece na linha selection.find Segue: Sub desconto() Dim ra As String Windows("RELATORIO DESCONTO.XLSX").Activate 'abre o arquivo de descontos Range("A2").Select 'seleciona celula A2 Do While ActiveCell.Value <> "" ra = ActiveCell.Value Windows("RETORNO PMSP.xlsm").Activate Columns("AV:AV").Select On Error GoTo trataerro selection.Find(What:=ra, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=True, SearchFormat:=False).Activate ActiveCell.Offset(0, 7).Select Windows("RELATORIO DESCONTO.xlsx").Activate ActiveCell.Offset(0, 2).Select Selection.Copy ActiveCell.Offset(0, -2).Select Windows("RETORNO PMSP.xlsm").Activate ActiveSheet.Paste Application.CutCopyMode = False ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=+RC[-29]-RC[-1]" trataerro: Windows("RELATORIO DESCONTO.XLSX").Activate ActiveCell.Offset(1, 0).Select Loop End Sub
-
Ok, muito obrigada!! o problema foi resolvido!!
-
Criei uma planilha e em workbook.open inseri o código - application.visible = false e userform1.show; para que ao abrir essa pasta de trabalho a mesma fique oculta e dessa forma rode apenas o formulário. Esta funcionando legal. Porém se tem outros arquivos do excel aberto na maquina enquanto rodo essa planilha com esse codigo a outra planilha fica oculta também. gostaria que ficasse oculta apenas a planilha que tem o formulário.
-
Criei uma planilha e em workbook.open inseri o código - application.visible = false e userform1.show; para que ao abrir essa planilha o excel fique oculto e rode apenas o formulário. Esta funcionando legal. Porém se tem outros arquivo do excel na maquina aberto enquanto rodo essa planilha com esse codigo a outra planilha fica oculta também. gostaria que ficasse oculta apenas a planilha que tem o formulário.
-
Pessoal eu consegui alterar para ponto utilizando o seguinte codigo: valor = Replace(valor, ",", ".") Porém ainda tem um problema.. os valores que não tem centavos por exemplo o valor de 120,00, no arquivo texto deveria gravar 0000000000120.00 e no caso esta gravando 0000000000000120 Como devo proceder para que grave os valores considerando os centavos? Obrigada!
-
Boa tarde, criei uma macro onde gravo os valores das celulas do excel em um arquivo texto. Nas celulas referente aos valores que preciso gravar no arquivo texto, o formato esta de numero negativo e com virgula, preciso que seja ponto e não virgula.. utilizei o seguinte codigo para que ao gravar o valor no arquivo texto ele preencha com 16 caracteres e zeros a esquerda: valor = Right(complemento & (ActiveCell.Offset(0, 2).Value * -1), 16) esse codigo esta funcionando corretamente, porem preciso formatar esse valor para que o mesmo grave no arquivo texto com ponto e não com virgula.. Como devo proceder? Desde já agradeço!
-
Olá pessoal, criei uma macro onde o sistema pega a data que esta em uma celula do excel e grava em um arquivo texto. Esta funcionando corretamente, porem preciso gravar a data no arquivo texto sem o separador /. Como devo proceder? Agradeço desde já!
-
Ola pessoal, estou com o seguinte problema, montei a macro a seguir onde preciso que ela pegue o valor somente do que esta definido como TARIFA e TAR, na coluna B e salve no arquivo texto o valor correspondente a essa tarifa: Sub tarifa() Dim valor As String Dim tarifa As String Dim arquivo As String arquivo = "c:\teste.txt" Open arquivo For Append As #1 Columns("A:E").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$E$54").AutoFilter Field:=2, Criteria1:="=*TAR*", _ Operator:=xlAnd, Criteria2:="=*TARIFA*" Do While ActiveCell.Offset(1, 0).Value <> "" Cells.Find(What:="TAR", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=False).Activate valor = ActiveCell.Offset(0, 2).Range("A1").Value * -1 Print #1, valor Loop Close #1 End Sub Só que ao rodar ela da um looping infinito pois como estou filtrando a informacao que eu desejo a proxima linha não é vazia então ela inicia todo processo novamente... não sei como proceder para que seja feita a busca somente do que esta definido como tarifa no arquivo sem ter o looping infinito. Obrigada!
-
Boa tarde, criei uma rotina no vba excel 2010, na minha maquina roda normal porem tentei utilizar essa planilha em outra maquina e a mesma não abre,aparece a mensagem informando que o windows esta procurando o arquivo e esse nem é aberto. alguém já viu isso? Pode me ajudar? Obrigada!!
-
Consegui fazer a consulta das informacoes de acordo com que eu queria com o seguinte codigo: Private Sub LerDados_Click() sim = vbYes Set xlw = xl.Workbooks.Open("C:\ARTESP\1146 BASE DE DADOS.XLSX") xlw.Application.Visible = False Text2.Enabled = False Text3.Enabled = False Sheets("1146").Select Application.Goto REFERENCE:="CadastroContas" Do While ActiveCell.Value <> "" If Text1.Text = ActiveCell.Value Then Me.Text1.Text = ActiveCell.Value Me.Text2.Text = ActiveCell.Offset(0, 1).Value Me.Text3.Text = ActiveCell.Offset(0, 2).Value End If ActiveCell.Offset(1, 0).Select Loop Text1.Enabled = False MsgBox "Deseja Alterar os Dados Consultados?", vbYesNo, "Alteração" If sim Then Text2.Enabled = True Text3.Enabled = True Command1.Enabled = True Else Text2.Enabled = False Text3.Enabled = False xlw.Close False Exit Sub End If Agora estou com mais duas duvidas se o usuario responde sim tudo bem, mais se responde não o else não esta funcionando não sei porque. Outra duvida que me restou foi no codigo do botao ALTERACAO, inclui o seguinte codigo para o botao alterar: Private Sub Command1_Click() Application.Goto REFERENCE:="CadastroContas" Do While ActiveCell.Value <> "" If ActiveCell.Value = Text1.Text Then ActiveCell.Offset(0, 1).Value = Text2.Text ActiveCell.Offset(0, 2).Value = Text3.Text MsgBox "Alteração Efetuado com Sucesso!", vbInformation, "Atenção" Text1.Text = "" Text2.Text = "" Text3.Text = "" xlw.Close True End If ActiveCell.Offset(1, 0).Select Loop end Sub Esta funcionando corretamente pois ele altera a linha correta na planilha e salva tudo certinho mais depois de executar todos os procedimentos aparece o erro: RUN TIME ERROR 91: OBJECT VARIABLE OR WHIT BLOCK VARIABLE NOT SET E o erro aparece na minha - ActiveCell.Offset(1,0).select
-
Bom dia, como proceder para criar uma rotina de consulta? No formulario do VB6 coloquei dois textbox onde o primeiro deve representar o codigo e o outro a descrição. Tenho uma planilha no excel onde tenho um cadastro de contas que na coluna A esta informado os codigos e na coluna B suas respectivas descrições. Preciso criar uma rotina em que ao digitar o codigo no textbox1 no textbox2 apareça a descrição do codigo informado e na planilha seja selecionado a linha com contem essas informações. Fiz umas pesquisas na net e localizei o seguinte codigo para exibir o conteudo da celula no textbox: me.text1 = activecell Mais como fazer que ao digitar o codigo no textbox esse seja localizado na planilha retornando os valores corretos? então pensei em utilizar o localizar do excel para achar na planilha o valor digitado no textbox1, então fiz o seguinte codigo: Dim xlw As Excel.Workbook Dim xl As New Excel.Application Dim pesquisa As Range Dim codigo As String Private Sub LerDados_Click() codigo = Text1.Text Set xlw = xl.Workbooks.Open("C:\ARTESP\1146 BASE DE DADOS.XLSX") xlw.Application.Visible = False xlw.Sheets("1146").Select Set pesquisa = Selection.Find(What:=codigo, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False) If pesquisa Is Nothing Then MsgBox "Conta não Cadastrada!", vbCritical, "Atenção" xlw.Close False Text1.Text = "" Text2.Text = "" Text1.SetFocus Exit Sub Else Me.Text1.Text = ActiveCell.Value Me.Text2.Text = ActiveCell.Offset(0, 1).Value End If xlw.Close False End Sub Com esse codigo ao invés de ele retornar no textbox1 e 2 o valor das celulas do que foi localizado esta retornando somente os valores da primeira linha da plahilha.
-
Boa tarde, para abrir um arquivo em excel e edita-lo pelo vb utilizei o seguinte codigo: Set xlw = xl.Workbooks.Open("U:\Setembro.xlsx") beleza esta funcionando corretamente porque abre esse arquivo. Porém gostaria que no formulario fosse possivel selecionar qual arquivo que quero abrir, porque nesse caminho tenho um arquivo em excel para cada mes, e então como proceder para que no formulario eu possa escolher qual arquivo (de acordo com o mes selecionado) eu desejo abrir? Agradeço desde já.
-
Bom dia, obrigada pela ajuda mais utilizando esse codigo acima tambem ocorreu erro então fiz da seguinte forma: dim data as string data = date Cells.Find(What:=data,After=ActiveCell, Lookin:=xlFormulas,_ LookAt:=xlPart,SearchOrder:=xlByRowa, SearchDirection:=xlNext,_ MatchCase:=False, SearchFormat:=False).Activate Dessa forma deu certo, obrigada!
-
Bom dia, criei um formulario onde aparece a data e hora atual conforme configurado relogio do PC. Criei tambem uma planilha onde tem todos os dias dos meses em cada linha da coluna B: por exemplo: Coluna B 01/09/2011 02/09/2011 03/09/2011 04/09/2011 e assim sucessivamente até o ultimo dia do mes.. como fazer para que ao clicar no botao confirma (criado no formulario), o sistema localize nessa planilha a linha com o dia atual?
-
Boa tarde, estou criando uma macro para que ao ler a letra C nas celulas da coluna G, deve deslocar a celula ativa para direita pegar o valor de duas celulas a esquerda e transformar em valor negativo. Até ai esta funcionando corretamente, porem o loop esta infinito.. Segue o codigo: Columns("G:G").Select Do While ActiveCell.Offset(1, 0).Value <> "" Selection.Find(What:="C", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=+RC[-2]*-1" ActiveCell.Offset(0, -1).Select Range(Selection, Selection.End(xlDown)).Select Loop Como proceder?
-
Bom dia! Tenho um arquivo texto onde preciso exportar as informações e gravar em um outro arquivo texto. O arquivo tem a seguinte estrutura: L,01/01/2011,0000000001,001 I,0001,01,10009,30156, ,D,000000070622.49,RECEITA DE PASSAGENS NO DIA I,0002,01,30156,10009, ,C,000000070622.49,RECEITA DE PASSAGENS NO DIA L,03/01/2011,0000000019,001 I,0001,01,23285,10009, ,D,000000042791.66,PG V.R.G PARC.6/48 CTR.75.410.015-4 A B SAFRA S/A I,0002,01,23285,10009, ,D,000000006827.93,PG C.PREST.PC.6/48 CTR.75.410.015-4 A B SAFRA S/A I,0003,01,23285,10009, ,D,000000000017.11,PG ISS PARC 6/48 CTR.75.410.015-4 A B SAFRA S/A I,0004,01,10009, , ,C,000000049636.70,PG C.PREST.PC.6/48 75.410.015-4 A B SAFRA S/A L,03/01/2011,0000000021,001 I,0001,01,40181,10009, ,D,000000001400.00,PG AJUSTE REG DE SINISTROS LTDA NF.0147 A B SAFRA S/A I,0002,01,10009,40181, ,C,000000001400.00,PG AJUSTE REG DE SINISTROS LTDA NF.0147 A B SAFRA S/A Os registros iniciados por L representam o registro do lançamento, e os registros I representam os registros dos Itens dos lançamentos. então no decorrer do arquivo existe registro de lançamentos que pode ter mais de dois itens e quando ocorrer esse caso o arquivo texto 2 onde sera gravado essas informacoes o primeiro registro deve ser LC2, e quando tiver só dois itens deve ser gravado como LC1. Fiz o codigo da seguinte forma: Dim arq1 As String Dim arq2 As String Dim s As String Dim reg As String Dim modelo As String Private Sub Command1_Click() arq1 = FreeFile Open "C:\IMPORTA\MOVIMENTO.TXT" For Input As #arq1 arq2 = FreeFile Open "C:\IMPORTA\ctblctos1108.txt" For Output As #arq2 Do While Not EOF(arq1) Line Input #arq1, s reg = Mid(s, 1, 1) If reg = L Then modelo = "LC1" Else modelo = "LC2" End If Print #arq2, modelo Loop Close #arq1 Close #arq2 End Sub Mais dessa forma no arquivo texto 2 esta gravando para todos os registros de lançamento "L" LC1 e para todos os registros "I" LC2.. Gostaria de fazer com que quando no registro I tiver mais de dois itens definir o registro no arquivo 2 como LC2 quando não como LC1, e não sei como fazer isso.. Desde já agradeço!
-
Sonnel deu super certo!! perfeito! muito obrigada.. não entendi direito o codigo mais vou dar uma estudada depurando.. valeu!!
-
Oi boa tarde! Tentei o codigo acima mais não deu certo :( coloquei da seguinte forma: Dim t t = 0 Application.Goto reference:="sdAntCaixa" ActiveCell.Select Do While ActiveCell.Offset(1, 0).Value <> "" t = t + ActiveCell.Value ActiveCell.Offset(1).Select Loop Na linha Do While pedi para verificar se a partir da celula ativa (primeira celula da lista sdAntCaixa), a proxima celula seria diferente de zero e ai sim começar o loop porque a primeira celula ativa vai receber o valor da soma. Ao executar ocorre erro na linha: t = t + Activecell.Value
-
Boa tarde a todos, gostaria de saber como proceder para somar o valor das celulas de uma coluna. Por exemplo, tenho uma sequencia de celulas com valores onde nomeei as celulas para: listaValores, ao informar: Application.Goto reference:="listaValores" O excel faz a seleção das celulas que tem ser somado, gostaria que na celula ativa fosse retornado o valor da soma de todas as celulas abaixo, e que o procedimento de soma de celulas se repita até a proxima celula vazia encontrada na sequencia. Tentei fazer com Do While activecell.value = "" Mais não sei o que colocar na instrução para poder somar os valores das celulas abaixo. Desde já agradeço!
-
Ola Joao!, Obrigada pelas dicas.. Consegui resolver informando um nome na celula e utilizando esse nome para multiplicação. Deu certo, porque o excel entende a celula que carrega o percentual mesmo o usuario incluindo linhas. Obrigada!!
-
Boa tarde, estou utilizando o codigo: ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],listaOficial,4,0)", e na celula ativa esta entrando corretamente o valor a ser retornado. Porém gostaria que esse valor fosse multiplicado por um percentual que esta definido em umas celulas acima de onde traz esse resultado, sendo que essa celula que tem o valor do percentual não tem endereço fixo, ela pode ser variavel já que o usuario pode incluir novas linhas na planilha. Esse percentual é inserido nessa celula atraves da digitacao dele feita pelo usuario em um formulario atraves de um txtbox, e ai ao digitar é feito uma busca na planilha atraves do F5 em uma lista já definida e ai entaum é descolado duas celulas a direita e incluido esse percentual. Tentei armazenar o valor desse percentual em uma variavel e no final do codigo coloca-lo mais não da certo, tentei fazer assim: Dim percentual as Integer percentual = txtpercentual.value activecell.formular1c1 = "=VLOOKUP(RC[-3],listaOficial,4,0) * percentual" Mais não deu certo ele retorna como erro. alguém tem uma dica para esse caso? Desde já Agradeço!
-
Oi pessoal Boa tarde! Agradeço as dicas. Obrigada!
-
Bom dia, Raphael agradeço suas explicações porém sou iniciante na programação em vba e não tenho idéia de como fazer esse procedimento que voce citou... Poderia por favor me dar um exemplo de como fazer isso? Desde já agradeço!
-
Boa tarde a todos, ¬Estou com a seguinte dúvida: tenho uma textbox e um botão incluir, preciso que o conteúdo da textbox preencha as células em uma sequencia. Por exemplo digito "maria" no textbox e desejo que o conteudo que estou digitando preencha a partir do intervalo de células mescladas a5:e5, sendo assim ao clicar em incluir esse intervalo de células mescladas deve aparecer "maria". Fiz da seguinte forma: Range("a5:e5").select Activecell.formular1c1 = text1.text Ao colocar esse codigo no botao incluir, quando digito "maria" no textbox a célula selecionada nessa range é preenchida como maria nessa planilha. Porém minha dúvida é a seguinte, preciso incluir mais nomes nessa planilha atraves desse botao incluir e preciso que seja preenchido nas células seguintes dessa coluna. Por exemplo, preciso incluir "joao" no textbox e que essa informacao do textbox entre no intervalo de célula a6:e6 e assim por diante... Não sei como proceder dessa forma.. Agradeço desde já!