Ir para conteúdo
Fórum Script Brasil
  • 0

criar uma macro


DANYY

Pergunta

Boa tarde!!

pessoal estou com uma duvida...

preciso criar uma macro que veja se as linhas da coluna g tem valores iguais e se essa tiver valores iguais tem q pegar o conteudo da coluna D e recortar ele e colar na linha anterior da coluna D e depois excluir a linha que tiver com a coluna d e f vazias.

por exemplo:

linha 1 - coluna D esta vazia, coluna F tem valor

linha 2 - coluna D tem valor, coluna F esta vazia

Quando tiver nessa situação e a coluna G das duas linhas tiver o mesmo valor a macro deve recortar o conteudo da coluna D da linha 2 e colar na mesma coluna (D) na linha 1 e excluir a linha que esta sem informacao na coluna D e F, pois essa informacao foi recortada..preciso que a macro percorra todo o arquivo e quando encontrar essa situação fazer esse procedimento..

Sera q tem como fazer issoo?? Desde já agradeço!!

não sei se vai dar certo o que to fazendo e tambem não sei como fazer pra que entenda que a informacao recortada da linha d seja colocada na mesma coluna só que na linha acima..pra ficar a coluna d e a coluna f preenchida:

Sub corrige()
Dim ws As Worksheet
Dim celulaf As String
Dim celulad As String
Set ws = Application.Worksheets("plan1")
Application.ScreenUpdating = False
finalrow = Range("A65536").End(xlUp).Row
For i = 1 To finalrow
celulaf = Cells(i, 6)
celulad = Cells(i, 4)
For j = 1 To finalrow
If celulaf = "" Then
Range celulad.Select
Selection.Cut
Range celulad.Select
ActiveSheet.Paste
End Sub

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

danyy, ficou meio dificil de entender... mas acho q deve ser tipo isso:

For i = 1 To finalrow - 1
    If Cells(i, 7).Value = Cells(i + 1, 7).Value Then 'aqui compara a coluna g com a proxima linha
        Cells(i, 4).Value = Cells(i + 1, 4).Value 'aqui copia a proxima linha da coluna d pra linha atual
        
        Rows(i + 1).Select
        Selection.Delete Shift:=xlUp 'apaga a proxima linha
    End If
Next[/code]

veja se é isso.

mas pra pegar a ultima linha, não precisa ir ate o Range("A65536"). porque desse jeito, mesmo q tenha so 100 linhas preenchidas, ele vai querer procurar todas as 65536 e ai você vai perder muito tempo.

o codigo q eu te passei no otro tópico pega a ultima linha q tiver preenchida, assim você não perde tempo.

Link para o comentário
Compartilhar em outros sites

  • 0

Oiiiee, então estou com outra duvida olha só...fiz umas alterações naquele codigo e tava dando certinhoo td beleza até que apareceu outra situação que não sei como resolver:

Private Sub corrige()
Dim ws As Worksheet
Dim vlrd As String
Dim Vlrc As String

Set ws = Application.Worksheets("plan1")
Application.ScreenUpdating = False
finalrow = Range("A65536").End(xlUp).Row
For i = 1 To finalrow - 1
vlrd = Cells(i, 4) = ""
Vlrc = Cells(i, 6) = ""
        
        If Cells(i, 7).Value = Cells(i + 1, 7).Value And vlrd Then  'aqui compara a coluna g com a proxima linha
           Cells(i, 4).Value = Cells(i + 1, 4).Value  'aqui copia a proxima linha da coluna d pra linha atual
           Cells(i, 3).Value = Cells(i + 1, 3).Value
           Cells(i, 5).Value = Cells(i + 1, 5).Value
        
        Rows(i + 1).Select
        Selection.Delete shift:=xlUp 'apaga a proxima linha
        
        End If
        If Cells(i, 7).Value = Cells(i + 1, 7).Value And Vlrc Then
           Cells(i, 6).Value = Cells(i + 1, 6).Value
           Cells(i, 3).Value = Cells(i + 1, 3).Value
           Cells(i, 5).Value = Cells(i + 1, 5).Value
           
           
        Rows(i + 1).Select
        Selection.Delete shift:=xlUp
        End If
Next
End Sub

acontece que o arquivo tem situacao que nas celula g na sequencia tem tres valores iguais e quando for assim não deve ser excluida a linha, só quando for dois valores iguais...como que eu faço pra poder anular o procedimento quando o sistema encontrar mais de dois valores iguais na sequencia das celulas da coluna G??

Brigaduuu!!

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0
nossaaaaa!!!! deu super certoooo!! exatamente o que eu precisavaaaa!!! Mestre Kuroi muito obrigadaaaaa!!! te amu S2

hehe eu sou genial

acontece que o arquivo tem situacao que nas celula g na sequencia tem tres valores iguais e quando for assim não deve ser excluida a linha, só quando for dois valores iguais...como que eu faço pra poder anular o procedimento quando o sistema encontrar mais de dois valores iguais na sequencia das celulas da coluna G??

danny, primera coisa, declara vlrd e vlrc como Boolean e não String. tem mais sentido como Boolean, você não ta guardando texto dentro delas.

agora, acho q seu problema é q quando ele apaga a linha depois de testar o vlrd, embaxo você manda testar o vlrc pra mesma linha, mas ela já foi excluida, não existe mais. tenta por um else if (assim, ele so vai testar a segunda condicao se a primera não tiver dado certo):

If Cells(i, 7).Value = Cells(i + 1, 7).Value And vlrd Then  'aqui compara a coluna g com a proxima linha
   Cells(i, 4).Value = Cells(i + 1, 4).Value  'aqui copia a proxima linha da coluna d pra linha atual
   Cells(i, 3).Value = Cells(i + 1, 3).Value
   Cells(i, 5).Value = Cells(i + 1, 5).Value

Rows(i + 1).Select
Selection.Delete shift:=xlUp 'apaga a proxima linha

ElseIf Cells(i, 7).Value = Cells(i + 1, 7).Value And Vlrc Then
   Cells(i, 6).Value = Cells(i + 1, 6).Value
   Cells(i, 3).Value = Cells(i + 1, 3).Value
   Cells(i, 5).Value = Cells(i + 1, 5).Value
  
  
Rows(i + 1).Select
Selection.Delete shift:=xlUp
End If[/code]

ve se da certo.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...