About Me
Com tecnologia do Blogger.
Seguidores
Estatisticas
2006-11-09
172: Excel - Wild cards novamente
12:47 da manhã |
Publicada por
JRod - PORTUGAL |
Editar mensagem
Se, por exemplo, na Sheet3, em A3, pretendermos ter o resultado da soma de A1 da Sheet1 com A1 da Sheet2, então, podemos digitar:
=SUM('*'!A1), quando damos Enter, a fórmula transforma-se em: =SUM(Sheet1:Sheet2!A1)
Também tem o mesmo resultado, a seguinte fórmula: =SUM('She*'!A1) e a seguinte, também: =SUM('Sheet?'!A1)
Ou seja, a utilização de qualquer destas wild cards, tem o mesmo resultado.
Nota: também dá para outro tipo de fórmulas, como seja, MAX, MIN, AVERAGE, etc.
Créditos para Lori Miller
=SUM('*'!A1), quando damos Enter, a fórmula transforma-se em: =SUM(Sheet1:Sheet2!A1)
Também tem o mesmo resultado, a seguinte fórmula: =SUM('She*'!A1) e a seguinte, também: =SUM('Sheet?'!A1)
Ou seja, a utilização de qualquer destas wild cards, tem o mesmo resultado.
Nota: também dá para outro tipo de fórmulas, como seja, MAX, MIN, AVERAGE, etc.
Créditos para Lori Miller
2006-11-01
171: VBE - Offset, Copy Destination e PasteSpecial
4:20 da tarde |
Publicada por
JRod - PORTUGAL |
Editar mensagem
Se tivermos uma tabela na Sheet2, como no exemplo:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Set rng1 = ActiveCell 'Clicar duplamente sempre numa célula da coluna A,
'para que a função Offset() possa indicar o número da célula pretendida
Set rng2 = rng1.Offset(0, 1)
Set rng3 = rng1.Offset(0, 2)
rng2.Copy Destination:=Worksheets("Sheet1").[B3:D3] ' Range, porque são merged cells
rng3.Copy Destination:=Worksheets("Sheet1").[E3] 'altera a formatação no destino - é valor
Range("A1").Select ' Esta selecção de A1, é apenas para desactivar a ActiveCell
End Sub
Aqui, o resultado seria o seguinte:
teremos que aperfeiçoar o Código:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Set rng1 = ActiveCell 'Clicar duplamente sempre numa célula da coluna A,
'para que a função Offset() possa indicar o número da célula pretendida
Set rng2 = rng1.Offset(0, 1)
Set rng3 = rng1.Offset(0, 2)
rng2.Copy Destination:=Worksheets("Sheet1").[B3:D3] ' Range, porque são merged cells
rng3.Copy
Worksheets("Sheet1").[E3].PasteSpecial (xlValues) 'não altera a formatação no destino apesar de ser valor
[A1].Select ' Esta selecção de A1, é apenas para desactivar a ActiveCell
End Sub
e pretendermos copiar o conteúdo das colunas B e C, por linha para a Sheet1, como no exemplo:
podemos correr o risco de perdermos a formatação inicial na Sheet1, no que diz respeito ao valor, se utilizarmos o seguinte Código:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Set rng1 = ActiveCell 'Clicar duplamente sempre numa célula da coluna A,
'para que a função Offset() possa indicar o número da célula pretendida
Set rng2 = rng1.Offset(0, 1)
Set rng3 = rng1.Offset(0, 2)
rng2.Copy Destination:=Worksheets("Sheet1").[B3:D3] ' Range, porque são merged cells
rng3.Copy Destination:=Worksheets("Sheet1").[E3] 'altera a formatação no destino - é valor
Range("A1").Select ' Esta selecção de A1, é apenas para desactivar a ActiveCell
End Sub
Aqui, o resultado seria o seguinte:
Então, para que o resultado seja o desejado, isto é, sem perder a formatação original no destino:
teremos que aperfeiçoar o Código:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Set rng1 = ActiveCell 'Clicar duplamente sempre numa célula da coluna A,
'para que a função Offset() possa indicar o número da célula pretendida
Set rng2 = rng1.Offset(0, 1)
Set rng3 = rng1.Offset(0, 2)
rng2.Copy Destination:=Worksheets("Sheet1").[B3:D3] ' Range, porque são merged cells
rng3.Copy
Worksheets("Sheet1").[E3].PasteSpecial (xlValues) 'não altera a formatação no destino apesar de ser valor
[A1].Select ' Esta selecção de A1, é apenas para desactivar a ActiveCell
End Sub
NOTA: O Código VBA deve ser inserido na Sheet2, clicando com o botão direito do rato no tabulador (para aceder ao Editor de VBA) e escolhendo:
Subscrever:
Mensagens (Atom)