Ir ao conteúdo
  • Cadastre-se
Rafael Borges P.

Excel Copiar e Colar células no excel

Recommended Posts

Boa tarde amigos, tenho um documento no excel que possui algumas planilhas...

Estou usando vba e através de um código eu gero dados de duas planilhas para o Word.

 

A primeira planilha é o cadastro de alguns funcionários, já na segunda é a continuação( onde eu coloco local e etc)

Estive com problemas na hora de gerar os dados porque como a primeira planilha as vezes possuía mais de um cadastro, ou seja, usou mais de uma linha. Ai na segunda planilha, como tudo é o mesmo local fica só uma linha. Ao VBA fazer a leitura só passava o primeiro funcionário que cadastrei. Eu queria que então ao clicar no botão, ele copiasse as informações do local ( segunda planilha) e colasse na quantidade de linhas que foram criadas na primeira planilha...

 

Alguém poderia me ajudar?

adicionado 22 minutos depois

Estou usando o seguinte código:

 

Sub Retângulodecantosarredondados2_Clique()

'Copiar e colar dados do Gerar Documento
    Sheets("GERAR DOCUMENTO").Select
    Range("A2:H2").Select
    Selection.Copy
    Sheets("GERAR DOCUMENTO").Select
    Range("A3:H3").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    
    
Dim total As Integer

Range("A1").Select
total = (Cells(Rows.Count, 1).End(xlUp).Row)

    
    
MsgBox ("Basta clicar na janela do word que será aberta automaticamente.")


'Abrir documento do word pronto
Dim wdApp As Word.Application, wdDoc As Word.Document

On Error Resume Next
Set wdApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then 'Word isn't already running
    Set wdApp = CreateObject("Word.Application")
End If
   

Set wdDoc = wdApp.Documents.Open("meu documento")

wdApp.Visible = True


For i = 2 To total


'Passando para a primeira tabela do Word
 wdDoc.Tables(1).Rows.Add 'Adicionando 1 linha à tabela
 
 ThisWorkbook.Sheets("CADASTRO").Range("A" & i & ":D" & i).Copy
  wdDoc.Range(wdDoc.Tables(1).Cell(i, 1).Range.Start, wdDoc.Tables(1).Cell(i, 4).Range.End).PasteAndFormat (22)
 
'Passando para a segunda tabela do Word (O instrutor novamente)
 wdDoc.Tables(2).Rows.Add 'Adicionando 1 linha à tabela
 
ThisWorkbook.Sheets("CADASTRO").Range("A" & i).Copy
   wdDoc.Range(wdDoc.Tables(2).Cell(i, 1).Range.Start, wdDoc.Tables(2).Cell(i, 1).Range.End).PasteAndFormat (22)

'Passando para a segunda tabela do Word
 
ThisWorkbook.Sheets("CADASTRO").Range("E" & i & ":G" & i).Copy
  wdDoc.Range(wdDoc.Tables(2).Cell(i, 2).Range.Start, wdDoc.Tables(2).Cell(i, 4).Range.End).PasteAndFormat (22)
 
 
'Passando para a terceira tabela do Word ( O instrutor novamente)
 'wdDoc.Tables(3).Rows.Add 'Adicionando 1 linha à tabela
 
 ThisWorkbook.Sheets("GERAR DOCUMENTO").Range("A" & i).Copy
  wdDoc.Range(wdDoc.Tables(3).Cell(i, 1).Range.Start, wdDoc.Tables(3).Cell(i, 1).Range.End).PasteAndFormat (22)
 
'Passando para a terceira tabela do Word
  ThisWorkbook.Sheets("GERAR DOCUMENTO").Range("B" & i).Copy
 wdDoc.Range(wdDoc.Tables(3).Cell(i, 2).Range.Start, wdDoc.Tables(3).Cell(i, 2).Range.End).PasteAndFormat (22)
      
      
'Passando para a quarta tabela do Word
 'wdDoc.Tables(4).Rows.Add 'Adicionando 1 linha à tabela
 
ThisWorkbook.Sheets("GERAR DOCUMENTO").Range("C" & i & ":E" & i).Copy
  wdDoc.Range(wdDoc.Tables(4).Cell(i, 1).Range.Start, wdDoc.Tables(4).Cell(i, 3).Range.End).PasteAndFormat (22)

'Passando para a quinta tabela do Word
 'wdDoc.Tables(5).Rows.Add 'Adicionando 1 linha à tabela

ThisWorkbook.Sheets("GERAR DOCUMENTO").Range("F" & i & ":H" & i).Copy
wdDoc.Range(wdDoc.Tables(5).Cell(i, 1).Range.Start, wdDoc.Tables(5).Cell(i, 3).Range.End).PasteAndFormat (22)
 
   Application.CutCopyMode = False

Next
 
  Set wordapp = Nothing
  Set wdDoc = Nothing
 

End Sub

adicionado 23 minutos depois
22 minutos atrás, Rafael Borges P. disse:

Boa tarde amigos, tenho um documento no excel que possui algumas planilhas...

Estou usando vba e através de um código eu gero dados de duas planilhas para o Word.

 

A primeira planilha é o cadastro de alguns funcionários, já na segunda é a continuação( onde eu coloco local e etc)

Estive com problemas na hora de gerar os dados porque como a primeira planilha as vezes possuía mais de um cadastro, ou seja, usou mais de uma linha. Ai na segunda planilha, como tudo é o mesmo local fica só uma linha. Ao VBA fazer a leitura só passava o primeiro funcionário que cadastrei. Eu queria que então ao clicar no botão, ele copiasse as informações do local ( segunda planilha) e colasse na quantidade de linhas que foram criadas na primeira planilha...

 

Alguém poderia me ajudar?

adicionado 22 minutos depois

Estou usando o seguinte código:

 

Sub Retângulodecantosarredondados2_Clique()

'Copiar e colar dados do Gerar Documento
    Sheets("GERAR DOCUMENTO").Select
    Range("A2:H2").Select
    Selection.Copy
    Sheets("GERAR DOCUMENTO").Select
    Range("A3:H3").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    
    
Dim total As Integer

Range("A1").Select
total = (Cells(Rows.Count, 1).End(xlUp).Row)

    
    
MsgBox ("Basta clicar na janela do word que será aberta automaticamente.")


'Abrir documento do word pronto
Dim wdApp As Word.Application, wdDoc As Word.Document

On Error Resume Next
Set wdApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then 'Word isn't already running
    Set wdApp = CreateObject("Word.Application")
End If
   

Set wdDoc = wdApp.Documents.Open("meu documento")

wdApp.Visible = True


For i = 2 To total


'Passando para a primeira tabela do Word
 wdDoc.Tables(1).Rows.Add 'Adicionando 1 linha à tabela
 
 ThisWorkbook.Sheets("CADASTRO").Range("A" & i & ":D" & i).Copy
  wdDoc.Range(wdDoc.Tables(1).Cell(i, 1).Range.Start, wdDoc.Tables(1).Cell(i, 4).Range.End).PasteAndFormat (22)
 
'Passando para a segunda tabela do Word (O instrutor novamente)
 wdDoc.Tables(2).Rows.Add 'Adicionando 1 linha à tabela
 
ThisWorkbook.Sheets("CADASTRO").Range("A" & i).Copy
   wdDoc.Range(wdDoc.Tables(2).Cell(i, 1).Range.Start, wdDoc.Tables(2).Cell(i, 1).Range.End).PasteAndFormat (22)

'Passando para a segunda tabela do Word
 
ThisWorkbook.Sheets("CADASTRO").Range("E" & i & ":G" & i).Copy
  wdDoc.Range(wdDoc.Tables(2).Cell(i, 2).Range.Start, wdDoc.Tables(2).Cell(i, 4).Range.End).PasteAndFormat (22)
 
 
'Passando para a terceira tabela do Word ( O instrutor novamente)
 'wdDoc.Tables(3).Rows.Add 'Adicionando 1 linha à tabela
 
 ThisWorkbook.Sheets("GERAR DOCUMENTO").Range("A" & i).Copy
  wdDoc.Range(wdDoc.Tables(3).Cell(i, 1).Range.Start, wdDoc.Tables(3).Cell(i, 1).Range.End).PasteAndFormat (22)
 
'Passando para a terceira tabela do Word
  ThisWorkbook.Sheets("GERAR DOCUMENTO").Range("B" & i).Copy
 wdDoc.Range(wdDoc.Tables(3).Cell(i, 2).Range.Start, wdDoc.Tables(3).Cell(i, 2).Range.End).PasteAndFormat (22)
      
      
'Passando para a quarta tabela do Word
 'wdDoc.Tables(4).Rows.Add 'Adicionando 1 linha à tabela
 
ThisWorkbook.Sheets("GERAR DOCUMENTO").Range("C" & i & ":E" & i).Copy
  wdDoc.Range(wdDoc.Tables(4).Cell(i, 1).Range.Start, wdDoc.Tables(4).Cell(i, 3).Range.End).PasteAndFormat (22)

'Passando para a quinta tabela do Word
 'wdDoc.Tables(5).Rows.Add 'Adicionando 1 linha à tabela

ThisWorkbook.Sheets("GERAR DOCUMENTO").Range("F" & i & ":H" & i).Copy
wdDoc.Range(wdDoc.Tables(5).Cell(i, 1).Range.Start, wdDoc.Tables(5).Cell(i, 3).Range.End).PasteAndFormat (22)
 
   Application.CutCopyMode = False

Next
 
  Set wordapp = Nothing
  Set wdDoc = Nothing
 

End Sub

'Copiar e colar dados do Gerar Documento
    Sheets("GERAR DOCUMENTO").Select
    Range("A2:H2").Select
    Selection.Copy
    Sheets("GERAR DOCUMENTO").Select
    Range("A3:H3").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False

 

 

Nesta parte que preciso modificar, ao invés de ser A3:H3... Preciso que seja pela contagem de linhas da planilha CADASTRO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×