Per me sono tante le cose nuove ma questa è nuovissima e mi sta facendo impazzire.
Ho creato un array public per contenere gli indirizzi di file che vado a prendermi con Application.FileDialog(3) bla, bla, bla.
La dichiarazione dell'array
Public arr_allegati() as Stringa
è nel modulo principale
Da maschera con pulsante entro in una Sub che si occupa di cercare i file da allegare.
Il mio array è dinamico e allungo la lista con Redim tutte le volte che aggiungo un nuovo allegato.
La cosa assurda è che ogni volta che aggiungo una nuova variabile all'array, perdo il valore della precedente.
In questo modo alla fine mi ritrovo con un array lungo per esempio dieci voci ma solo l'ultima contiene l'ultimo dato.
Private Sub Allega_Click()
' seleziona allegati
Dim fdg As Object
Dim vrtSelectedItem As Variant
Dim strSelectedFile As String
Set fdg = Application.FileDialog(3)
With fdg
Do While True
.AllowMultiSelect = False
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems 'only be 1
strSelectedFile = vrtSelectedItem
Next vrtSelectedItem
Dim posb, posp As Integer
num_all = num_all + 1
ReDim arr_allegati(num_all)
arr_allegati(num_all) = strSelectedFile
End If
If MsgBox("Terminato ?", vbCritical + vbYesNo) = vbYes Then Exit Sub
If num_all = 1 Then
MsgBox arr_allegati(1) ' pieno
End If
If num_all = 2 Then
MsgBox arr_allegati(1) ' vuoto
MsgBox arr_allegati(2) ' pieno
End If
If num_all = 3 Then
MsgBox arr_allegati(1) ' vuoto
MsgBox arr_allegati(2) ' vuoto
MsgBox arr_allegati(3) ' pieno
End If
Loop
End With
End Sub
Mortificatemi pure ma ditemi qualcosa.
Antonio cuomo