none
Inserindo dados no Excel RRS feed

  • Pergunta

  •  

    Prezados,

     

    Criei um form em vba para alimentar uma planilha excel.

    Uso o comando abaixo para que, o form procure no excel (em uma aba especifica) a primeira linha vazia e insira os dados preenchidos no form nela.

     

    With Worksheets("Sheets1")
    x= .UsedRange.Rows.Count + 1
    .Cells(x, 1).Value = Textbox1.Value

    End With

     

    Acontece que com o codigo acima, se na linha a ser preenchida houver alguma celula com formula (=se, =somase, =procv, etc) o comando entende essa linha como "preenchida" e joga os dados do form para a linha subsequente.

    Há algum outro comando que procure na planilha a primeira linha vazia e insira nela os dados do form, mesmo que haja nessa linha, alguma celula com formula.

    O comando deve ignorar as formulas na celula (uma vez que não são dados) e preencher a linha com os dados do form.

     

    Alguem me ajuda ?

    Fabiano Lima

    terça-feira, 2 de outubro de 2007 15:32

Respostas

  • With Worksheets("Sheets1").Columns("A")
      x = .Find(What:="*", After:=.Cells(1), SearchDirection:=xlPrevious, SearchOrder:=xlByRows, LookIn:=xlFormulas).Row + 1
    End With
    'ou
    With Worksheets("Sheets1")
      x = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
    End With

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    quarta-feira, 8 de junho de 2011 13:33
    Moderador

Todas as Respostas

  • Fabiano,

     

    pra ser bem sincero não sei se há algum outro comando que ignore as fórmulas...o que vc pode fazer é um loop que percorrer célula por célula até encontrar a vazia, e pra isso pode usar a propriedade .Formula...entretanto, isso vai gerar mto processamento...

     

    Como vc tah trabalhando com uma planilha banco de dados, acredito que há alguma coluna que não haja formula nenhuma, naum tem?

    Se sim, vamos supor que ela seja a coluna E, ok?

     

    Range("E65536").End(xlUp).Offset(1,0).Select

     

    a linha de código acima vai selecionar a primeiro célula da coluna E que não tem fórmula...

     

    Deu pra entender?

    Analise cada caso e retorne os resultados,

     

    Abraços,

     

     

     

     

     

    quarta-feira, 3 de outubro de 2007 23:14
  • Para verificar se isto te ajuda, faça este teste e verifique o resultado:

     

    Public Sub TestaVal()
    Dim strRange As Range

        ActiveSheet.Cells(1, 1).Select

        ActiveSheet.Cells(2, 2).Value = 100
        ActiveSheet.Cells(3, 2).Value = Now()
        ActiveSheet.Cells(4, 2).FormulaR1C1 = "=IF(R[-2]C>50,1,2)"
        Set strRange = Cells.SpecialCells(XlSpecialCellsValue.xlTextValues)
        MsgBox strRange.Address

    End Sub

     

    Você obterá "$B$2EmbarrassedB$3", ou seja, vai contar a célula com valores e desprezar a célula  que contém formula.

     

    Abs,

    quinta-feira, 11 de outubro de 2007 22:39
  • Se possível envia por email a planilha rafa_hoffmann@hotmail.com
    Rafael Hoffmann
    terça-feira, 7 de junho de 2011 13:35
  • With Worksheets("Sheets1").Columns("A")
      x = .Find(What:="*", After:=.Cells(1), SearchDirection:=xlPrevious, SearchOrder:=xlByRows, LookIn:=xlFormulas).Row + 1
    End With
    'ou
    With Worksheets("Sheets1")
      x = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
    End With

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    quarta-feira, 8 de junho de 2011 13:33
    Moderador