Ciao Sol39,
ho la necessità di trasferire dei dati di una listbox a un file esterno, sempre excel, a partire dalla colonna G fino alla colonna O.
Il problema è che i dati me li deve aggiungere e non sovrascrivermeli.
In una userform precedente ho delle textbox che mi inseriscono i dati rispettando la riga, quindi i dati della listbox devono seguire appunto la riga.
Esempio:
valore in textbox1 = A8
valori nella listbox = G8, H8, I8 ecc
valore in textbox1 = A9
valori nella listbox = G9, H9, I9 ecc
La tua domanda è molto schematica e manca di dettagli! :-)
Detto questo, nel modulo di codice della Userform di interesse, prova qualcosa del genere:
'=========>>
Option Explicit
Dim arrIn As Variant
Dim UB As Long
'--------->>
Private Sub CommandButton1_Click()
Dim destWB As Workbook
Dim destSH As Worksheet
Dim destRng As Range
Dim arrOut As Variant
Dim sStr As String
Dim iRow As Long
Const sFile_Destinazione As String = "MiaCartella.xlsx"
'<<=== Modifica
Const sFoglio_Destinazione As String = "Foglio1"
'<<=== Modifica
With Me
iRow = .ListBox1.ListIndex + 1
sStr = .TextBox1.Value
End With
Set destWB = Workbooks(sFile_Destinazione)
Set destSH = destWB.Sheets(sFoglio_Destinazione)
Set destRng = destSH.Range(sStr).Offset(0, 6).Resize(1, UB)
arrOut = Application.Index(arrIn, iRow, 0)
destRng.Value = arrOut
End Sub
'--------->>
Private Sub UserForm_Initialize()
Dim srcWB As Workbook
Dim srcSH As Worksheet
Dim srcRng As Range
Const sFoglio_Sorgente As String = "Sheet1" '<<=== Modifica
Const sIntervallo_Sorgente As String = "A2:I20" '<<=== Modifica
Set srcWB = ThisWorkbook
Set srcSH = srcWB.Sheets(sFoglio_Sorgente)
arrIn = srcSH.Range(sIntervallo_Sorgente).Value
UB = UBound(arrIn, 2)
With Me.ListBox1
.List = arrIn
.ColumnCount = UB
End With
End Sub
'<<=========
===
Regards,
Norman
