sStato è la variabile estratta dalla selezione dell'azienda nella ComboBox.
Utilizzo il nome dello stato come un codice perché non possono esistere due stati con lo stesso nome.
Nell'intervallo dello stato, sul foglio Pannello, inserisco cinque colonne con i dati, visibili nella ComboBox, che compongono la maschera di input dei vari CAP, CF, PI, IBAN, BIC, nella forma: Numero di caratteri e le estensioni, per esempio il CAP italiano
è composto da 5 caratteri compresi nelle estensioni: 0-9 0-9 0-9 0-9 0-9. quando un codice ha, in un preciso punto, un qualsiasi carattere non determinato, è sufficiente lasciare le celle vuote, viceversa, se è necessario un unico carattere, come IT dell'IBAN
è sufficiente inserire I-I T-T. Nelle successive celle, raggiunte con Offset() ci sono i dati che compongono la maschera di input da utilizzare come controllo della quantità dei caratteri e come composizione della maschera, il codice
If sStato.Offset(0, 9).Value = TestL9 Then si riferisce alla cella con la quantità di caratteri che deve avere il CAP italiano, le successive hanno, rispettivamente 0, 9, 0, 9, ecc. se viene digitato un CAP più
lungo o corto, oppure se non viene digitato un numero il valore non viene accettato ed appare una MsgBox che avverte che c'è un errore nella digitazione.
Faccio questo perché i suddetti codici variano da stato a stato e di conseguenza preimpostare delle maschere di input che variano da stato a stato l'oh ritenuta una cosa saggia.Se uno ne ha voglia, per i codici che lo consentono, si potrebbe
aggiungere la formula di controllo.
Sub ControlloSelezioneStato()
'Dim sStato As String è posto all'inizio del foglio
'viene utilizzata anche da altre routine di questo gruppo
'Aggiunti per permettere di scrivere sStato nella cella(3, 1)
Dim wkGestionale As Workbook
Dim shAzienda As Worksheet
Set wkGestionale = ThisWorkbook
Set shAzienda = wkGestionale.Worksheets("Azienda")
If ComboBox2.ListIndex <> -1 Then
sStato = ComboBox2.Text
'Indica il nome da chiamare
shAzienda.Cells(3, 1) = sStato
ControlloLunghezzaAzienda
'Chiama la routine di controllo
Else
MsgBox ("SELEZIONA LO STATO")
End If
Set wkGestionale = Nothing
Set shAzienda = Nothing
End Sub
Se deve essere di tipo Range devo aggiungere alcuni passaggi, scrivere su una cella la variabile sStato, riferirsi a questa nel memorizzare i dati cercati e scrivere questi dati in celle dedicate sul foglio Azienda. Basta saperlo, strano però, con il ciclo
Do Loop questo non serve, nella routine postata sull'altra domanda questo ciclo funziona riferendosi a delle variabili Range
Grazie per l'informazione, la proverò.