Página 1 de 1

Na coluna B gerar cinco caracteres aleatórios.

Enviado: 20 Out 2021 às 14:16
por GENECI
Boa tarde!
Solicito a sua ajuda, conforme o arquivo anexo.

Grato - Geneci.

Re: Na coluna B gerar cinco caracteres aleatórios.

Enviado: 20 Out 2021 às 18:26
por osvaldomp
Olá, @GENECI .

Cole uma cópia do código abaixo no módulo da planilha (clique com o direito na guia da planilha e escolha Exibir Código).
Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim N1 As Long, N2 As Long, L1 As String, L2 As String, L3 As String
  If Target.Column <> 2 Then Exit Sub
  Randomize
  L1 = Chr(Int((26 * Rnd) + 1) + 64): L2 = Chr(Int((26 * Rnd) + 1) + 64)
  Do Until L1 <> L2
   L2 = Chr(Int((26 * Rnd) + 1) + 64)
  Loop
  L3 = Chr(Int((26 * Rnd) + 1) + 64)
  Do Until L3 <> L1 And L3 <> L2
   L3 = Chr(Int((26 * Rnd) + 1) + 64)
  Loop
  N1 = Int(9 * Rnd): N2 = Int(9 * Rnd)
  Do Until N1 <> N2
   N2 = Int(9 * Rnd)
  Loop
  Target.Value = N1 & N2 & L1 & L2 & L3
End Sub

Re: Na coluna B gerar cinco caracteres aleatórios.

Enviado: 21 Out 2021 às 14:43
por GENECI
Boa tarde! osvaldomp
Muito obrigado, por atender a minha solicitação.
Não mencionei, porém é bem pertinente, há possibilidade de intercalar letras e números e uma letra em minúscula. Exemplo.
Ab587
8F57b
S8a75
Explicando com outras palavras, um código aleatório, de 5 caracteres embaralhados, entre números letras maiúsculas e minúsculas e sem ordem definida.

Caso não seja possível, uso a opção apresentada.

Grato - Geneci.

Re: Na coluna B gerar cinco caracteres aleatórios.

Enviado: 21 Out 2021 às 20:03
por osvaldomp
GENECI escreveu: 21 Out 2021 às 14:43 Não mencionei, porém é bem pertinente, :roll: há possibilidade de intercalar letras e números e uma letra em minúscula.
O código que passei faz exatamente o que você escreveu na planilha ~~~> "inserir 5 caracteres aleatórios composto de 2 números 3 letras".

Exemplo.
Ab587
8F57b
S8a75
Esses exemplos que você colocou aí acima não batem com o que você pediu, pois você pediu 2 números (o correto é 2 dígitos) e 3 letras, no entanto os seus exemplos mostram 3 dígitos e 2 letras ;) :?:

Explicando com outras palavras, um código aleatório, de 5 caracteres embaralhados, entre números letras maiúsculas e minúsculas e sem ordem definida.
O código abaixo gera strings com 5 caracteres, formados por 2 dígitos, duas maiúsculas e uma minúscula, em ordem aleatória.
Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim N1 As Long, N2 As Long, L1 As String, L2 As String, L3 As String
  Dim Si As String, Sf As String, k As Long, x As Long, G As String
  If Target.Column <> 2 Then Exit Sub
  Randomize
  L1 = Chr(Int((26 * Rnd) + 1) + 64): L2 = Chr(Int((26 * Rnd) + 1) + 96)
  Do Until L1 <> UCase(L2)
   L2 = Chr(Int((26 * Rnd) + 1) + 96)
  Loop
  L3 = Chr(Int((26 * Rnd) + 1) + 64)
  Do Until L3 <> L1 And L3 <> UCase(L2)
   L3 = Chr(Int((26 * Rnd) + 1) + 64)
  Loop
  N1 = Int(9 * Rnd): N2 = Int(9 * Rnd)
  Do Until N1 <> N2
   N2 = Int(9 * Rnd)
  Loop
  Sf = L1 & "," & N1 & "," & L2 & "," & N2 & "," & L3
   For x = 1 To 5
   k = Int(5 * Rnd) + 1
   If Si = "" Then
    Si = k
   Else
    If InStr(Si, k) = 0 Then
     Si = Si & "," & k
    Else
     Do Until InStr(Si, k) = 0
      k = Int(5 * Rnd) + 1
     Loop
     Si = Si & "," & k
    End If
   End If
  Next x
 For x = 0 To 4
 k = Split(Si, ",")(x)
 G = G & Split(Sf, ",")(k - 1)
 Next x
 Target.Value = G
End Sub

Re: Na coluna B gerar cinco caracteres aleatórios.

Enviado: 22 Out 2021 às 12:18
por GENECI
Boa tarde!
Desculpe, expressei-me errado o senhor entendeu a minha necessidade.
O código atende o meu objetivo.

Grato - Geneci.