Eai galera tudo tudo tranquilo??
to precisando ajuda numa macro para imprimir a folha de ponto dos funcionarios aqui da empresa a macro ta ai embaixo só que ta dando erro na hora de colar o nome do funcionario que é retirado de uma aba e colado na folha de ponto. Se alguem puder me ajudar a entender o que eu estou fazendo de errado eu agradeço!
Sub Macro16()
'
' Macro16 Macro
'
'
Sheets("Colaboradores").Select
Range("A2").Select
Do While ActiveCell <> ""
Application.CutCopyMode = False
Selection.Copy
Sheets("Folha").Select
Range("E1").Paste
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("Colaboradores").Select
ActiveCell(x1Down).Select
Loop
MsgBox "A impressão das Folhas de Ponto terminou!"
End Sub
Abraços
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Hugo, altere o Paste por PasteSpecial.
Agora não sei se entendi corretamente, em sua rotina é selecionado A2 e depois temos a instrução :
Do While ActiveCell <> "" ou seja, enquanto A2 for diferente de VAZIA, então o Do Wihile só vai correr uma vez devido de no final termos a instrução ActiveCell(x1Down).Select que seleciona A1 e é encerrado o Loop.
Então se a intenção é copiar uma celula de cada vez que se encontram na Coluna A a partir de A2 usando o Loop a rotina deveria ser construida usando For...Next, se for isto, a rotina abaixo irá fazer este serviço com poucas linhas :
Sub MacroMauro() Sheets("Colaboradores").Select 'Conta a qde de dados na coluna A Set sRng = Range("A" & Rows.Count).End(xlUp) For x = 2 To sRng + 1 Range("A" & x).Copy Destination:=Worksheets("Folha").Range("E1") Worksheets("Folha").PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False Next x MsgBox "A impressão das Plan2s de Ponto terminou!" End Sub
Se não for isto, fica uma sugestão.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel