Ir para conteúdo
Fórum Script Brasil
  • 0

Colar especial... Macro VBA - Excel 2003


evandroeco

Pergunta

Estou com o mesmo problema. Alguns dados que são gerados pelo SAP entram como numero em formato de texto.

O engraçado é que se eu abrir a pasta tal, automaticamente, eles já são convertidos para numero.

Contudo, uso uma outra pasta que importa tais dados. Para fazer isso criei a seuginte macro (trecho de tal ação).

Workbooks.Open ("Z:\Intranet\controlling\restrito2\INSERT.XLS")

Windows("INSERT.XLS").Activate

'Ajeitando a tabela de dados

Rows("1:13").Select

Selection.Delete Shift:=xlUp

Range("A:A,F:F").Select

Selection.Delete Shift:=xlToLeft

'Substituindo valores para data

Columns("D:D").Select

Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

' Convertendo numeros em texto em números

Range("BQ3").Select

ActiveCell.FormulaR1C1 = "1"

Range("BQ3").Select

Selection.Copy

Range("M1:BO1").Select

Range("BO1").Activate

Range(Selection, Selection.End(xlDown)).Select

Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _

SkipBlanks:=False, Transpose:=False

Range("BQ4").Select

Application.CutCopyMode = False

Range("BQ3").Select

Selection.ClearContents

'Copiando tabela

Range("A1:BN1").Select

Range(Selection, Selection.End(xlDown)).Select

Selection.Copy

'Colando dados da tabela INSERT na KE

Windows("KE30_200809.xls").Activate

Range("A2").Select

ActiveSheet.Paste

Range("H2").Select

Application.CutCopyMode = False

' Workbooks("INSERT.XLS").Close SaveChanges:=False

...........

Se eu abrir a pasta INSERT.XLS, ocorre tudo perfeitamente; nem precisaria ter incluido esse código. Mas como pode ver, nessa macro, ela é que abre e fecha o arquivo; e desse modo não funciona; ao abrir, pela macro, a conversão não ocorre automaticamente. Então vem o trecho do código para fazer.

No trecho em vermelho seria o trecho do código responsável por esse colar especial, o que indica o 'Ajuda' como modo de resolver o problema.

Fazendo manualmente, perfeito. Aliás, ao fazer a macro deu certo. Contudo, ao se usar a macro dá errado!

O código simplesmente não funciona.

É como se a linha de código em vermelho fosse pulada!!!

O colar em especial não ocorre. Verifiquei isso.

Creio que seja alguma linha de comando do tipo "Executar essa cola especial"; que a Macro não gravou. Que provavelmente, seria o que acontece quando, manualmente, no "Colar especial" clicamos no OK, ou se dá um ENTER. Assim, como a Macro não grava se usarmos o AutoCorreção.

Isso é pelo menos o que ocorre na versão XP - Office 2003. Creio que no 2007 já tenham resolvido isso.

Help-me. Please.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Já consegui resolver....

Depois de abrir um livro de VBA... e ler umas funcionalidades, tive uma idéia...

Bem, o que faço, é primeiro, nomear a seleção. E depois, uso um Range nessa seleçao (nome), e mando que tais celulas sejam multiplicadas por 1; fazendo a mesma função, do colar especial... e um código bem simples:

ActiveWorkbook.Names.Add Name:="selecao", RefersToR1C1:= _

"=INSERT!R1C13:R3907C67"

Range("selecao").Value = Value * 1

Eee bingo.

No meu modelo. A planilha tal, onde há essas modificações será fechada sem salvar. Se salvar, talvez haja um problema, eu não sei, quanto a nomear coisas com nomes já existentes.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...