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.
  • 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

=SE(MÊS(A1)<7;"1º sem&a[…]

Bom Dia Senhores. Tenho uma macro que preciso dei[…]

Free relationships without drama and obligations. […]

Girar Imagem e Zoom

Boa noite Teria alguma forma de dar um "[…]

Valeu. Muito Obrigado!!!!!!!!

Pessoal, Ao clicar no botão Copiar (Guia C[…]

Procv com serro em vba

Resolvido

Bom dia, pessoal! com a data de nascimento e data […]

Estamos migrando para uma comunidade no Discord