Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Giuseppe,
Ciao Gianfranco,
per ora ho risolto così speronda di non avere due nomi uguali.
Ovviamente attendo il commento di Norman e/o la correzione al codice postato.
If Main_Form.TabStrip1.Value = 0 Then
Sheets("STCW_MATRIX").Select
Cells.Find(What:=Main_Form.LB_Crew.List(Main_Form.LB_Crew.ListIndex, 2), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Select
ElseIf Main_Form.TabStrip1.Value = 1 Then
Sheets("MATRIX_DROF_TEC").Select
Cells.Find(What:=Main_Form.LB_Crew.List(Main_Form.LB_Crew.ListIndex, 2), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Select
End If
Non è necessario, o efficiente, cercare nel foglio di lavoro: tutte le informazioni necessarie sono già memorizzate in array che abbiamo già creato!
Per selezionare automaticamente la cella corrispondente alla persona selezionata nella ListBox:
Nel modulo di codice standard, sostituisci:
'========>>
Option Explicit
Public ArrDati As Variant
Public arrDati_Out() As Variant
Public arrMandatory() As Variant
Public arrREQUIRED_COURSES_ON_BOARD() As Variant
Public arrREQUIRED_COURSES_TBD() As Variant
Public Const sFoglio_Dati_Maritime As String = "STCW_MATRIX"
Public Const sFoglio_Mandatory_Maritime As String = "STCW_MATRIX_MANDATORY"
Public Const sFoglio_Dati_Technician As String = "MATRIX_DROF_TEC"
Public Const sFoglio_Mandatory_Technician As String = "MATRIX_DROF_TEC_MANDATORY"
'-------->>
Public Sub Extract_Data(SH_Dati As Worksheet, SH_Mandatory As Worksheet)
Dim Rng_Dati As Range, Rng_Mandatory As Range
con:
'========>>
Option Explicit
Public ArrDati As Variant
Public arrDati_Out() As Variant
Public arrMandatory() As Variant
Public arrREQUIRED_COURSES_ON_BOARD() As Variant
Public arrREQUIRED_COURSES_TBD() As Variant
Public Rng_Dati As Range
Public Const sFoglio_Dati_Maritime As String = "STCW_MATRIX"
Public Const sFoglio_Mandatory_Maritime As String = "STCW_MATRIX_MANDATORY"
Public Const sFoglio_Dati_Technician As String = "MATRIX_DROF_TEC"
Public Const sFoglio_Mandatory_Technician As String = "MATRIX_DROF_TEC_MANDATORY"
'-------->>
Public Sub Extract_Data(SH_Dati As Worksheet, SH_Mandatory As Worksheet)
Dim Rng\_Mandatory As Range
Nella procedura LB_Crew_Change nel modulo di codice della Userform, sostituisci:
arrNomi = Application.Index(ArrDati, 0, 5)
con:
arrNomi = Application.Index(ArrDati, 0, 5)
**Application.Goto Rng\_Dati.Cells(Application.Match(sNome, arrNomi, 0), "E")**
===
Regards,
Norman