Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#24982
Ola.
Sou nova aqui e precisava de uma ajudinha.
Criei um ficheiro que serve para criar e registar encomendas. A encomenda e preenchida numa planilha e depois a macro copia os dados para uma tabela noutra. A macro que tenho é essa abaixo. Ela copia os diversos dados na folha de encomenda e cola na linha vazia da tabela da planilha Lista de Encomendas_Boavista. Agora gostaria que ela selecionasse o produto de baixo e copiasse os dados todos (fornecedor, data, referencia, etc.).

Folha de Encomenda
Imagem

Lista de Encomendas
Imagem

Sub Gravar_Encomenda()

' Copiar Fornecedores

Sheets("Nova Encomenda").Select
Range("B12:E14").Select
Selection.Copy
Sheets("Lista de Encomendas_Boavista").Select
Range("B5").Select
Do
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell = ""
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


' Fazer Referencia encomenda

Sheets("Nova Encomenda").Select
Range("J5").Select
Selection.Copy
Sheets("Lista de Encomendas_Boavista").Select
Range("C5").Select
Do
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell = ""
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


' Copiar Cliente

Sheets("Nova Encomenda").Select
Range("G20").Select
Selection.Copy
Sheets("Lista de Encomendas_Boavista").Select
Range("D5").Select
Do
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell = ""
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

' Copiar Nome Cliente

Sheets("Nova Encomenda").Select
Range("H20:J20").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Lista de Encomendas_Boavista").Select
Range("E5").Select
Do
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell = ""
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

' Data de Encomenda

Range("F5").Select
Do
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell = ""
Selection.FormulaR1C1 = "=TODAY()"

' Copiar Ref Produto

Sheets("Nova Encomenda").Select
Range("B20").Select
Selection.Copy
Sheets("Lista de Encomendas_Boavista").Select
Range("G5").Select
Do
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell = ""
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

' Copiar Produto

Sheets("Nova Encomenda").Select
Range("C20:D20").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Lista de Encomendas_Boavista").Select
Range("H5").Select
Do
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell = ""
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

' Copiar Quantidade

Sheets("Nova Encomenda").Select
Range("E20").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Lista de Encomendas_Boavista").Select
Range("I5").Select
Do
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell = ""
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

' Copiar Notas

Sheets("Nova Encomenda").Select
Range("B65:J66").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Lista de Encomendas_Boavista").Select
Range("M5").Select
Do
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell = ""
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

' Terminar

Range("B5").Select
Sheets("Nova Encomenda").Select
Range("B12:E14").Select

End Sub


A quem puder ajudar, obrigada.
Você não está autorizado a ver ou baixar esse anexo.
Editado pela última vez por idaalexandra em 24 Jul 2017 às 08:07, em um total de 1 vez.
#24983
Bom dia!!

Poste seu arquivo modelo!

Para anexa um arquivo, ao responder a mensagem na parte de baixo tem (Opções | Adicionar um anexo), escolha o arquivo desejado.
Att
#24994
Bom dia,

Para copiar a última linha preenchida da planilha "Nova Encomenda" use:

Dim a As Long
a = Sheets("Nova Encomenda").Range("b1048576").End(xlUp).Row
Sheets("Nova Encomenda").Range("b" & a & ":e" & a).Copy

agora apenas um conselho, evite usar o select quando não for necessário, ele torna mais extenso e lerdo sua macro.
#24996
Feka escreveu:Bom dia,

Para copiar a última linha preenchida da planilha "Nova Encomenda" use:

Dim a As Long
a = Sheets("Nova Encomenda").Range("b1048576").End(xlUp).Row
Sheets("Nova Encomenda").Range("b" & a & ":e" & a).Copy

agora apenas um conselho, evite usar o select quando não for necessário, ele torna mais extenso e lerdo sua macro.
Agradeço a resposta,
Mas continua apenas a copiar a primeira linha dos produtos e eu gostaria que passasse para a segunda. Que copiasse todas as linhas preenchidas.
#24998
Você quer que copie todas as linhas preenchidas certo?

Veja se lhe atende, dessa vez eu testei na sua planilha e deu certo.

Dim a As Long
a = Sheets("Nova Encomenda").Range("c1048576").End(xlUp).Row
Sheets("Nova Encomenda").Range("b20:j" & a).Copy
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord