Notifications
Clear all

Macro para enxegar a primeira célula vazia

7 Posts
3 Usuários
0 Reactions
1,747 Visualizações
(@celri_33)
Posts: 0
Estimable Member
Topic starter
 

Bom dia Galera!

Bom, la vai:

Preciso de um código VBA que me faça encontrar a primeira célula vazia de uma determinada coluna, nesta coluna tenho varias informações, em números, eu pedi para uma macro reorganizar do maior para o menor sendo que as células vazias ficariam por ultimo, mas como cada dia é um arquivo novo com mais informações, as vazias mudam de posições, se hoje ela esta exemplo na célula A50, amanhã ela estará na A60, se eu fizer a ordem inversa, ele classifica os números e ignora as vazias, e se usar o auto filtro, para trazer só as vazias, na hora de ir para a primeira célula vazia, eu não consigo fazer.

Consegui explicar?

 
Postado : 05/03/2015 6:10 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Use o GM (Gravador de Macros), ou poste seu arquivo modelo compactado, contendo o antes e o depois!!!!!

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/03/2015 11:46 am
(@celri_33)
Posts: 0
Estimable Member
Topic starter
 

Oi Amigo, veja o código:
Repare que ao selecionar a criterio para encontrar a celula vazia ele manda para Range F17063 mas este numero muda a cada dia, por isso a macro deveria encontrar dentro da coluna a primeira célula vazia .

Se não der para fazer nada com a informação, vou gerar os relatórios amanha e envio a planilha.

Sub Macro3()
'
' Macro3 Macro
'

'
ActiveSheet.Range("$A$6:$T$23006").AutoFilter Field:=6, Criteria1:="="
ActiveWindow.SmallScroll Down:=-9
Range("F17063").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[7],Ontem!C[5]:C[13],9,0)),"""",(VLOOKUP(RC[7],Ontem!C[5]:C[13],9,0)))"
Range("D17063").Select
Selection.End(xlDown).Select
Range("F23006").Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
Range("F23006").Select
Selection.End(xlUp).Select
Range("F6").Select
ActiveSheet.Range("$A$6:$T$23006").AutoFilter Field:=6
Range("A1").Select
ActiveSheet.Previous.Select
End Sub

 
Postado : 05/03/2015 12:09 pm
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Você deve criar uma variável para armazenar o número da última linha desejada e utilizá-la no código para evitar este problema. Veja um modelo de como fazer a adapte ao seu código completo:

Dim rlast As Long

rlast = Cells(rows.Count, "A").End(xlUp).Row

ActiveSheet.Range("$A$6:$T$" & rlast).AutoFilter Field:=6, Criteria1:="="

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 05/03/2015 12:15 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Se for só isso..

Dim lr As Integer
    lr = Plan1.Range("F" & Rows.Count).End(xlUp).Row + 1
    'ou........................
    lr = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1

Se não conseguir adaptar, por favor postar seu arquivo modelo.

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/03/2015 12:18 pm
(@celri_33)
Posts: 0
Estimable Member
Topic starter
 

Você deve criar uma variável para armazenar o número da última linha desejada e utilizá-la no código para evitar este problema. Veja um modelo de como fazer a adapte ao seu código completo:

Dim rlast As Long

rlast = Cells(rows.Count, "A").End(xlUp).Row

ActiveSheet.Range("$A$6:$T$" & rlast).AutoFilter Field:=6, Criteria1:="="

Funcionou perfeitamente, obrigado!

 
Postado : 05/03/2015 12:51 pm
(@celri_33)
Posts: 0
Estimable Member
Topic starter
 

Boa tarde!!

Se for só isso..

Dim lr As Integer
    lr = Plan1.Range("F" & Rows.Count).End(xlUp).Row + 1
    'ou........................
    lr = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1

Se não conseguir adaptar, por favor postar seu arquivo modelo.

Att

Utilizei a do nosso amigo acima, muito obrigado mesmo assim!

 
Postado : 05/03/2015 12:52 pm