Saberexcel - o site das macros Essas macros e procedimentos do Aplicativo Microsoft Excel VBA, deletam colunas ou linhas [PARES], observem também que inserí um menu personalizado para facilitar o teste do aluno desenvolvedor, se inserissemos algum botão na folha de planilha para o teste certamente iria deletá-lo com os testes, então fiz o menu personalizado faça os testes através do menu personalizado, baixe o exemplo em um link no final da desta página
Sub Deletar_colunas_Pares() 'Determinar a última linha que contém valores R = Cells.SpecialCells(xlCellTypeLastCell).Column 'Se a última coluna for ímpar, acrescentar 1 ao seu valor If R Mod 2 <> 0 Then R = R + 1 'Realizar o loop decrescente de R até o valor 2 com incremento -2 For i = R To 2 Step -2 'Deletar a Coluna Columns(i).Delete Next i
End Sub
'Esta macro separa ímpares de pares somente por coluna. Teria como ela remover linha por linha ?
Sub Deletar_Linhas_Pares() 'Determinar a última linha que contém valores R = Cells.SpecialCells(xlCellTypeLastCell).Row 'Se a última linha for ímpar, acrescentar 1 ao seu valor If R Mod 2 <> 0 Then R = R + 1 'Realizar o loop decrescente de R até o valor 2 com incremento -2 For i = R To 2 Step -2 'Deletar a linha Rows(i).Delete Next i End Sub
'inserindo um pequeno contador que insere autonumeracão números de 1 a 10 'intenção didática, de como inserir uma autonumeração.
Sub numerando_colunas() [A1:A10].ClearContents Range("A1").Select For i = 1 To 10 ActiveCell.Offset(0, -1 + i ).Value = i Next End Sub
'Observe que mudamos a posição da variável "i" para posição row(linha) para autonumeração 'observe que a propriedade OffSet(linha, coluna) - descola linha e colunas. Sub numerando_linhas() [A1:L1].ClearContents
Dim s As String Range("A1").Select For i = 1 To 10 ActiveCell.Offset(-1 + i, 0).Value = i Next i End Sub
Sub dados() Range("G14").Value = "Acesse o menu personalizado, para realizar os testes" Range("G15").Value = "Fiz uma macro para montar um menu personalizado, " Range("G16").Value = "pois irá deletar linhas e colunas." Range("G17").Value = "com isso deletará dados na planilha" Range("G13").Select End Sub
EM OUTRO MÓDULO DE PROGRAMAÇÃO VOCE PODERÁ INSERIR OS PROCEDIMENTOS PARA O MENU PERSONALIZADO
Public Const CMDBARNOME = "LISTA MENU E CMDBAR" Sub menu()
Dim cmdBar As CommandBar Dim menu As CommandBarPopup Dim btn As CommandBarButton
Call menuDel
Set cmdBar = CommandBars.Add(Name:=CMDBARNOME, Position:=msoBarFloating) cmdBar.Width = 180 '.......' Set menu = cmdBar.Controls.Add(Type:=msoControlPopup) With menu .Caption = "Deletando Linhas e Colunas" .Width = 90 End With '.......' Set btn = menu.Controls.Add(Type:=msoControlButton) With btn .Caption = "Deletar Coluna Pares" .OnAction = "Deletar_colunas_Pares" End With '.......' Set btn = menu.Controls.Add(Type:=msoControlButton) With btn .Caption = "Deletar Colunas Pares" .OnAction = "Deletar_Linhas_Pares" End With '.......' Set menu = cmdBar.Controls.Add(Type:=msoControlPopup) With menu .Caption = "Numeros linhas e colunas" .Width = 90
End With '.......' Set btn = menu.Controls.Add(Type:=msoControlButton) With btn .Caption = "Numerando Colunas" .OnAction = "numerando_colunas" .FaceId = 654 End With '.......' Set btn = menu.Controls.Add(Type:=msoControlButton) With btn .Caption = "Numerando Linhas" .BeginGroup = True .OnAction = "numerando_linhas" .FaceId = 1044 End With '.......'
With cmdBar .Visible = True .Protection = msoBarNoChangeDock + msoBarNoCustomize + msoBarNoResize End With
End Sub
Sub menuDel() On Error Resume Next CommandBars(CMDBARNOME).Delete End Sub
NO MODULO DE PROGRAMAÇÃO VBE DO WORKBOOK INSIRA OS SEGUINTES PROCEDIMENTOS Private Sub Workbook_Open() 'Expedito Marcondes 'Site.....: http://www.saberexcel.com 'Email...: [email protected] Call mnu End Sub '...........................' Private Sub Workbook_BeforeClose(Cancel As Boolean) menuDel ThisWorkbook.Save End Sub
Aprenda tudo sobre o Aplicativo Microsoft Excel VBA com Saberexcel
Compre com qualidade, segurança tudo que possa imaginar nas lojas Submarino
|