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

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
  • Avatar do usuário
#53061
Boa noite senhores,
Segue anexo uma planilha modelo para melhor entendimento do que preciso, particularmente não acredito que terei sucesso, mas tenho uma ponta de esperança, ficarei muitíssimo feliz se vocês puderem ajudar-me. Independente disso vou continuar tentando por aqui em conseguir o resultado que preciso na expectativa de suas ajudas.
Um abraço grande e agradecimento pela costumeira presteza.
Você não está autorizado a ver ou baixar esse anexo.
#53067
Olá, Albino.
Se você quiser testar uma solução via macro então experimente o código abaixo.
Código: Selecionar todos
Sub ReplicaDatasHoras()
 Dim c As Range, rng As Range, n As Range, fAdd As String
 If [M3] <> "" Then Range("M3:R" & Cells(Rows.Count, 12).End(3).Row).Value = ""
 Set rng = Range("A3:J" & Cells(Rows.Count, 1).End(3).Row)
 For Each c In Range("L3:L" & Cells(Rows.Count, 12).End(3).Row)
  Set n = rng.Find(c.Value, lookat:=xlWhole)
  If Not n Is Nothing Then
   fAdd = n.Address
    Do
     Cells(c.Row, Columns.Count).End(1)(1, 2) = Cells(n.Row, 1)
     Cells(c.Row, Columns.Count).End(1)(1, 2) = Cells(2, n.Column + (n.Column Mod 2 = 1))
     Set n = rng.FindNext(n)
    Loop While Not n Is Nothing And n.Address <> fAdd
  End If
 Next c
 On Error Resume Next
 Set n = rng.Find([A1], lookat:=xlPart)
End Sub
EDIT - feita a correção no código sugerida pelo colega JCabral no post #53080 mais abaixo.

obs.
1.antes de rodar o código limpe J19:P20
2. "... mas ao todo são 9 colunas com nomes" ~~~> devido a essa observação que você colocou na planilha, então antes de rodar o código desloque a tabela dos resultados de J1 para L1
3. nos seus resultados há duas incorreções: Marlene ~~~> na terceira data e Norma ~~~> no segundo horário
Editado pela última vez por osvaldomp em 22 Mar 2020 às 22:20, em um total de 2 vezes.
#53075
Amigo. Uma sugestão é criar o banco de dados de forma diferente. Veja na planilha BANCO DE DADOS que exemplifiquei como seria o NOVO BANCO DE DADOS, que deve corresponder à sua agenda de consultas.
A partir desta nova ordem do banco de dados é possível fazer FILTRO AUTOMÁTICO, que está na Guia FILTRO. Daí basta clicar no botão FILTRO que os dados são gerados no relatório das colunas B, C e D. Note que na coluna L há uma lista com todos os nomes das clientes que constam no BANCO DE DADOS. Mas, apenas uma vez cada nome. Esta lista serve para alimentar a LISTA SUSPENSA que aparece na célula F3, para selecionar um nome que queira pesquisar. També há uma fórmula para contar a quantidade de vezes que cada cliente consultou. Mas cada vez que selecionar um nome (ou mesmo quando deletar e deixar sem nenhum nome) é preciso clicar no botão FILTRAR. É uma opção.
Você não está autorizado a ver ou baixar esse anexo.
#53080
osvaldomp escreveu:Olá, Albino.
Se você quiser testar uma solução via macro então experimente o código abaixo.
Código: Selecionar todos
Sub ReplicaDatasHoras()
 Dim c As Range, rng As Range, n As Range, fAdd As String
 If [M3] <> "" Then Range("M3:R" & Cells(Rows.Count, 12).End(3).Row).Value = ""
 Set rng = Range("A3:J" & Cells(Rows.Count, 1).End(3).Row)
 For Each c In Range("L3:L" & Cells(Rows.Count, 12).End(3).Row)
  Set n = rng.Find(c.Value)
  If Not n Is Nothing Then
   fAdd = n.Address
    Do
     Cells(c.Row, Columns.Count).End(1)(1, 2) = Cells(n.Row, 1)
     Cells(c.Row, Columns.Count).End(1)(1, 2) = Cells(2, n.Column + (n.Column Mod 2 = 1))
     Set n = rng.FindNext(n)
    Loop While Not n Is Nothing And n.Address <> fAdd
  End If
 Next c
End Sub
obs.
1.antes de rodar o código limpe J19:P20
2. "... mas ao todo são 9 colunas com nomes" ~~~> devido a essa observação que você colocou na planilha, então antes de rodar o código desloque a tabela dos resultados de J1 para L1
3. nos seus resultados há duas incorreções: Marlene ~~~> na terceira data e Norma ~~~> no segundo horário

Caro Osvaldo, achei esse código fantástico, apenas acho seria prudente colocar esse Find para valores exactos, veja o que acontece se em vez de ter Neuzamira tivesse Neuzamaria.
#53081
Caro Jorge, tens razão. Embora nos exemplos colocados não exista a necessidade de Coincidir conteúdo da célula inteira , mas isso é conveniente pois poderá ocorrer com outros dados.

Editei o post em que está o código e fiz a correção. Grato pela oportuna observação. :)
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