Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por Saulo
Posts
#51961
Na planilha anexa, surgiu uma nova demanda e devido a essa necessidade solicito ajuda para agregar a macro já existente, mantendo as atuais funcionalidades consistentes (Com Créditos ao membro Jimmy) a seguinte situação:
Quando houver uma data de reprogramação na célula H11 da planilha “Inserir Pendencia NC”, que seja deletado o campo: “Data Encerramento” na planilha “Registro Pendencia NC” na coluna M.
IMPORTANTE: o replace deve ser do tipo 1:1, ou seja, aplica-se somente ao “Nº Pendência” escolhida na célula H9.
Exemplo: caso o “Nº Pendência” escolhido seja a número 2 então somente a “Data Encerramento” na planilha “Registro Pendencia NC” desta pendencia dever ser deletada mantendo as demais integras.
OBS: A macro em questão encontra-se no botão "ATUALIZAR" na planilha "Inserir Pendencia NC"
Desde já Agradeço
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#51976
Escrevi um novo código pois o seu apresenta várias inconsistências e imperfeições e remendá-lo ficaria ainda pior, então substitua o seu código abaixo
Código: Selecionar todos
Sub AtualizaPendenciasNCsV1()

Dim WSP As Worksheet
Dim WSIP As Worksheet
Dim WSPLinha As Long, Col

Set WSP = Sheets("Registro Pendencia NC")
Set WSIP = Sheets("Inserir Pendencia NC")
    WSPLinha = 7

Do While WSP.Cells(WSPLinha, 1).Value <> ""

    If WSP.Cells(WSPLinha, 1).Value = WSIP.Range("H9").Value Then
        Salto = 3
        For Col = 10 To 15
            If Col >= 14 Then Salto = 6
            If WSIP.Range("H" & Col).Value <> "" Then WSP.Cells(WSPLinha, Col + Salto).Value = WSIP.Range("H" & Col).Value
        Next

        If Range("P" & WSPLinha).Value = "Não Eficaz" Then Range("M" & WSPLinha & ":N" & WSPLinha).Value = ""
        If Range("N" & WSPLinha).Value <> "" Then Range("M" & WSPLinha).Value = "" '
       Exit Do 'Se não houver possibilidade de haver mais linhas com o mesmo N.C., não é necessário seguir o DO/LOOP, logo, pode abortar o DO
   End If
    WSPLinha = WSPLinha + 1

Loop

WSIP.Range("H9:H15").Value = ""

End Sub
por este
Código: Selecionar todos
Sub AtualizaPendenciasNCsV2()
 Dim nc As Long
  nc = Sheets("Registro Pendencia NC").[A:A].Find([H9]).Row
  Sheets("Registro Pendencia NC").Cells(nc, 13).Resize(, 4).Value = Application.Transpose([H10].Resize(4).Value)
  Sheets("Registro Pendencia NC").Cells(nc, 20).Resize(, 2).Value = Application.Transpose([H14].Resize(2).Value)
  [H9:H15] = ""
End Sub
funcionamento - preencha adequadamente o intervalo H9:H15 na planilha Inserir Pendencia NC e rode o código

obs. verifique, pois me parece que o código que eu sugeri acima torna desnecessário o código existente no módulo da planilha Registro Pendencia NC ; se for confirmado então exclua aquele código
Por Saulo
Posts
#51991
Prezado osvaldomp 28 Jan 2020 às 09:33
Boa Tarde! Primeiramente muito obrigado por dispor de seu tempo para ajudar-me.
Então...
Concordo plenamente com Você, porem peço se possível, que Você analise o código anterior, pois nele tem uma regra estabelecida quanto ao resultado da verificação oriundo da célula H13 da planilha “Inserir Pendencia NC” e que faz alterações na planilha “Registro Pendencia NC” nos campos: Data Encerramento e Data Reprogramação caso o resultado seja igual a “Não Eficaz”.
Pois bem...
O único ajuste a ser feito no seu código para que possamos utilizá-lo a partir de agora é o seguinte: Caso o resultado da verificação seja igual a “Eficaz”, as datas existentes nas colunas: M, N e O, na planilha "Registro Pendencia NC" devem ser mantidas.
OBS: Anexo planilha já com seu código.
Desde já Agradeço
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#51993
Saulo escreveu: Caso o resultado da verificação seja igual a “Eficaz”, as datas existentes nas colunas: M, N e O, na planilha "Registro Pendencia NC" devem ser mantidas.
O código não utiliza critérios para limpar ou não limpar células na planilha Registro Pendencia NC.

Conforme eu observei no post anterior (funcionamento - preencha adequadamente o intervalo H9:H15 na planilha Inserir Pendencia NC e rode o código), o código irá replicar na planilha destino exatamente como estiverem as células no intervalo H9:H15 na planilha de origem, ou seja, células preenchidas serão replicadas preenchidas e células vazias serão replicadas vazias. Então se você deixar vazias as células H9 e H10 elas serão replicadas vazias em M:N.

Não lhe atende dessa forma ?
Por Saulo
Posts
#52004
Prezado osvaldomp » 28 Jan 2020 às 16:22 Bom dia!
Obrigado por dispor de seu tempo em ajudar-me.
Sua solução está excelente, porém como dito anteriormente é necessário que todas as vezes que for atualizar um
“Nº Pendência” na planilha “Inserir Pendencia NC” e digitar uma “Data Verificação” e “Resultado Verificação” = “Eficaz” , os campos: “Data Encerramento” ou “Data Reprogramação” na planilha “Registro Pendencia NC” devem se manter íntegros.
O objetivo é um módulo de consulta que vou desenvolver, pois temos que analisar quando uma determina Não Conformidade foi concluída e quando foi verificada e por este motivo necessitamos das datas “Data Encerramento” e “Data Verificação” com o respectivo “Resultado Verificação”
Por gentileza faça o seguinte teste (na 1ª planilha anexada que contem o Código anterior): na planilha “Inserir Pendencia NC” escolha na célula “H9” a NC 0002/2019 e depois coloque uma “Data Encerramento” na célula “H10”, após confirmar através do botão “Atualizar” os dados migram para planilha “Registro Pendencia NC”, depois com a mesma NC 0002/2019 coloque uma “Data Verificação” com “Resultado Verificação” = “Não Eficaz”, note que após confirmação a “Data Encerramento” será “brancada” na planilha “Registro Pendencia NC”.
Desculpe os transtornos , e se for possível, peço que avalie a possibilidade de implementar em seu código a regra acima.
OBS: Anexo planilha já com seu 1º código.
Desde já agradeço
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord