Macro Criar quantidade exata de linhas


#21

No caso seria assim né Luis?

Porque continua dando o mesmo erro…


#22

Clique em depurar e me mostre qual linha esta dando o erro.
Talvez algum campo não esteja numérico na coluna E.
Acho que vc pode colocar assim para tentar sanar o problema:

if cells(i,5).value <=0 and cells(i,1).text <>“Total Produto:” then

Tente isto por favor. Só vou conseguir olhar novamente no final da tarde, pois estou saindo…

abs


#23

Olá Luis, devia ter algum problema na minha planilha que ainda não sei o que foi, sei que perdi parte da minha macro e tive de refazer, refazendo rodou perfeita os seus códigos, show de bola!

Teria agora como fazer um código para que a partir da coluna B, abaixo da palavra “Total do Cliente:” ela apague essa linhas e bordas que restaram da planilha? Tipo que acabe a planilha a partir dali, não sei se me entende. Porque se notar sobraram linhas que eu gostaria de tirar fora, dai acho que praticamente finalizo meu trabalho. Grato!


#24

Anderson, dá sim, só que só vou conseguir olhar amanha…
Então amanha eu te passo…
ah, dá um control end para eu ver se está ativada a ultima linha, ou seja, se ele vai até a ultima linha que está com as bordas. Se não, me fale qual a ultima linha com borda. Posso fazer até o fim, mas não é lógico fazer isto.
Estou vendo que tem um 0 perdido ali… pode apagar tudo ?
abs


#25

Sem problemas Luis, a planilha está no meu trabalho, amanha olho sobre o control end e t passo, mas problema q a ultima linha com dados varia d planilha p planilha, pq esta é uma tabela pronta onde importo algumas informações e fica da forma q esta, entende? Entao eu precisava d uma macro q identificasse a ultima linha c informações, de preferência abaixo da coluna B, pq abaixo dele poderia ser td excluido, incluindo aquele 0 perdido la, abaixo ainda tem alguns 0 perdidos, senao me engano essa tabela vai até a linha 2000.

Grato.


#26

Bom dia Anderson…

Jogue a rotina abaixo logo apos o programa retirar as linhas em branco. Não pode haver nenhuma linha em branco na coluna A. Portanto tem que estar junto com o programa anterior, antes daquele cont = 0.
image
Se tiver alguma linha em branco no cabeçário, troque onde coloquei A1 para A5 por exemplo. Apenas nesta primeira linha.

Range(“A1”).Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range(“A1”).Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Clear
Range(“A1”).Select

Teste em um arquivo em separado para ver se está tudo certo.
abs


#27

Bom dia Luis, desculpe a demora, correria aqui.

Perfeito! Valeu!

Agora, não sei se estou abusando da boa vontade de vocês, qualquer coisa me avisa por favor, porque sou novo nesta área e estou aprendendo contigo.

Luis, existe uma forma de eu deixar toda a linha em negrito, quando na coluna E estiver um numero acima de “0”?

Grato.

Anderson.


#28

Selecione toda as células que deseja o negrito condicional, clique na aba “página inicial”, opção “Formatação Condicional”, “Nova Regra”, Escolha “Usar fórmula para determinar quais células devem ser formatadas”. Coloque a fórmula:
=e?=0. clique em formatar e marque negrito no “Estilo da Fonte”
Obs. Você citou a coluna E, mas tem que definir a linha. Ex. E2, E5, etc. Coloque o número da linha na fórmula acima no lugar da interrogação.
Espero ter ajudado.


#29

Olá Paulo, obrigado pela ajuda, mas neste caso ele destacou em negrito somente o valor da coluna E, mas eu queria que quando na E fosse maior que “0” ficasse a linha inteira em negrito, entende? Não sei se é possível fazer algo do tipo…


#30

Oi Anderson…
Dá sim… Rode esta a parte da outra, pois não fiz para ser rodado junto com a que fizemos ok.

For i = 1 To Range("a1").End(xlDown).Row
   If Cells(i, 5).Value > 0 Then
        Rows(i).Select
        With Selection
            .Font.Bold = True
        End With
   End If
Next

agora se precisar ser junto, pegue este inicio até o fim e inclua na rotina, como fiz abaixo.

For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
' inicio *******************************************
        If Cells(i, 5).Value > 0 Then
            Rows(i).Select
            With Selection
                  .Font.Bold = True
            End With
        End If
'fim ****************************************
    If Cells(i, 5) = "" And Cells(i, 1) <> "Total Produto:" Then
         Cells(i, 5).Select
         ActiveCell.EntireRow.Delete
    End If
Next

Se precisa aumentar a fonte, ou italico, etc é só ir acrescentando:

    With Selection
        .Font.Bold = True
        .Font.Italic = True
        .Font.Size = 15
    End With

abs


#31

Anderson, é para selecionar as células que deseja que fique em negrito e não a coluna E, por isso que ele colocou a coluna E em negrito.
Abs


#32

Olá Luis, perfeito cara, funcionou como o esperado!

Eu tentei fazer com que a macro imprimisse toda a planilha ativa, mas acabou fazendo uma impressão sem fim, ele rodava toda a macro, e quando era para imprimir, voltava para a mesma impressão e assim ficava intermitente, usei o código abaixo no fim, tem como fazer ele imprimir corretamente?

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False


#33

Olá Anderson,
É isto mesmo que vc fez…
Tente definir novamente a área de impressão e fazer uma impressão manual para ver se funciona… As vezes isto resolve.
abs


#34

Boa tarde Luis.

Primeiramente agradeço toda a atenção de você aqui no fórum, resolvi todas minhas questões e duvidas, parabéns pela paciência, heheh

Gostaria de tirar uma outra duvida, é possível no excell montar uma regra onde por exemplo eu diga se na coluna “A” seja diferente de “1”e na coluna “B” seja diferente “2”(isto na mesma linha) o excell colore a linha inteira onde as informações diferentes destas opções estejam? Não sei se me entende… poderia ser uma macro ou formatação condicional (esta ultima não consegui localizar algo do tipo).

Anderson.


#35

Olá Anderson, não estava entrando no forum, desculpe.
Dá sim, jogue esta rotina em uma macro.
abs

' coloque a linha que vai começar a pintar, no caso a linha 4
    LinhaInicial = 4

    For i = LinhaInicial To Range("A" & LinhaInicial).End(xlDown).Row
        If Cells(i, 1) <> 1 Or Cells(i, 2) <> 2 Then
' troque a LETRA pela coluna a ser pintada.
'       ex Coluna "A"  até "E"
            Range("A" & i, "E" & i).Select
            With Selection.Interior
                .Pattern = xlSolid
                .PatternColorIndex = xlAutomatic
' troque a cor colocando                        1, 2, 3, 4, 5 ou 6 no lugar do 1 no final
                .ThemeColor = xlThemeColorAccent1
                .TintAndShade = 0.599993896298105
                .PatternTintAndShade = 0
            End With
        End If
    Next

#36

Olá Luiz! Tudo bem?

Gostaria de ver se poderia me ajudar em outra questão agora…

image

precisava de uma macro que marcasse a célula, quando por exemplo na coluna C os numeros e naquela exata ordem não estiverem dentro da colunas G. a Coluna G seria a base de tudo, onde os numeros das demais colunas (D,E,F) deveram estar dentro e na ordem nos numeros na coluna G.

Para voce entender melhor onde quero chegar, a coluna G é uma chave de aecsso de nota fiscal, e este relatório que rodo, onde buscam dados lançados por usuários, e se algo estiver lançado errado eu gostaria de identificar para corrigir mais tarde, entende?

será que é possivel fazer uma macro assim?


#37

Olá Ander1405 tudo bem sim, e você ?
Dá sim, só preciso saber o formato que vc usa… É padrão ? Estou vendo que o 2 vira 002 o 46103 vira 000046103. E os demais numeros que estão no começo 421811 não precisa saber de onde ele vem ? É somente estes da C D E F que tem que verificar ?
Quais células são números e quais são textos ?
São sempre nestas colunas ?
Como vc quer identificar o erro ?
No aguardo


#38

Resolvi te mandar um arquivo, assim vc muda como achar melhor…
Veja a rotina, pois fiz de 2 maneiras.
Abs

ander2.xlsm (23,8 KB)


#39

Olá Luiz! Boa tarde!

Com certeza serviu muito para mim, fiz algumas adaptações para se adequar a minha necessidade, mas ficou perfeita! Espero não estar sendo chato lhe perguntando as vezes sobre como fazer e tals, mas de qualquer forma fico muito agradecido pela ajuda que tens me dado nestes meses.

Valeu!


#40

Olá Anderson, um mês depois estou lendo no fórum o que não li, por isso a demora em te responder.
Fique tranquilo, pode perguntar, afinal estamos aqui no fórum para isto. Não sou expert em VBA, aliás, tem um pessoal aqui que manja e muito, mas tenho alguma experiência em programação o que me ajuda a resolver muitas coisas em VBA.
abs