Guru do Excel + Power BI

Sua dose diária de Power BI e Excel

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
#72260
Boa tarde

Precisando ajuda para adicionar dados únicos numa listagem.
Então é assim, tenho uma listagem tipificada de ausências, que está na aba "BD", coluna "AI".

E tenho uma Userform para fazer a introdução de dados novos na Listagem.
Cada introdução nova é gravada com as iniciais de cada palavra seguida de "-" e do texto inserido na textbox.

O que pretendia é que caso já exista as iniciais fosse acrescentada mais uma letra, da ultima palavra, até ser diferente das existentes.
Na planilha que anexo mostro como gostaria que aparecesse para o caso de "Teste Operacional" e "Testar Operacionalidade" ou seja que ficasse "TO-Teste Operacional" e "TOp-Testar Operacionalidade".

Caso já existisse TOp-xxxxxxxxx então teria que ficar TOpe-yyyyyyyy.

Obrigado
Jorge Cabral
Você não está autorizado a ver ou baixar esse anexo.
#72274
Código: Selecionar todos
Private Sub cmdGravarListaAusencias_Click()
 Dim Temp As Variant, k As Long, ini As String, i As Long
  Temp = Split(Trim(txtDesignacao_P4))
  For k = 0 To UBound(Temp)
   ini = ini & UCase(Left(Temp(k), 1))
  Next k
  Do Until Application.CountIf([AI:AI], ini & "*") = 0
    ini = ini & Mid(Temp(k - 1), i + 2, 1): i = i + 1
  Loop
  Cells(Rows.Count, "AI").End(3)(2) = ini & "-" & txtDesignacao_P4
End Sub

#
Obs. não utiliza a Function FirstLetters; não considerei a exclusão de "da, de, do, ... ", acrescente se necessário
JCabral agradeceu por isso
#72280
@Foxtri,

Obrigado mais uma vez, é quase isso, tive que fazer uma pequena alteração e ficou como pretendo, ou seja se escrever Teste de Operação ~~deverá vir~~>TOper-Teste de Operação e não TOper-Teste Operação, sem o "de".

Muito obrigado
#72281
JCabral escreveu: 21 Set 2022 às 10:50 @osvaldomp,
Funciona bem, vou estudar o código e tentar inserir as exclusões.
#
Salve, Jorge.

Segue uma opção com Selct Case:

For k = 0 To UBound(Temp)
Select Case Temp(k)
Case "da", "de", "do", "das", "dos", "a", "o"
Case Else: ini = ini & UCase(Left(Temp(k), 1))
End Select

Next k
JCabral agradeceu por isso
How to write a process management essay

While I didn't seek out tips for writing process m[…]

4 Tips to Offer Online Exams

Are you confused because of so many academic writi[…]

When writing an academic text, the bulk of the wor[…]

cách đây không lâu bạn c&[…]

Estou trabalhando com uma base de dados com KPI's […]

Olá Caso simples hoje Estou fazendo uma[…]

Baccarat là trò chơi dễ ăn tiền nhưn[…]