Risultati da 1 a 10 di 10

Discussione: Compilare celle usando userform



  1. #1
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Compilare celle usando userform

    Ciao a tutti.
    Per una forma di masochismo, non sò quanto sana, ci riprovo con il VBA.
    https://www.dropbox.com/s/k2kix0p1ak...forum.xls?dl=0

    Ho adattato una userform con un mix di textbox combobox e listbox, vorrei:
    1) che con il pulsante SALVA i dati digitati popolassero i rispettivi campi nel foglio di lavoro "anagrafica".
    Ho provato a creare un codice test per solo 3 textbox (risultato:0)
    Codice: 
    Private Sub CommandButton1_Click()
              Dim iRow As Integer
              iRow = 2   'si comincia dalla riga 2
              While Cells(iRow, 1).Value <> ""  'se la cella contiene dati, si passa alla successiva
              iRow = iRow + 1
              Wend
              Cells(iRow, 1) = Cells(iRow, 1).Offset(-1, 0) + 1
              Cells(iRow, 2) = TextBox1
              Cells(iRow, 3) = TextBox2
              Cells(iRow, 4) = TextBox12
              'poi dopo che ho copiato i dati sul foglio pulisco le textbox per inserire nuovi dati
              TextBox1 = ""
              TextBox2 = ""
              TextBox12 = ""
              
              End Sub
    2) Popolare la listbox1 --> non saprei da dove iniziare
    3) Le Combobox prelevano i dati dal foglio Legenda -> non saprei da dove iniziare

    Un grazie in anticipo al buon cuore ma soprattutto alla pazienza di chi mi aiuterà.:271:

    Gene

  2. #2

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296

    Re: Compilare celle usando userform

    Ciao Gene,
    allora fai bene a riprovarci col vba però per imparare devi provare:

    Con questa modifica al tuo codice puoi cominciare a riempire le prime colonne del foglio Anagrafica
    Codice: 
    Private Sub Label21_Click()
    Dim wks As Worksheet, iRow As Integer
    Set wks = Sheets("Anagrafica")
    With wks
               iRow = 3
               While .Cells(iRow, 2).Value <> ""
               iRow = iRow + 1
              Wend
              .Cells(iRow, 1) = iRow - 2
              .Cells(iRow, 2) = TextBox1
              .Cells(iRow, 3) = TextBox2
              .Cells(iRow, 4) = TextBox12
              TextBox1 = ""
              TextBox2 = ""
              TextBox12 = ""
    End With
    Set wks= Nothing
    End Sub

    Questo il codice per popolare le prime due Combobox "Stabilimento" e "Qualifica"
    Codice: 
    Private Sub UserForm_Initialize()
        Dim wks1 As Worksheet, x As Integer, y As Integer
        Set wks1 = Sheets("Legenda")
            For y = 10 To 12
            ComboBox1.AddItem wks1.Cells(y, 4)
        Next
         For x = 2 To 7
            ComboBox2.AddItem wks1.Cells(x, 3)
            Next
    Set wks1= Nothing
    End Sub
    https://www.dropbox.com/s/rmklqz9oc0...rum1.xlsm?dl=0

    Prova a continuare ...
    Ultima modifica fatta da:ges; 28/05/16 alle 20:54 Motivo: Allegato file
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  3. #3
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Compilare celle usando userform

    Ciao Ges,
    per quanto riguarda le textbox ci sono riuscito:
    Codice: 
    Private Sub Label21_Click()
    Dim wks As Worksheet, iRow As Integer
    Set wks = Sheets("Anagrafica")
    With wks
               iRow = 3
               While .Cells(iRow, 2).Value <> ""
               iRow = iRow + 1
              Wend
              .Cells(iRow, 1) = iRow - 2
              .Cells(iRow, 2) = TextBox1 'cognome
              .Cells(iRow, 3) = TextBox2 'nome
              .Cells(iRow, 5) = TextBox12 'data di nascita
              .Cells(iRow, 6) = TextBox13 'luogo di nascita
              .Cells(iRow, 7) = TextBox14 'codice fiscale
                    .Cells(iRow, 9) = ComboBox1
                    .Cells(iRow, 8) = ComboBox2
                    .Cells(iRow, 10) = ComboBox3
                    .Cells(iRow, 11) = ComboBox4
              TextBox1 = ""
              TextBox2 = ""
              TextBox12 = ""
              TextBox13 = ""
              TextBox14 = ""
              ComboBox1 = ""
              ComboBox2 = ""
              ComboBox3 = ""
              ComboBox4 = ""
    End With
    Set wks = Nothing
    End Sub
    2) per le combobox immagino che ci sia da aggiungere altre due lettere (quali?):

    Codice: 
    Private Sub UserForm_Initialize()
        Dim wks1 As Worksheet, x As Integer, y As Integer, ? As Integer, ? As Integer
        Set wks1 = Sheets("Legenda")
            For y = 10 To 12
            ComboBox1.AddItem wks1.Cells(y, 4)
        Next
         For x = 2 To 7
            ComboBox2.AddItem wks1.Cells(x, 3)
            Next
    For ? = 2 To 8
            ComboBox3.AddItem wks1.Cells(?, ?)
        Next
         For ?x = 2 To 12
            ComboBox4.AddItem wks1.Cells(?, ?3)
            Next
    Set wks1 = Nothing
    End Sub
    3) Per la listbox1: non ho idea alcuna, aspetto dritta.

    Gene

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296

    Re: Compilare celle usando userform

    Non è difficile, ti mostro passo passo.

    Popoliamo la ComboBox4 con l'elenco del "Ruolo sicurezza"

    L'elenco si trova nel secondo foglio quindi va bene la variabile che abbiamo dichiarato prima

    Codice: 
    Private Sub UserForm_Initialize()
        Dim wks1 As Worksheet
        Set wks1 = Sheets("Legenda")
    L'elenco occupa la colonna B dalla riga 2 fino alla 12

    Allora se resta fisso prevediamo il ciclo che si fermi a queste righe

    Codice: 
     For y = 2 To 12
    Se si prevede che possano aggiungersi altre voci allora è bene calcolarsi l'ultima riga piena della colonna B
    Codice: 
     uRiga =cells(Rows.Count,2).End(xlUp).Row
    For y = 2 to Uriga
    A questo punto richiamiamo la ComboBox interessata usando il metodo AddItem, così:

    Codice: 
     ComboBox4.AddItem wks1.Cells(y, 2)

    Questo il codice completo delle 3 ComboBox:

    Codice: 
    Private Sub UserForm_Initialize()
        Dim wks1 As Worksheet,  y As Integer
        Set wks1 = Sheets("Legenda")
            For y = 10 To 12
            ComboBox1.AddItem wks1.Cells(y, 4)
        Next
         For y = 2 To 7
            ComboBox2.AddItem wks1.Cells(y, 3)
            Next
        For y = 2 To 12
            ComboBox4.AddItem wks1.Cells(y, 2)
            Next
    Set wks1 = Nothing
    End Sub
    Manca il "Ruolo Aziendale" .. ma a questo ci pensi tu.... :286:

    P.S. Le variabili y in questo caso li ho lasciate tutte uguali (prima le avevo differenziate per ciascun ciclo), sei libro di lasciarli così o per una migliore lettura prevederne uno per ogni ComboBox ... è solo questione di visibilità non di funzionalità.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. #5
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Compilare celle usando userform

    Ciao Ges,
    ci sono e ti seguo:50:

    Punto 2: EVASO
    Codice: 
    Private Sub UserForm_Initialize()
        Dim wks1 As Worksheet, y As Integer
        Set wks1 = Sheets("Legenda")
        For y = 10 To 12
            ComboBox1.AddItem wks1.Cells(y, 4)
            Next
         For y = 2 To 7
            ComboBox2.AddItem wks1.Cells(y, 3)
            Next
         For y = 2 To 8
            ComboBox3.AddItem wks1.Cells(y, 1)
            Next
        For y = 2 To 12
            ComboBox4.AddItem wks1.Cells(y, 2)
            Next
    Set wks1 = Nothing
    End Sub
    Aspetto start per listbox.

    Gene

  6. #6
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Compilare celle usando userform

    Good News sulla listbox
    Ho agganciato le colonne usando RowSource ma i campi delle textbox restavano non compilati.
    Quindi ho trovato ed adattato un codice "pescato" in rete:
    Codice: 
    Private Sub ListBox1_Click()
    Dim Bulunan_Satir_No As Long
        
        Bulunan_Satir_No = ListBox1.ListIndex + 2
        
        TextBox1.Text = Sheets("Anagrafica").Range("B" & Bulunan_Satir_No).Value
        
        TextBox2.Text = Sheets("Anagrafica").Range("C" & Bulunan_Satir_No).Value
        
        TextBox12.Text = Sheets("Anagrafica").Range("E" & Bulunan_Satir_No).Value
        TextBox12.Text = VBA.Format(TextBox12, "dd.mm.yyyy")
    
        TextBox13.Text = Sheets("Anagrafica").Range("F" & Bulunan_Satir_No).Value
    
        TextBox14.Text = Sheets("Anagrafica").Range("G" & Bulunan_Satir_No).Value
       
    ComboBox1.Value = Sheets("Anagrafica").Range("I" & Bulunan_Satir_No).Value
    ComboBox2.Value = Sheets("Anagrafica").Range("H" & Bulunan_Satir_No).Value
    ComboBox3.Value = Sheets("Anagrafica").Range("J" & Bulunan_Satir_No).Value
    ComboBox4.Value = Sheets("Anagrafica").Range("K" & Bulunan_Satir_No).Value
        
    
    End Sub
    Ma come si traduce: Bulunan_Satir_No ??
    E come si aggancia il codice alla listbox1 ?
    E soprattutto perchè mi da errore di dato non univoco?
    https://www.dropbox.com/s/p7a93vn8x1bsxw4/Anagrafica_forum1_byGes.xlsm?dl=0

    Gene

  7. #7

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296

    Re: Compilare celle usando userform

    Ciao Gene,
    ma perchè cercare altri metodi?

    Il meccanismo per popolare la ListBox è uguale alla ComboBox.

    Se ho ben capito nella ListBox1 vuoi l'elenco dell'anagrafica ... giusto?

    Questo il codice completo.
    Codice: 
    Private Sub UserForm_Initialize()
        Dim wks As Worksheet, wks1 As Worksheet, y As Integer, uRiga As Long
        Set wks = Sheets("Anagrafica")
        Set wks1 = Sheets("Legenda")
            For y = 10 To 12
            ComboBox1.AddItem wks1.Cells(y, 4)
        Next
         For y = 2 To 7
            ComboBox2.AddItem wks1.Cells(y, 3)
            Next
        For y = 2 To 12
            ComboBox4.AddItem wks1.Cells(y, 2)
            Next
        uRiga = Cells(Rows.Count, 1).End(xlUp).Row
        For y = 3 To uRiga
            ListBox1.AddItem wks.Cells(y, 2) & "           " & wks.Cells(y, 3)
            Next
    Set wks1 = Nothing
    End Sub
    Allego file https://www.dropbox.com/s/kn9o0ildmt...rum2.xlsm?dl=0
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  8. #8
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Compilare celle usando userform

    Ciao Ges,
    in realtà come scrivevo al post #6 il risultato ottenuto dal codice preso in rete è più "intrigante" infatti nel selezionare i nomi nella listbox i campi di immissioni sono popolati. Vedi immagine:


    E ovviamente mi piacerebbe capire come ottenere questo risultato.

    Gene

  9. #9

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7106
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296

    Re: Compilare celle usando userform

    Ciao Gene,
    non è il metodo ad essere "più intrigante" come dici, è semplicemente che in quel codice sono richiamati i campi delle TextBox e ComboBox attraverso la selezione dei nomi della ListBox.

    Si può benissimo fare e visto che questo è un po' più complicato te lo posto integralmente:

    Codice: 
    Private Sub ListBox1_Click()
    Dim st As String, wks As Worksheet
    Set wks = Sheets("Anagrafica")
        For i = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(i) = True Then
                st = ListBox1.List(i)
                TextBox1 = Trim(Left(st, InStr(st, " ") + 2))
                TextBox2 = Trim(Mid(st, InStr(st, " ") + 3, 30))
                    End If
                    Next
           uRiga = Cells(Rows.Count, 1).End(xlUp).Row
        For y = 3 To uRiga
            If TextBox1 = Cells(y, 2) And TextBox2 = Cells(y, 3) Then
                TextBox12 = Cells(y, 5)
                TextBox13 = Cells(y, 6)
                TextBox14 = Cells(y, 7)
                ComboBox1 = Cells(y, 9)
                ComboBox2 = Cells(y, 8)
                ComboBox3 = Cells(y, 10)
                ComboBox4 = Cells(y, 11)
            End If
        Next
    End Sub
    Allego file: https://www.dropbox.com/s/wvhu7hvsps...%203.xlsm?dl=0


    P.S. - Per la tua richiesta sopra
    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    ..
    Ma come si traduce: Bulunan_Satir_No ??
    .....
    E soprattutto perchè mi da errore di dato non univoco?
    "Bulunan_Satir_No" è semplicemente una variabile numerica, come vedi viene dichiarata come Long (Dim Bulunan_Satir_No As Long); il codice che hai postato però è incompleto mancano dei pezzi.
    Ti da errore per dato non univoco perchè ci sono due "Private Sub ListBox1_Click()" oltre questo un altro vuoto.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  10. #10
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Compilare celle usando userform

    Ciao Ges,
    grazie ancora.

    Gene

Discussioni Simili

  1. [Risolto] Formula per compilare celle di due fogli diversi
    Di Paxmix nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 06/02/17, 13:25
  2. Compilare automaticamente delle celle in base all'inserimento di un nome
    Di Catwoman nel forum Domande su Excel in generale
    Risposte: 74
    Ultimo Messaggio: 05/08/16, 01:32
  3. Visualizzare le celle di una riga mediante una userform
    Di bferrari nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 03/06/16, 01:55
  4. Visualizzare le celle di una riga mediante una userform
    Di bferrari nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 03/06/16, 01:47
  5. Una userform che popoli celle in tempo reale, non predeterminate
    Di nedevil nel forum Domande su Excel VBA e MACRO
    Risposte: 12
    Ultimo Messaggio: 25/02/16, 11:36

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •