Buscar na INFO
NOTCIAS
BLOGS
GAMES
REVIEWS
GADGETS
DOWNLOADS
DICAS
FRUM
MULTIMDIA
TPICOS
DESENVOLVIMENTO
REVISTA
ASSINE
Pesquise no Frum
Busca Avanada
Buscar
Buscar
J tive a oportunidade de disponibilizar aqui outros modos de como identificar qual a ltima linha (ou o ltimo registro) numa planilha de dados. Entre todas as tcnicas de VBA, esta uma das melhores. Para ser breve e suscinto, as outras tcnicas volta e meia eram falhas devido a dirty area . Depois de algum tempo alguns programadores acharam a melhor tcnica para identificarmos a ltima ocorrncia sem falhas. O exemplo abaixo uma variante da tcnica ensinada pelo Excel MVP, Bob Umlas. Testem naquelas bases de dados mais parrudas, com grandes quantidades de dados, acima de 100.000 linhas e vejam o excelente resultado. Cdigo: Selecionar tudo F u n c t i o nL C e l l ( w sA sW o r k s h e e t )A sR a n g e D i mL R o w & ,L C o l % O nE r r o rR e s u m eN e x t W i t hw s L e tL R o w &=. C e l l s . F i n d ( W h a t : = " * " ,S e a r c h D i r e c t i o n : = x l P r e v i o u s ,S e a r c h O r d e r : = x l B y R o w s ) . R o w L e tL C o l % =. C e l l s . F i n d ( W h a t : = " * " ,S e a r c h D i r e c t i o n : = x l P r e v i o u s , S e a r c h O r d e r : = x l B y C o l u m n s ) . C o l u m n E n dW i t h S e tL C e l l=w s . C e l l s ( L R o w & ,L C o l % ) E n dF u n c t i o n
Usando esta funo: A funo LCell demonstrada aqui no poder ser utilizada diretamente em uma planilha, mas poder ser evocada a partir de outro procedimento VBA. Implemente o cdigo como abaixo: Cdigo: Selecionar tudo S u bI d e n t i f i c a ( ) M s g B o xL C e l l ( S h e e t 1 ) . R o w E n dS u b
Outra contribuio interessante essa cuja a funo retorna diretamente o nmero da ltima linha, inclusive para uma clula de planilha, contribuio de Adilson Soledade neste Frum da Info, num tpico que iniciei: Cdigo: Selecionar tudo F u n c t i o nL R o w ( R e fA sR a n g e )A sI n t e g e r D i mw sA sW o r k s h e e t O nE r r o rR e s u m eN e x t S e tw s=R e f . P a r e n t L R o w=w s . C e l l s . F i n d ( W h a t : = " * " ,S e a r c h D i r e c t i o n : = x l P r e v i o u s ,S e a r c h O r d e r : = x l B y R o w s ) . R o w E n dF u n c t i o n
info.abril.com.br/forum/viewtopic.php?t=19694
1/5
22/07/13
info.abril.com.br/forum/viewtopic.php?t=19694
2/5
22/07/13
Este cdigo, Bernardes_DeleteBlankRows, excluir uma linha, se toda a linha estiver em branco. Apagar a linha inteira se uma clula na coluna especificada estiver em branco. Somente a coluna marcada, outras so ignoradas.
info.abril.com.br/forum/viewtopic.php?t=19694
3/5
22/07/13
Para usar este cdigo, selecione um intervalo de clulas por colunas e, em seguida, execute o cdigo. Se a clula na coluna estiver em branco, a linha inteira ser excluda. Para processar toda a coluna, clique no cabealho da coluna para selecionar a coluna inteira. Este cdigo eliminar as linhas duplicadas em um intervalo. Para usar, selecione uma coluna como intervalo de clulas, que compreende o intervalo de linhas duplicadas a serem excludas. Somente a coluna selecionada usada para comparao. Cdigo: Selecionar tudo S u bB e r n a r d e s _ D e l e t e D u p l i c a t e R o w sP b l i c a( ) ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' D e l e t e D u p l i c a t e R o w s " I s t oi r a p a g a rr e g i s t r o sd u p l i c a d o s ,c o mb a s en ac o l u n aa t i v a .O us e j a , " s eom e s m ov a l o re n c o n t r a d om a i sd eu m av e zn ac o l u n aa c t i v a ,m a st o d o s " o sp r i m e i r o s( l i n h an m e r om a i sb a i x o )s e r oe x c l u d o s . " ' P a r ae x e c u t a ram a c r o ,s e l e c i o n eac o l u n ai n t e i r aq u ev o c d e s e j ae s c a n e a r ' d u p l i c aee x e c u t a re s t ep r o c e d i m e n t o . ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' RD i mA sL o n g D i mNL o n g VV a r i a n tD i m D i mR n gG a m a O nE r r o rG o T oE n d M a c r o A p p l i c a t i o n . S c r e e n U p d a t i n g=F a l s e A p p l i c a t i o n . C a l c u l a t i o n=x l C a l c u l a t i o n M a n u a l S e tR n g=A p p l i c a t i o n . I n t e r s e c t( A c t i v e S h e e t . U s e d R a n g e ,_ A c t i v e S h e e t . C o l u m n s( A c t i v e C e l l . C o l u m n ) ) L e tA p p l i c a t i o n . S t a t u s B a r=" P r o c e s s a m e n t od eL i n h a : "&F o r m a t( R n g . R o w," # , # #0" ) L e tN=0 L e tR=R n g . R o w s . C o u n tT o2S t e p1 I FM o dR5 0 0=0T h e n L e tA p p l i c a t i o n . S t a t u s B a r=" L i n h ad ep r o c e s s a m e n t o : "&F o r m a t( R" ,##0" ) E n dI f ?=R n g . C e l l s( R ,1 ) .V a l o rV ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' N o t a" q u eC O U N T I Fo b r a se s t r a n h a m e n t ec o mu m av a r i a n t eq u ei g u a lav b N u l l S t r i n g . "A oi n v sd ep a s s a rn av a r i a n t e ,v o c p r e c i s ap a s s a rv b N u l l S t r i n ge x p l i c i t a m e n t e . ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' L e tV=v b N u l l S t r i n gE n t o L e tA p p l i c a t i o n . W o r k s h e e t F u n c t i o n .C O N T . S E( R n g . C o l u m n s( 1 ) ,v b N u l l S t r i n g ) >1E n t o R n g . R o w s( R ) .E n t i r e R o w . D e l e t e L e tN=N+1 E n dI f E l s e S eA p p l i c a t i o n . W o r k s h e e t F u n c t i o n . C o u n t I f( R n g . C o l u m n s( 1 ) ,V ) >1E n t o , ( R ) .R n g . R o w sE n t i r e R o w . D e l e t e L e tN=N+1 E n dI f E n dI f N e x tR E n d M a c r o : L e tA p p l i c a t i o n . S t a t u s B a r=F a l s e L e tA p p l i c a t i o n . S c r e e n U p d a t i n g=T r u e L e tA p p l i c a t i o n . C a l c u l a t i o n=x l C a l c u l a t i o n A u t o m a t i c M s g B o x" D u p l i c a rl i n h a se x c l u d a s : "&C S t r( N) E n dS u b
Tags: VBA, excel, dirty area, column, row, linha, coluna, delete
http://inanyplace.blogspot.com/
Guima Iniciado
Status: Mensagens: 492 Registro: 06 Abr 2009 Karma: [22] vba_bernardes Membro
Status:
info.abril.com.br/forum/viewtopic.php?t=19694
4/5
22/07/13
Mensagens: 193 Registro: 18 Out 2012 Localizao: SANTOS - SP BRASIL Karma: [6] Website
Todas as mensagens
Hora da Mensagem
Crescente
Ir
VBA
Quem est online
Ir
Usurios vendo este frum: Nenhum usurio registrado online e 12 visitantes PUBLICIDADE Pgina Principal A Equipe Remover cookies deste frum Horrio de Braslia Powered by phpBB 2000, 2002, 2005, 2007 phpBB Group Traduzido por phpBB Brasil
info.abril.com.br/forum/viewtopic.php?t=19694
5/5