Codici alfanumerici excel

Anonimo
2018-03-07T18:37:27+00:00

Salve, 

Avrei necessità di creare dei codici alfanumerici progressivi e univoci relativi a operazioni finanziarie in base alla tipologia dell'operazione.

Mi spiego meglio:

Tipologia operazione            descrizione                 codice

Utility                                                       blablabla                                 UT1

Utility                                                       blablabla                                 UT2

Intrattenimento                                        blablabla                                 IN1

Utility                                                       blablabla                                 UT3

Vorrei utilizzare una formula in excel, nella colonna codice, che nel momento in cui seleziono la tipologia di operazione crei un codice con le iniziali della tipologia + un numero progressivo.

E' possibile? Se sì, come?

Grazie in anticipo

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2018-03-07T19:27:33+00:00

Ciao Matteo,

più che una formula forse ti potrebbe essere utile una procedura vba che, una volta elencati di seguito le varie tipologie di operazione con relative descrizioni, assegni in automatico e in maniera massiva i codici alfanumerici.

Vedi se qualcosa del genere potrebbe fare al caso tuo:

Option Explicit

Sub AssengaCodiciAlfanumerici()

  Const sNomeFoglioDati As String = "Foglio1"

  Const sPrimaCellaTipologie As String = "A1" '<=== cella iniziale compresa l'intestazione dove sono presenti le "Tipologie"

  Const offSetColonnaCodici As Long = 2  '<=== posizione della colonna dei codici rispetto alla colonna delle tipologie

  Const NumeroCaratteriCodice As Long = 2 '<=== numero caratteri di cui si compone il codice prima della numerazione progressiva

  Dim ArrTipologia As Variant

  Dim NumRighe As Long, i As Long

  Dim dictTipologie As Object

  Dim sTipologia As String

  Dim sCodice As String

  Dim arrCodici() As Variant

  Set dictTipologie = CreateObject("Scripting.Dictionary")

  With Application

    .Calculation = xlCalculationManual

    .ScreenUpdating = False

    .EnableEvents = False

  End With

  On Error GoTo Errore

  With ThisWorkbook

    With .Worksheets(sNomeFoglioDati)

      With .Range(sPrimaCellaTipologie)

        With .CurrentRegion

          NumRighe = .Rows.Count - 1

          ReDim arrCodici(1 To NumRighe, 1 To 1)

          ArrTipologia = .Resize(NumRighe).Offset(1).Columns(1).Value

            For i = 1 To NumRighe

              sTipologia = UCase(Left(ArrTipologia(i, 1), NumeroCaratteriCodice))

              If Not dictTipologie.Exists(sTipologia) Then

                dictTipologie.Add sTipologia, 1

                sCodice = sTipologia & 1

              Else

                dictTipologie(sTipologia) = dictTipologie(sTipologia) + 1

                sCodice = sTipologia & dictTipologie(sTipologia)

              End If

              arrCodici(i, 1) = sCodice

            Next i

        End With '.CurrentRegion

        .Offset(1, offSetColonnaCodici).Resize(NumRighe).Value = arrCodici

      End With '.Range(sPrimaCellaTipologie)

    End With '.Worksheets(sNomeFoglioDati)

  End With 'ThisWorkbook

RiprendiErrore:

  With Application

    .Calculation = xlCalculationAutomatic

    .ScreenUpdating = True

    .EnableEvents = True

  End With

  Exit Sub

Errore:

  MsgBox Err.Number & vbNewLine & Err.Description, vbCritical, "VBA Error!"

  Resume RiprendiErrore

End Sub

Qui trovi un file excel di esempio dove ho fatto i test:

File esempio

ciao

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

0 risposte aggiuntive

Ordina per: Più utili