Ir ao conteúdo

telmobarros

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Tudo que telmobarros postou

  1. Boa Tarde! Consegui resolver mais uma parte do meu problema conforme a macro abaixo. Sub Macro2() Dim r As Integer Sheets("Medias").Activate If Range("A13") <> "" Then Range("A4:B13").ClearContents End If 'Determina qual a ultima linha com valor na coluna A e adiciona 1 r = Range("A13").End(xlUp).Offset(1, 0).Row 'Copia a celula A6 da planilha Medias de Tempo Sheets("Medias de Tempo").Range("A6").Copy 'Cola os dados sem formulas (se houver) Sheets("Medias").Range("A" & r).Activate Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'Copia a celula C6 da planilha Medias de Tempo Sheets("Medias de Tempo").Range("C6").Copy 'Cola os dados sem formulas (se houver) Sheets("Medias").Range("B" & r).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'Sheets("Medias de Tempo").Activate Application.CutCopyMode = False End Sub O IF é a parte que inclui, porém só faz metade do que preciso. Ao colar em "Medias" em "A13:B13", começa a colar novamente nas celulas "A4:B4", depois em "A5:B5", e assim por diante, é isso que eu preciso. Mas só consigo fazer, apagando todo o intervalo, que é o que não quero. Tem como manter os conteúdos das outras celulas? Obrigado Telmo
  2. Boa Noite! Peço a ajuda de vocês, pra ver se conseguem resolver um problema. Tenho uma planilha com duas abas: "Medias de Tempo" e "Medias". Preciso copiar dados da planilha "Medias de Tempo" para a planilha "Medias", porém com algumas condições. Quero associar um botão "OK" na planilha "Medias de Tempo", que quando acionado ele copia dados das celulas "A6" e "C6" para a planilha "Medias" em "A4" e "B4", e a cada clique colasse na linha seguinte: "A5" e "B5", "A6" e "B6" e assim por diante. porém há um detalhe: Como podem ver na planilha anexa, o intervalo de linhas na planilha "Medias", vai de "A4:B4" a "A13:B13". Gostaria que quando preenchesse "A13:B13", voltasse a colar novamente em "A4" e "B4", mas sem apagar os dados das celulas restantes. Ficaria algo assim. Primeiro clique: Copia "A6" e "C6" de "Medias de Tempo e cola em "A4" e "B4" de "Medias" Segudo clique: Copia "A6" e "C6" de "Medias de Tempo e cola em "A5" e "B5" de "Medias" Terceiro clique: Copia "A6" e "C6" de "Medias de Tempo e cola em "A6" e "B6" de "Medias" . . Décimo clique: Copia "A6" e "C6" de "Medias de Tempo e cola em "A13" e "B13" de "Medias" Agora é que o bicho pega. Décimo Primeiro clique: Copia "A6" e "C6" de "Medias de Tempo e volta a colar em "A4" e "B4" de "Medias", mantendo as informações de A5:B5 até A13:B13 Décimo Segundo clique: Copia de "Medias de Tempo" A6 e C6 e cola em "Medias" A5 e B5, mantendo as informações de A4:B4, A6:B6 até A13:B13 Até chegar em "A13:B13' novamente e repetir o processo. Deu prá enterder? O intervalo de colagem será sempre o mesmo, colando nas celulas destino, mas sem apagar as outras. OBS: Notem que quando me referi às celulas "A6" e "C6", coloquei o E entre elas, é preciso apenas dessas duas celulas, e não do intervalo "A6:B6", ou seja "A6:B6:C6" Abaixo a macro que tenho, mas só funciona metade do que preciso Sub Macro2() Dim r As Integer Sheets("Medias").Activate 'Determina qual a ultima linha com valor na coluna A e adiciona 1 r = Range("A13").End(xlUp).Offset(1, 0).Row 'Copia a celula A6 da planilha Medias de Tempo Sheets("Medias de Tempo").Range("A6").Copy 'Cola os dados sem formulas (se houver) Sheets("Medias").Range("A" & r).Activate Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'Copia a celula C6 da planilha Medias de Tempo Sheets("Medias de Tempo").Range("C6").Copy 'Cola os dados sem formulas (se houver) Sheets("Medias").Range("B" & r).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Sheets("Medias de Tempo").Activate Application.CutCopyMode = False End Sub Obrigado Telmo teste1hardware.xls
  3. Jimmy, boa noite Eu sou cabeça dura, quando pego uma coisa pra fazer, so largo o osso depois de resolvido. Depois que lhe enviei a msg ontem, fiquei aqui quebrando cabeça, e consegui, como se diz, achar o fio da meada. Mas tive que sair e cheguei tarde e meio chapado. Copiei a planilha para um pendrive e levei para o serviço hoje. Quando o tempo dava, ficava ajeitando a planilha. Consegui resolver o meu problema e quando cheguei do serviço, so faltava alguns ajustes. A planilha esta funcionado perfeitamente, do jeito que eu queria, copiando celulas especificas e colando em celulas especificas, independente de qualquer ordem, e sem ordem. Mas não vou postar o que eu fiz. Se algum programador ou alguem com conhecimento de programacao ver, vai achar uma aberracao, um verdadeiro atentado aos principios de programacao. rsrsrs Agradeço muito, muitissimo, a sua boa vontade e disponibilidade em querer me ajudar. Foi a primeira vez que me envolvi com VBA, e achei bem interessante o leque de coisas que se pode fazer. Por isso tenho certeza que nos "encontraremos" aqui de novo. Mais uma vez, obrigado abraços Telmo
  4. Jimmy, obrigado por ter respondido A macro executa, mas não faz nada
  5. Prá inicio de conversa, sou totalmente leigo em VBA,O meu problema é o seguinte: Tenho uma planilha de custos, onde tenho uma aba, Calculo do Produto, e outra Histórico de Vendas. Hoje preencho manualmente, copiando celulas da aba Calculo do Produto, e colando na aba Historico de vendas. São muitas celulas e isso se torna chato e cansativo. O que eu preciso é copias celulas especificas em Calculo do Produto, e colar em celulas especificas de Histórico de Vendas. Achei essa macro aqui no forum enviada por jeffsilveira e o que consegui entender está escrito ao lado Sub copiar() Executar a macro de nome copiar Range("A1:A10").Select Seleciona o intervalo de celuas de A1 até A10 na planilha de origem Selection.Copy seleciona a funcao copiar Sheets("Plan2").Select Seleciona a aba de destino Range("A1").Select Seleciona a celula A1 na aba de destino Do | Essa parte se refere à procura da primeira linha vazia. If ActiveCell <> "" Then | Aqui tenho uma dúvida! Como a primeira celula de destino é A1, não sei se a procura é ActiveCell.Offset(1, 0).Select | pela primeira celula A vazia, ou se toda a linha vazia. End If | Exemplo: Se tiver um dado na celula A10 , vai colar a partir da celula A11. Mas se A10 estiver vazia e Loop Until ActiveCell = "" | e houver dados na celula B10 ou C10, não se se cola na A11 ou cola na A10 ActiveCell.PasteSpecial Paste:=xlPasteAll, Essas duas linhas abaixo só sei que é a colagem, mas onde, quando, porque, não faço a Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False minima ideia End Sub Termina a execução da macro Apos várias tentativas e erros, (demorou varios dias) consegui adaptar da seguinte maneira. Sub copiar() Sheets("CALCULAR PRODUTO").Select Range("B6, B11, B7").Select Selection.Copy Sheets("HISTÓRICO VENDAS").Select Range("A1").Select Do If ActiveCell <> "" Then ActiveCell.Offset(1, 0).Select End If Loop Until ActiveCell = "" ActiveCell.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=TRUE Application.CutCopyMode = False End Sub Alterei o nome das abas, as celulas a serem copiadas e alterei o TRANSPOSE=TRUE Esta macro procura a primeira linha em branco e cola as células selecionadas na primeira celula vazia. Até então está OK. Agora vamos aos problemas: 1 - A ordem das celulas a serem copiadas é B6, B11, B7, mas me retorna B6, B7, B11. A ordem a ser colada deve ser mantida. 2 - A selecao das celulas a serem copiadas não estão necessariamente, na mesma linha ou coluna, por exemplo, B11, H10, I6 Então se colocar TRANSPOSE, acho que vai dar errado. 3 - A colagem se dá a partir da celula A1 e cola nas colunas seguintes B1, C1, ou seja, colunas contiguas. Essa ordem precisa ser modificada, por exemplo, para A1, H1, C1 Então resumindo, o que eu preciso é pegar celulas especificas na origem, e colar em celulas especificas no destino. Aqui no forum e em outros que pesquisei, só achei exemplos como esse que peguei, referenciando a intervalos de celulas. Se não for pedir muito, gostaria que explicassem a função de cada linha da macro, especialmente onde está apontando as celulas de origem e destino, pois tenho uma outra planilha e gostaria de fazer a mesma coisa e não queria ter que abrir um outro tópico com o mesmo assunto. Muito grato

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!