Inserir fórmula se estiver em branco se próxima célula na linha dentro do intervalo, mas congelar dados da célula anterior / remover fórmula

0

Eu tenho alguns usuários que estão inserindo dados manualmente de um excel gerado a partir de um sistema de relatórios e inserindo esses dados em centenas de células por dia. O formato do relatório gerado excel é estático, portanto, quero mapear esses dados para as células que eles estão inserindo. O problema é que os dados são um alvo em movimento.

Eu quero que a fórmula (algo como = 'data'B2) seja inserida na primeira célula do intervalo, se estiver em branco. Quando for executado na próxima vez, se houver dados na primeira célula da linha, ele precisará congelar esses dados / remover a fórmula e inserir a fórmula na próxima célula vazia dessa linha. Qualquer ajuda seria apreciada!

Seria algo como este pseudo código sábio:

Range = a1-a9
If cell a1 blank then = Data sheet a1
If not blank then freeze cell data/ remove formula and enter formula = Data sheet a1

(e assim por diante, se necessário (a menos que o código seja melhor))

até que todas as células no intervalo estejam cheias

    
por Urkus 30.10.2015 / 15:33

1 resposta

0

Aqui está o melhor que posso fazer com o que você descreveu:

Sub test()
Dim src As Worksheet
Set src = Sheets("Sheet3")
Dim dest As Worksheet
Set dest = Sheets("Sheet5")
Dim n As Long
Dim j As Integer
j = dest.Range("A" & Rows.Count).End(xlUp).Row + 1


For i = 1 To j
    If dest.Cells(i, 1) = "" Then
        dest.Cells(i, 1).Formula = "=Sheet3!A1"
        Else:  n = dest.Cells(i, 1)
        dest.Cells(i, 1) = n
    End If
Next
End Sub

Se A1 estiver em branco, ele fará A1:A2 caso contrário, tudo bem. Mude conforme necessário.

    
por 02.11.2015 / 20:19