Blog Archive
About Me
Seguidores
Estatisticas
176: VBE - ActiveCell & ActiveCell.OffSet (II)
A propósito do post de 2006-12-03 (agora catalogado com o nº 173), fizeram a seguinte pergunta:
"O código só copia e cola as celulas A, B,C e D da linha seleccionada se a célula da coluna A estiver seleccionada. Se a célula da coluna D estiver seleccionada vai copiar e colar as células à direita da mesma, ora o que eu pretendia se possivel era:
Nas colunas A, B, C estão inscritos dados que não serão alterados (Lista ou base dados) e na coluna D irá escrever-se o nº de unidades pedidas. Após a inscrição das unidades pedidas na coluna D, activar-se-ia o CommandBoton para que o pedido passasse para a Folha2, colando os dados que estão nas colunas A, B, C e D dessa linha e o pedido seguinte na linha imediatamente a seguir."
Neste caso, o Código deverá ser alterado para o seguinte:
Private Sub CommandButton2_Click()
Dim MyNum
For MyNum = 2 To 50
If ActiveCell.Address = Range("D" & MyNum).Address Then
Range(ActiveCell, ActiveCell.Offset(0, -3)).Copy Destination:= _
Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
msg = MsgBox(Prompt:="Copiou com sucesso", Title:="Informação")
End If
Next MyNum
End Sub
Ou seja, se a célula activa estiver na coluna D (no código acima é uma das células da coluna D compreendida entre D2 e D50), efectua a cópia e dá mensagem de bem sucedida a cópia, caso contrário, ou seja, se a célula activa não for uma célula da coluna D, não copia nada, pura e simplesmente.