Condividi tramite

modificare dati da listbox

Anonimo
2013-12-27T21:59:26+00:00

Ciao a tutti e buone feste

come da titolo devo modificare dei dati di un Foglio caricati in un listbox dove selezionando la riga da modificare carico i vari Texbox dove posso modificare.

Quello che non riesco e creare è il codice che sostituisca la riga selezionata con quello scritto nei Texbox

praticamente vorrei fare una cosa simile a "GestioneFoglioDaUserForm" se non ricordo male l'avevo visto su  maurogsc.eu


grazie

Ermanno

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

Risposta accettata dall'autore della domanda

Anonimo
2014-01-02T02:10:56+00:00

ciao Norman,

come lo hai fatto tu  mi carica la colonna intestazioni nel posto giusto

l'unico problema e che mi carica i dati del foglio attivo e non quelli del foglio "record"

penso che la funzione  With Me.ListBox1

vada integrata nella funzione With sh

o qualcosa di simile

Ermanno

Ciao Ermano,

Nella procedura m, sostituisci:

.RowSource = rng.Address

con

.RowSource = rng.Address**(External:=True)**

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

11 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-12-30T12:11:29+00:00

    domanda specifica quindi hai capito bene il mio problema

    questi sono i codici richiesti

    nell'Userform ci sono  altri codici ma  non sono influenti

    Option Explicit

    Private rng As Range

    Private sh As Worksheet

    Private Sub UserForm_Initialize()

    SetWindowLong FindWindow( _

    vbNullString, Me.Caption), _

    -16, -2067791744

    Call m

    End Sub

    Private Sub m()

    Set sh = ThisWorkbook.Worksheets("Record")

    With sh

    Set rng = .Range("A2").CurrentRegion

    End With

    With Me.ListBox1

    .ColumnHeads = True

    .ColumnCount = rng.Columns.Count

    .Clear

    .List = rng.Value

    End With

    End Sub

    Private Sub ListBox1_Click()

    Call mPopolaTextBox

    End Sub

    Public Sub mPopolaTextBox()

    With Me

    .ComboBox1.Text = .ListBox1.List(.ListBox1.ListIndex, 0)

    .ComboBox2.Text = .ListBox1.List(.ListBox1.ListIndex, 1)

    .ComboBox3.Text = .ListBox1.List(.ListBox1.ListIndex, 2)

    .TextBox1.Text = .ListBox1.List(.ListBox1.ListIndex, 3)

    .ComboBox4.Text = .ListBox1.List(.ListBox1.ListIndex, 4)

    .TextBox2.Text = .ListBox1.List(.ListBox1.ListIndex, 5)

    .TextBox3.Text = .ListBox1.List(.ListBox1.ListIndex, 6)

    End With

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-12-30T11:34:42+00:00

    grazie Norman x la risposta

    ma il tuo codice mi modifica solo il ListBox e io dovrei modificare i dati di un Foglio caricati in un ListBox quindi la modifica deve essere nel Foglio

    Poi specifico visto che non l ho fatto prima il ListBox e composto da 7 colonne

    e selezionando la riga da modificare carico 4 ComboBox e 3 TextBox

    spero di essere stato più chiaro

    ermanno

    Ciao Ermanno,

    Potresti gentilmente condividere il codice della tua routine UserForm_Initialize() e/o il codice per caricare il ListBox?

    In effetti, vorrei sapere quale delle proprietà di RowSource, List e Column hai utilizzato per caricare il ListBox. Vorrei anche sapere quali ComboBox e TextBox corrispondono a quali colonne del ListBox

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-12-29T23:42:17+00:00

    grazie Norman x la risposta

    ma il tuo codice mi modifica solo il ListBox e io dovrei modificare i dati di un Foglio caricati in un ListBox quindi la modifica deve essere nel Foglio

    Poi specifico visto che non l ho fatto prima il ListBox e composto da 7 colonne

    e selezionando la riga da modificare carico 4 ComboBox e 3 TextBox

    spero di essere stato più chiaro

    ermanno

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-12-28T02:37:22+00:00

    Ciao a tutti e buone feste

    come da titolo devo modificare dei dati di un Foglio caricati in un listbox dove selezionando la riga da modificare carico i vari Texbox dove posso modificare.

    Quello che non riesco e creare è il codice che sostituisca la riga selezionata con quello scritto nei Texbox

    praticamente vorrei fare una cosa simile a "GestioneFoglioDaUserForm" se non ricordo male l'avevo visto su  maurogsc.eu


    grazie

    Ermanno

    Ciao Ermanno,

    Prova qualcosa del genere:

    '=============>>

    Private Sub CommandButton1_Click()

    Dim TBox As MSForms.TextBox

    Dim Ctrl As MSForms.Control

    Dim i As Long

    Dim iCtr As Long

    With Me.ListBox1

    i = .ListIndex

    If i <> -1 Then

    For Each Ctrl In Me.Controls

    If TypeOf Ctrl Is MSForms.TextBox Then

    Set TBox = Ctrl

    .List(i, iCtr) = TBox.Value

    iCtr = iCtr + 1

    End If

    Next Ctrl

    .Selected(i) = False

    Else

    MsgBox Prompt:="Non hai selezionato una riga del Listbox", _

    Title:="Errore!", _

    Buttons:=vbCritical

    End If

    End With

    End Sub

    '<<=============

    Sostituisci CommandButton1 con il nome del CommandButton interessato oppure potresti utilizzare l'evento click del ListBox stesso.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento