Ir ao conteúdo

Ajuda VBA no EXCEL


uchobi

Posts recomendados

Postado

E ae galera

Estou precisando de uma ajuda para a programação em VBA. Vou explicar o que acontece com meu macro e depois deixo a minha programação para vocês analisarem, e se puderem, me ajudar.

:confused::confused:

Preciso copiar os valores que irão mudar de acordo com a inserção de dados nas planilhas para a planilha principal (Plan1). Criei um macro que crie novas planilhas com o nome automático de números de acordo com o número de planilhas já contidas na pasta de trabalho (se tiver 8 planilhas, e eu ativar o macro, ele irá criar uma planilha com o nome "6", se tiver 10 e criar terá o nome "8", pois fiz o código para diminuir em 2 o número que seria dado ao nome),e após criar a planilha, ela adicionará uma linha na "Plan1" abaixo da que já estipulei no código que vai variando de acordo com o número de linhas, e depois de adicionar a linha, ela irá dar o nome na célula B"x" da "Plan1" igual ao nome que é digitado ao criar uma nova planilha com o macro (**x é o número da linha que foi criada para a nova planilha), e eu preciso que a cada vez que eu criar uma nova planilha, ela me mostre os valores que estão nas células I503 J503 e K503 da planilha criada nas células E"x" F"x" e G"x".

Através do macro não consegui, mas ao criar e depois vincular estes dados, eu inseri as fórmulas "='nomedaplanilha'!I503" "='nomedaplanilha'!J503" "='nomedaplanilha'!K503"

Quero fazer este vínculo através do macro de criar a nova planilha, sem ter a necessidade de criar e depois eu mesmo digitar o vínculo, mas ao meu entender não consigo fazer este vínculo porque uso uma variável para dar o nome nas planilhas que seria o mesmo para utilizar em "nomedaplanilha", e ao colocar a variável entre as aspas ('count') no código do VBA, na hora da execução da linha o EXCEL abre uma janela parecida com a janela do "Abrir" ou "Salvar como", fazendo com que o código não seja inserido da maneira que eu queria.

O código que eu criei é o seguinte:

Sub nova_ficha()

' nova_ficha Macro

Dim count As Integer

count = 5 + Sheets.count

Sheets("0").Select

Sheets("0").Copy Before:=Sheets(Sheets.count)

ActiveSheet.Name = Sheets.count - 2

Range("A2") = InputBox("Digite o nome da peça que deseja criar uma nova

ficha de controle", "NOME DA PEÇA")

nomeficha = Range("A2")

Sheets("plan1").Select

Rows(count).Select

Selection.Insert

Cells(count, 2) = nomeficha

End Sub

Tá aí, se alguém souber como resolver meu problema, me ajude por favor.

Obrigado pela atenção de vocês. ^_^

Editado:

*Meu pacote Office é o 2007*

Postado

Olá!

Inseri os comandos em vermelho no seu código:

Sub nova_ficha()

' nova_ficha Macro

Dim count As Integer
count = 5 + Sheets.count
Sheets("0").Select
Sheets("0").Copy Before:=Sheets(Sheets.count)
ActiveSheet.Name = Sheets.count - 2

[COLOR="Red"]Dim strformula1, strformula2, strformula3 As String
strformula1 = "=" & ActiveSheet.Name & "!I503"
strformula2 = "=" & ActiveSheet.Name & "!J503"
strformula3 = "=" & ActiveSheet.Name & "!K503"[/COLOR]

Range("A2") = InputBox("Digite o nome da peça que deseja criar uma nova ficha de controle", "NOME DA PEÇA")
nomeficha = Range("A2")
Sheets("plan1").Select
Rows(count).Select
Selection.Insert
Cells(count, 2) = nomeficha

[COLOR="Red"]Cells(count, 5).Value = strformula1
Cells(count, 6).Value = strformula2
Cells(count, 7).Value = strformula3[/COLOR]

End Sub

Supus que 'count' é a linha 'x' que você mencionou.

A macro define 3 strings enquanto a planilha nova está selecionada. Cada string é composta pelo sinal de igual + nome da planilha + célula desejada.

Assim, ao voltar para a planilha principal basta apenas que a macro defina o valor das células destino como as strings criadas.

Era isso que você queria?

Postado

Obrigado jeffsilveira.

Era isso mesmo que eu estava tentando fazer na minha planilha. Valeu mesmo ^^

Agora vou tentar fazer a macro criar uma forma de retângulo e com hiperlink para a planilha criada. Vou tentando aqui, mas se tiver alguma ideia de como fazer isto, me mande mensagem por aqui falando como é possível, se é que é possível fazer isto, pois eu creio que esta seja a última etapa para a conclusão de um documento que estou trabalhando.

Ah... desculpe a demora, não imaginei que a resposta aqui no fórum seria tão rápida, é a primeira postagem minha e fui respondido quase que imediatamente, e o mais importante, com a solução do meu problema. Demorei a responder porque eu imaginei que iria demorar um pouco, e postei isto minutos antes de viajar, e voltei apenas hoje.

Obrigado mesmo!!! :)

  • Membro VIP
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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!