andré Luiz Postado Março 8, 2006 Denunciar Share Postado Março 8, 2006 Pessoal, SOCORRO! Meus neuronios já pifaram... Devo estar cometendo um erro elementar, mas pra dizer a verdade, faz dias que estou fuçando e não encontro o que estou fazendo de errado.Uma comando super simples como Cells.Select não funciona de jeito nenhum na minha macro.Já substitui por outro comando (como por exemplo "Range("A1").Select"), já alterei a sequencia de execução, já tentei quase tudo...O problema ocorre sempre que a macro atinge uma função de Range ou Select ou ainda Cells(C,L).Select ou Cells(C,L).Activate.alguém tem alguma pista do que estou fazendo de errado no código?Muito obrigado. André Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 9, 2006 Denunciar Share Postado Março 9, 2006 Existe realmente uma planilha selecionada?Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 andré Luiz Postado Março 9, 2006 Autor Denunciar Share Postado Março 9, 2006 A coisa vem assim....O módulo é executado dentro de uma planilla Excel cuando o usuário aciona um botão. então o sistema pede para o usuario indicar onde está o arquivo texto com todas as informações para a preparação da planilha em Excel.' Opening file CancelProcedure = MsgBox("Indique localizacao do arquivo txt.", vbOKCancel) If CancelProcedure = 2 Then GoTo Suspende: FileToOpenTxt = Application.GetOpenFilename("Text Files (*.txt), *.txt") MsgBox FileToOpenTxt Application.ScreenUpdating = True Workbooks.OpenText Filename:=FileToOpenTxt, _ Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, _ Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(0, 1), Array(8, 1), _ Array(15, 1), Array(31, 1), Array(47, 1))E até aqui tudo anda bem. Depois a macro muda o nome do arquivo para gravá-lo como .xls' Saving file FileToOpenTxt = Right(FileToOpenTxt, 26) FileToOpenTxt = Left(FileToOpenTxt, 22) ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\amascaro\My Documents\SAP files\RSF Macro\" & FileToOpenTxt _ , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=FalseE novamente, até aqui não há problemas. Tudo funciona bem e o arquivo é gravado com .xlsAqui aparece o problema. O primeiro que tento fazer, depois de ter o arquivo já gravado é tirar o grid da planila e ajustar a largura de cada célula, mas aí aparece a falha.' Formating file ActiveWindow.DisplayGridlines = False Cells.Select Cells.EntireColumn.AutoFit Range("A7:V15000").SelectE a macro é interrompida justamente no comando Cells.SelectSe altero este comando para qualquer outro Range( ).Select dá o mesmo.Pode ser que além de ter a planilha aberta neste momento e já salva como xls ainda assim tenha que incluir outro comando para confirmar que a planilha está selecionada? Qual seria? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 10, 2006 Denunciar Share Postado Março 10, 2006 Acho que seria isso aqui:ActiveWorkbook.Worksheets("NOMEDAPLANILHA").SelectCerto? Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 andré Luiz Postado Março 10, 2006 Autor Denunciar Share Postado Março 10, 2006 Infelizmente parece que não. Inclui o comando conforme sugerido logo antes de gravar o arquivo como xls, e não funcionou, inseri logo depois... e tão pouco... então inseri o comando justo antes do Cells.Select e segue me desafiando esta macro infeliz... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 11, 2006 Denunciar Share Postado Março 11, 2006 Cara, fiz o teste abaixo aqui e deu tudo certo. Como você pode ver, eu só mudei o caminho do arquivo (para ser um caminho fixo):arquivo = "d:\temp\botoes.txt" Application.ScreenUpdating = True Workbooks.OpenText Filename:=arquivo, Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(0, 1), Array(8, 1), Array(15, 1), Array(31, 1), Array(47, 1)) ActiveWorkbook.SaveAs Filename:=arquivo, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False ActiveWindow.DisplayGridlines = False Cells.Select Cells.EntireColumn.AutoFit Range("A7:V15000").SelectTeste este código aí e veja se dá o mesmo erro.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 andré Luiz Postado Março 14, 2006 Autor Denunciar Share Postado Março 14, 2006 DESCOBRI !!!!!!!!! Aleluia ! Obrigado pela ajuda, me fez pensar um pouco mais, mas me deu um estalo que me fez lembrar de uma macro que recebi já faz algum tempo de um colega nos EUA (no trabalho) e que teinha uma diferença básica para esta que me estava fazendo sofrer: eu estava escrevendo a macro dentro da propria planilha do Excel onde e não em um módulo a parte, dentro do VBAProject.Quando me liguei na diferença fiz o teste. Deletei a macro toda da planilha e a coloquei em um módulo, dentro do mesmo VBAProject, mas esta simples mudança foi o suficiente para o método Range passasse a funcionar. Agora posso seguir com o projeto adiante.Espero que esta discução possa servir de fonte de consulta para outros usuários que possam se enfrentar com o mesmo problema.Valeu. André Luiz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 14, 2006 Denunciar Share Postado Março 14, 2006 Humm... nem tinha me ligado nisso. Eu *sempre* coloco as macros em módulos, por isso não tive o erro aqui.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Siqueira Postado Março 6, 2007 Denunciar Share Postado Março 6, 2007 DESCOBRI !!!!!!!!! Aleluia ! :D Obrigado pela ajuda, me fez pensar um pouco mais, mas me deu um estalo que me fez lembrar de uma macro que recebi já faz algum tempo de um colega nos EUA (no trabalho) e que teinha uma diferença básica para esta que me estava fazendo sofrer: eu estava escrevendo a macro dentro da propria planilha do Excel onde e não em um módulo a parte, dentro do VBAProject.Quando me liguei na diferença fiz o teste. Deletei a macro toda da planilha e a coloquei em um módulo, dentro do mesmo VBAProject, mas esta simples mudança foi o suficiente para o método Range passasse a funcionar. Agora posso seguir com o projeto adiante.Espero que esta discução possa servir de fonte de consulta para outros usuários que possam se enfrentar com o mesmo problema.Valeu. :rolleyes: André LuizPor favor, estou com o mesmo problema. Eu criei uma planilha em branco, coloquei um botão e a macro.O que é exatamento colocar uma macro "em módulo"? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 7, 2007 Denunciar Share Postado Março 7, 2007 No editor do VBA vá no menu Inserir -> Módulo. A janela branca que vai surgir é o módulo e nele você pode criar suas rotinas (subs).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Maio 14, 2007 Denunciar Share Postado Maio 14, 2007 olá pessoal... estou com o mesmo problema..... sendo que já estou escrevendo a macro em um módulo (ao invés de escrever na planilha) e continua sem funcionar. Será porque tenho mais de um módulo? Mas isso não faz sentido algum...... aliás..... programar em vba é uma porcaria.... mas.... é a necessidade... já tentei também alterar a propriedade <TakeFocusOnClick> do botão de True para False; também não funciona. Eu li num fórum que o Excel tem um problema sério com foco, e ao focar um botão, dava erro ao focar numa planilha. Não sei mais o que fazer. Meus clientes estão quase me enforcando. Já tentei de tudo, ou melhor, quase tudo.Será que alguém tem alguma outra idéia? A versão do meu Excel é a 2003. Obrigada. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Thiago -- Postado Maio 21, 2007 Denunciar Share Postado Maio 21, 2007 Usa os .Activate sempre antes do Select, o Workbook e o WorkSheet.Abraços....Thiago Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Marcelo Alves Postado Junho 26, 2007 Denunciar Share Postado Junho 26, 2007 Boa Tarde.Estou fazendo uma macro no Excel onde preciso localizar um texto, e colar sobre o mesmo a formatação que trouxe de outro local.Porem quando faço a macro, utilizo o comando Cells.Find(What:="CIDADE", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate Range("A71").Select ActiveSheet.Paste Range("A72").SelectPorém quero substituir o valor "A71" pela celula localizada. Como faço ?Obrigado desde já Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 webdeveloper Postado Junho 26, 2007 Denunciar Share Postado Junho 26, 2007 Checa o que a função Cells.Find está retornando. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marco_filho Postado Fevereiro 26, 2016 Denunciar Share Postado Fevereiro 26, 2016 No meu caso, era um erro parecido... Apenas mudei a ordem da linha " Range("A1:D22").Activate " Ela estava após habilitar o envio de e-mail, alterando para antes de habilitar, parou o erro: ___________________________________ 'Código antigo: Sub Enviar_cancelar_envio() If ActiveWorkbook.EnvelopeVisible = False Then ActiveWorkbook.EnvelopeVisible = True Range("A1:D22").Activate With ActiveSheet.MailEnvelope .Introduction = "This is a sample worksheet." .Item.To = "E-Mail_Address_Here" .Item.Subject = "My subject" .Item.Send End With Else ActiveWorkbook.EnvelopeVisible = False Range("E1").Activate End If _________________________________________ 'Segue o código que parou de dar o erro: Sub Enviar_cancelar_envio() If ActiveWorkbook.EnvelopeVisible = False Then Range("A1:D22").Activate ActiveWorkbook.EnvelopeVisible = True With ActiveSheet.MailEnvelope .Introduction = "This is a sample worksheet." .Item.To = "E-Mail_Address_Here" .Item.Subject = "My subject" .Item.Send End With Else ActiveWorkbook.EnvelopeVisible = False Range("E1").Activate End If _______________________________________ Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
andré Luiz
Pessoal, SOCORRO! Meus neuronios já pifaram...
Devo estar cometendo um erro elementar, mas pra dizer a verdade, faz dias que estou fuçando e não encontro o que estou fazendo de errado.
Uma comando super simples como Cells.Select não funciona de jeito nenhum na minha macro.
Já substitui por outro comando (como por exemplo "Range("A1").Select"), já alterei a sequencia de execução, já tentei quase tudo...
O problema ocorre sempre que a macro atinge uma função de Range ou Select ou ainda Cells(C,L).Select ou Cells(C,L).Activate.
alguém tem alguma pista do que estou fazendo de errado no código?
Muito obrigado. André
Link para o comentário
Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.