Dati da Listbox a file esterno

Anonimo
2019-05-30T16:51:48+00:00

Ciao a tutti,

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

Grazie mille a chi vorrà aiutarmi e buona serata.

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

10 risposte

Ordina per: Più utili
  1. Anonimo
    2019-06-04T08:23:47+00:00

    Buongiorno,

    ecco il link ai file:  https://we.tl/t-J9sTJJuCR8

    Sono due file: in uno è presente la macro con le userform e il secondo è il file da cui prende i dati la listbox.

    Per fare le prove entrambi i file devono stare aperti.

    Grazie mille dell'aiuto.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-06-03T09:12:04+00:00

    Ciao Sol39,

    scusa se non ho ben spiegato...

    Ho due userform, la prima contiene la textbox cui vorrei che la listbox, contenuta nella seconda userform, facesse riferimento; la seconda userform contiene appunto la listbox.

    La textbox è collegata a questo codice:

    Private Sub CommandButton1_Click()

    Dim destWB As Workbook

    Dim SH_prova As Worksheet

    Dim uRiga As Long

    Const sCartella_Di_Destinazione As String = _

              "Esempioreport.xlsx"    '<<=== Modifica

        Const sFoglio_Di_Destinazione As String = "prova"

    Set destWB = Workbooks(sCartella_Di_Destinazione)

        With destWB

            Set SH_prova = .Sheets(sFoglio_Di_Destinazione)

    End With

    With SH_prova

        uRiga = .Range("A" & Rows.Count).End(xlUp).Row + 1

        .Range("A" & uRiga).Value = TextBox1

    End With

    End Sub

    Spiegami una cosa gentilmente: l'ultimo codice (UserForm_Initialize() ) la dovrei inserire nella prima o seconda userform?

    Grazie mille dell'aiuto e a presto!

    Ti chiederei gentilmente di caricare i file di interesse, dopo averli depurato dei dati sensibili, su un servizio di condivisione di file, ad esempio Microsoft OneDrive o DropBox, e postare un link al file in una risposta qui.

    Per caricare il file su DropBox, vedi:

    Come faccio a condividere file e cartelle in Dropbox?    

    Se lo preferisci, puoi inviarmeli in privato.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2019-06-03T07:21:15+00:00

    Ciao Norman,

    scusa se non ho ben spiegato...

    Ho due userform, la prima contiene la textbox cui vorrei che la listbox, contenuta nella seconda userform, facesse riferimento; la seconda userform contiene appunto la listbox.

    La textbox è collegata a questo codice:

    Private Sub CommandButton1_Click()

    Dim destWB As Workbook

    Dim SH_prova As Worksheet

    Dim uRiga As Long

    Const sCartella_Di_Destinazione As String = _

              "Esempioreport.xlsx"    '<<=== Modifica

        Const sFoglio_Di_Destinazione As String = "prova"

    Set destWB = Workbooks(sCartella_Di_Destinazione)

        With destWB

            Set SH_prova = .Sheets(sFoglio_Di_Destinazione)

    End With

    With SH_prova

        uRiga = .Range("A" & Rows.Count).End(xlUp).Row + 1

        .Range("A" & uRiga).Value = TextBox1

    End With

    End Sub

    Spiegami una cosa gentilmente: l'ultimo codice (UserForm_Initialize() ) la dovrei inserire nella prima o seconda userform?

    Grazie mille dell'aiuto e a presto!

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2019-06-02T10:33:49+00:00

    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

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2019-05-31T15:36:15+00:00

    Ciao Sol39!

    Dunque, vediamo di capire cosa stai cercando di fare. In pratica, hai questi dati che vuoi trasferire da una listbox a un altro file Excel, ma li vuoi trasferire solo dalla colonna G in poi fino alla colonna O, aggiungendoli a quelli già presenti, ma senza sovrascriverli. Ho capito bene?

    Per quanto riguarda questo tipo di questioni, puoi rivolgerti al nostro forum gemello di MSDN. Al suo interno, oltre ai nostri colleghi, troverai professionisti ed esperti programmatori che sapranno aiutarti e consigliarti su come attuare questa VBA in Excel.

    Nel frattempo, se c'è altro in cui possiamo aiutarti, non esitare a chiedere nella Community. Siamo sempre a disposizione.

    Buona serata

    Luana

    La risposta è stata utile?

    0 commenti Nessun commento