Ho la Marta y bienvenida a TodoExpertos.
Visita:
Macros y Excel
Tengo algunas dudas:
- A qué te refieres con "Ordenados" puedes poner un ejemplo.
Te refieres a algo como esto:
125GIPQU
57ALORSY
- ¿Los caracteres que necesitas son de la A a la Z y del 1 al 9. El cero no está incluido?
- ¿En dónde quieres poner el resultado?
Prueba lo siguiente, el resultado te lo presenta en pantalla:
Sub alfanumerico_aleatorio()
Dim a(1 To 35)
Dim i As Long, j As Long, nMax As Long, x As Long, y As String
Dim coll As Object
Set coll = CreateObject("System.Collections.ArrayList")
For i = 49 To 90 'del 1 al 9 y de la A a la Z
If i < 58 Or i > 64 Then
j = j + 1
a(j) = Chr ( i )
End If
Next
nMax = UBound(a)
Randomize
For i = 1 To 8
x = Int(Rnd * nMax + i)
y = a(i)
a(i) = a(x)
a(x) = y
nMax = nMax - 1
coll.Add CStr(a(i))
Next
coll.Sort
MsgBox "##" & Join(coll.toarray, "")
End Sub
Cambia en la macro "##" por los dos caracteres fijos.
Si quieres el resultado en una celda, cambia esta línea:
MsgBox "##" & Join(coll.toarray, "")
Por esta línea:
Range("K8") = "##" & Join(coll.toarray, "")
Y cambia "K8" por la celda donde quieres el resultado.
Recomendaciones:
Función sumaproducto - YouTube
Sal u dos
Dante Amor