Jump to content
Fórum Script Brasil
  • 0

Question

Boa noite, estou iniciando no mundo do VBA no Excel e ainda não sei como realizar uma operação automática:

A ideia é: assim que eu colar um conjunto de dados (cada dado com um conteúdo/nome padrão [001, 002... 009...] correspondente com a coluna A) da coluna hipotética X, eu quero que a célula exatamente à direita de cada dado respectivo copiado na coluna X vá pra uma posição exata na coluna B:

Coluna A Coluna B  Coluna X Direita de X

001.                            002.         Valor Z

002. Valor Z              004.          Valor C

003.                           009.          Valor M

004. Valor C

005

...

008

009. Valor M

OBS: os nomes colados na coluna X sempre terão alguma correspondência com os nomes da coluna A (sempre serão códigos fixos)

Alguém poderia me explicar como conseguir realizar esse processo?

Muito obg!

Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Boa tarde @Luiz_Luiz

Eu fiz um código baseando a informação que você passou no texto:

image.png.6133b2a9fb121682c9bca195cf220881.png

Código para fazer a função:

Public Sub Luiz_Luiz()
Dim lastRowA As Long 'Ultima Linha da Coluna A
Dim lastRowCad As Long 'Próxima linha a ser cadastrada
Dim columnCad As Long 'Coluna que vai ser lançado o cadastro
Dim plan As Worksheet 'definir a planilha

Set plan = Sheets("Planilha1")


lastRowA = plan.Cells(Rows.Count, "A").End(xlUp).Row

columnCad = 8 'Coluna H
lastRowCad = plan.Cells(Rows.Count, 8).End(xlUp).Row + 1

'Passar por todas as linhas e verificar se tem informação na coluna B
'Se tiver valores na coluna B inserir na próxima linha de cadastro
For x = 1 To lastRowA Step 1
    If plan.Cells(x, "B") <> "" Then
    
        plan.Range(Cells(x, "A"), Cells(x, "B")).Copy
        
        plan.Cells(lastRowCad, columnCad).Select
        
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
        'informa a proximo linha caso exista novo registro
        lastRowCad = lastRowCad + 1
    End If
Next x

Eu deixei "personalizável" a coluna aonde vai ser colocada a informação (columnCad = 8 'Coluna H)

Planilha

Link to post
Share on other sites
  • 0

Muito obrigado, Alyson. Minha única dúvida é: se ao invés dos conteúdos de entrada (colados nas colunas X) serem uma sequência numérica (como no meu exemplo: 001, 002...) Forem palavras (sempre fixas também).

Nesse caso, basta que eu substitua isso no código que você escreveu ou teria que ser outro código? Depois eu mando o arquivo aqui, porque com a estrutura exata em mãos fica mais fácil!

Edited by Luiz_Luiz
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      149408
    • Total Posts
      645900
×
×
  • Create New...