Excel e gli applicativi Microsoft Office Trasferire dati da userform a colonna A

Login Registrati
Stai vedendo 16 articoli - dal 1 a 16 (di 16 totali)
  • Autore
    Articoli
  • #2941 Score: 0 | Risposta

    Desy
      Buongiorno a tutti,
      avrei bisogno del vostro aiuto, non sono molto pratica di Vb, ho iniziato solo qualche giorno fa...
      Sto cercando di creare una UserForm per l'inserimento di dati di contatti che mi arrivano dalla mia azienda ma non riesco proprio a capire quale codice devo usare per inserire i valori nella prima cella vuota nella colonna A ogni volta che inserisco un nuovo contatto e lo salvo.
      Spero di essermi spiegata.
      Questo è il codice che ho scritto io:
      Private Sub BtnSalva_Click()
      Dim RowCounts As Long
      RowCounts = Worksheets("Contatti").Range("A8").CurrentRegion.Rows.Count
      Worksheets("Contatti").Range("A8").Offset(RowCount, 0).Value = txtData
      Worksheets("Contatti").Range("A8").Offset(RowCount, 1).Value = txtNome
      Worksheets("Contatti").Range("A8").Offset(RowCount, 2).Value = CboxStato
      Worksheets("Contatti").Range("A8").Offset(RowCount, 3).Value = txtNumero
      Worksheets("Contatti").Range("A8").Offset(RowCount, 4).Value = txtEmail
      Worksheets("Contatti").Range("A8").Offset(RowCount, 5).Value = txtCitta
      Worksheets("Contatti").Range("A8").Offset(RowCount, 6).Value = txtProvincia
      Worksheets("Contatti").Range("A8").Offset(RowCount, 7).Value = txtRegione
      Worksheets("Contatti").Range("A8").Offset(RowCount, 8).Value = txtNoteC
      Worksheets("Contatti").Range("A8").Offset(RowCount, 9).Value = CboxChiamatoDa
      Worksheets("Contatti").Range("A8").Offset(RowCount, 10).Value = txtNoteA
      Worksheets("Contatti").Range("A8").Offset(RowCount, 11).Value = txtChiamate
      Worksheets("Contatti").Range("A8").Offset(RowCount, 12).Value = txtDataA
      Worksheets("Contatti").Range("A8").Offset(RowCount, 13).Value = txtOra
      Worksheets("Contatti").Range("A8").Offset(RowCount, 14).Value = CboxStatus
      Worksheets("Contatti").Range("A8").Offset(RowCount, 15).Value = txtAppuntamento
      Worksheets("Contatti").Range("A8").Offset(RowCount, 16).Value = txtAltro
      MsgBox "Nuovo contatto aggiunto correttamente"
      End Sub
      Tutti i valori vengono inseriti nelle celle corrette ma quando aggiungo un nuovo contatto si sovrascrivono sopra.
      Potete aiutarmi?
      Vi ringrazio in anticipo
      #2943 Score: 0 | Risposta

      alfrimpa
      Partecipante
        33 pts
        Ciao Desy
        Supponendo che la userform abbia 4 textbox ed il foglio che deve ricevere i dati abbia 4 colonne prova questo codice
        Private Sub BtnSalva_Click()
        Dim i As Integer
        Dim ur As Long
        ur = Cells(Rows.Count, 1).End(xlUp)
        For i = 1 To 4
            Cells(ur + 1, i).Value = Me.Controls("TextBox" & i).Value
        Next i
        End Sub
        Il mio è solo un esempio cerca di adattarlo al tuo caso ma ho visto che hai rinominato i controlli per cui non puoi usare un ciclo For.
        Per quanto possibile evita di rinominare i controlli perché, se sono molti, puoi usare un ciclo nel modo che ti ho mostrato.
        #2947 Score: 0 | Risposta

        Desy
          Ciao Alfrimpa,
          grazie mille per la tua risposta, mentre aspettavo ho provato questo codice e ha funzionato:
          Private Sub BtnSalva_Click()
          Range("A7").End(xlDown).Offset(1, 0).Select
          ActiveCell.Value = txtData
          ActiveCell.Offset(0, 1).Value = txtNome
          ActiveCell.Offset(0, 2).Value = CboxStato
          ActiveCell.Offset(0, 3).Value = txtNumero
          ActiveCell.Offset(0, 4).Value = txtEmail
          ActiveCell.Offset(0, 5).Value = txtCitta
          ActiveCell.Offset(0, 6).Value = txtProvincia
          ActiveCell.Offset(0, 7).Value = txtRegione
          ActiveCell.Offset(0, 8).Value = txtNoteC
          ActiveCell.Offset(0, 9).Value = txtNoteA
          ActiveCell.Offset(0, 10).Value = CboxChiamatoDa
          ActiveCell.Offset(0, 11).Value = txtChiamate
          ActiveCell.Offset(0, 12).Value = txtDataA
          ActiveCell.Offset(0, 13).Value = txtOra
          ActiveCell.Offset(0, 14).Value = CboxStatus
          ActiveCell.Offset(0, 15).Value = txtAppuntamento
          ActiveCell.Offset(0, 16).Value = txtAltro

          Me.Hide

          MsgBox "Nuovo contatto aggiunto correttamente"

          Unload Me

          End Sub
          Nel frattempo se posso ti chiedo anche, è possibile dopo aver inserito il contatto visualizzarlo o modificare alcuni dati sempre tramite la User?
          #2949 Score: 0 | Risposta

          alfrimpa
          Partecipante
            33 pts
            Si certo che è possibile ma occorre scrivere altro codice VBA che lo faccia.
            Con una userform è possibile inserire, modificare e anche cancellare i record da un foglio.
            Se alleghi un file di esempio possiamo provare a far qualcosa.
            P.S. Ti sconsiglio di usare ActiveCell perché il cursore potrebbe non essere sulla giusta cella ma l'istruzione
            Cells(numeroriga, numerocolonna)
            Guarda un po' l'help in linea della istruzione Cells
            #2951 Score: 0 | Risposta

            patel
            Moderatore
              51 pts
              Ciao Desy, ti invito a leggere il regolamento https://www.excelvba.it/regolamento.php, in particolar modo il punto relativo al titolo della discussione.
              #2952 Score: 0 | Risposta

              Desy
                scusa la mia ignoranza ma è la prima volta che scrivo qui:
                come faccio ad allegarti il file?
                Non vedo allega...
                #2953 Score: 0 | Risposta

                alfrimpa
                Partecipante
                  33 pts
                  Nel riquadro in basso della risposta trovi Allegati, clicca su Sfoglia e ti si apre la finestra di Esplora risorse del tuo pc da dove puoi scegliere il file ed allegarlo.
                  Alfredo
                  #2954 Score: 0 | Risposta

                  Desy
                    Probabilmente a me non appare perchè non sono registrata (ho provato a registrarmi ma non mi è ancora arrivata la mail di conferma)
                    Provo a spiegarti cos'ho creato:
                    su un foglio excel ho creato una tabella con nome, cognome, data, città, provincia ecc ecc
                    in seguito ho creato la mia userform per l'inserimento dei dati e riesco ad attivarla dal foglio excel tramite un CommandButton "Nuovo Contatto".
                    Adesso però avrei vorrei avere la possibilità di visualizzare e/o modificare il mio contatto  sempre tramite la userform.
                    Devo creare un altro CommandButton "Modifica" ?
                    #2955 Score: 0 | Risposta

                    alfrimpa
                    Partecipante
                      33 pts
                      Purtroppo il forum sta funzionando male.
                      In attesa che ti arrivi la mail prova a descrivere esattamente cosa c'è nella tua userform e proverò a ricostruirla ipotizzando che il foglio debba accogliere gli stessi dati.
                      Alfredo
                      #2958 Score: 0 | Risposta

                      patel
                      Moderatore
                        51 pts
                        però puoi caricare il file su dropbox o simili e postare il link
                        N.B. ho modificato il titolo della discussione
                        #3083 Score: 0 | Risposta

                        Desy
                          Ciao,
                          scusate se non ho più risposto ma sono stata impegnata con il lavoro.
                          Grazie Patel per aver modificato il titolo e per il consiglio del link.
                          Comunque questo è il link,
                          ho creato già altre UserForm per riuscire a modificare ma non ho idea di quali codici usare per modificare dei record già inseriti o se è corretto ciò che ho fatto.
                          Riuscite a darmi una mano?
                          Grazie mille in anticipo
                          #3086 Score: 0 | Risposta

                          albatros54
                          Moderatore
                            89 pts
                            allora, ho inserito nella userform "frmModifica" una Combobox1, che tu devi inserire nella tua userform"frmModifica".
                            Inserisci nel modulo di questa userform il codice che ti posto,

                            fai sapere

                            [pastacode lang="markup" manual="Option%20Explicit%0APrivate%20Sub%20BtnSalva_Click()%0A%20%20%20%20ActiveCell.Value%20%3D%20txtData%0A%20%20%20%20ActiveCell.Offset(0%2C%201).Value%20%3D%20ComboBox1.Value%0A%20%20%20%20ActiveCell.Offset(0%2C%202).Value%20%3D%20CboxStato%0A%20%20%20%20ActiveCell.Offset(0%2C%203).Value%20%3D%20txtNumero%0A%20%20%20%20ActiveCell.Offset(0%2C%204).Value%20%3D%20txtEmail%0A%20%20%20%20ActiveCell.Offset(0%2C%205).Value%20%3D%20txtCitta%0A%20%20%20%20ActiveCell.Offset(0%2C%206).Value%20%3D%20txtProvincia%0A%20%20%20%20ActiveCell.Offset(0%2C%207).Value%20%3D%20txtRegione%0A%20%20%20%20ActiveCell.Offset(0%2C%208).Value%20%3D%20txtNoteC%0A%20%20%20%20ActiveCell.Offset(0%2C%209).Value%20%3D%20txtNoteA%0A%20%20%20%20ActiveCell.Offset(0%2C%2010).Value%20%3D%20CboxChiamatoDa%0A%20%20%20%20ActiveCell.Offset(0%2C%2011).Value%20%3D%20txtChiamate%0A%20%20%20%20ActiveCell.Offset(0%2C%2012).Value%20%3D%20txtDataA%0A%20%20%20%20ActiveCell.Offset(0%2C%2013).Value%20%3D%20txtOra%0A%20%20%20%20ActiveCell.Offset(0%2C%2014).Value%20%3D%20CboxStatus%0A%20%20%20%20ActiveCell.Offset(0%2C%2015).Value%20%3D%20txtAppuntamento%0A%20%20%20%20ActiveCell.Offset(0%2C%2016).Value%20%3D%20txtAltro%0A%20%20%20%20%0A%20%20%20%20Me.Hide%0A%0A%20%20%20%20MsgBox%20%22Nuovo%20contatto%20Modificato%20correttamente%22%0A%20%20%20%20%0A%20%20%20%20Unload%20Me%0AEnd%20Sub%0A%0APrivate%20Sub%20ComboBox1_Change()%0A%20%20%20%20Dim%20a%20As%20Long%0A%0A%20%20%20%0A%20%20%20%20a%20%3D%20ComboBox1.ListIndex%20%2B%201%0A%20%20%20%20Cells(a%20%2B%208%2C%201).Select%0A%20%20%20%20txtData%20%3D%20ActiveCell.Value%0A%20%20%20%20txtNome%20%3D%20ActiveCell.Offset(0%2C%201).Value%0A%20%20%20%20CboxStato%20%3D%20ActiveCell.Offset(0%2C%202).Value%0A%20%20%20%20txtNumero%20%3D%20ActiveCell.Offset(0%2C%203).Value%0A%20%20%20%20txtEmail%20%3D%20ActiveCell.Offset(0%2C%204).Value%0A%20%20%20%20txtCitta%20%3D%20ActiveCell.Offset(0%2C%205).Value%0A%20%20%20%20txtProvincia%20%3D%20ActiveCell.Offset(0%2C%206).Value%0A%20%20%20%20txtRegione%20%3D%20ActiveCell.Offset(0%2C%207).Value%0A%20%20%20%20txtNoteC%20%3D%20ActiveCell.Offset(0%2C%208).Value%0A%20%20%20%20txtNoteA%20%3D%20ActiveCell.Offset(0%2C%209).Value%0A%20%20%20%20CboxChiamatoDa%20%3D%20ActiveCell.Offset(0%2C%2010).Value%0A%20%20%20%20txtChiamate%20%3D%20ActiveCell.Offset(0%2C%2011).Value%0A%20%20%20%20txtDataA%20%3D%20ActiveCell.Offset(0%2C%2012).Value%0A%20%20%20%20txtOra%20%3D%20ActiveCell.Offset(0%2C%2013).Value%0A%20%20%20%20CboxStatus%20%3D%20ActiveCell.Offset(0%2C%2014).Value%0A%20%20%20%20txtAppuntamento%20%3D%20ActiveCell.Offset(0%2C%2015).Value%0A%20%20%20%20txtAltro%20%3D%20ActiveCell.Offset(0%2C%2016).Value%0A%0AEnd%20Sub%0A%0APrivate%20Sub%20UserForm_Initialize()%0ADim%20ws%20As%20Worksheet%0ADim%20lastrow%20As%20Long%0ADim%20cl%20As%20Object%0ASet%20ws%20%3D%20Worksheets(%22contatti%22)%0Alastrow%20%3D%20Cells(Rows.Count%2C%202).End(xlUp).Row%0AFor%20Each%20cl%20In%20ws.Range(%22b9%3Ab%22%20%26%20lastrow)%0A%20%20With%20Me.ComboBox1%0A%20%20%20%20.AddItem%20cl.Value%0A%20%20End%20With%0ANext%0AEnd%20Sub%0A" message="" highlight="" provider="manual"/]

                             

                            Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?
                            ( Alan Turing)
                            Sempre il mare, uomo libero, amerai!

                            ( Charles Baudelaire )
                            #3087 Score: 0 | Risposta

                            Desy
                              Ciao Albatros, intanto grazie
                              l'unico problema è che se devo modificare un contatto esistente dovrei inserire come nella Userform "FrmTrova" per esempio il nome del contatto in  modo tale che me lo trovi e mi si apre la UserForm "FrmModifica" ma con già i dati precedentemente inseriti tramite la UserForm "FrmInserisci"
                              mi sono spiegata correttamente?
                              #3088 Score: 0 | Risposta

                              albatros54
                              Moderatore
                                89 pts
                                scusa,ma perchè devi aprire la userform trova, se sai che devi modificare un record, puoi aprire tranquillamnete la userform modifica, selezioni il recodr dalla combobox1 è il gioco è fatto, per come la vedo io

                                 

                                Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?
                                ( Alan Turing)
                                Sempre il mare, uomo libero, amerai!

                                ( Charles Baudelaire )
                                #3089 Score: 0 | Risposta

                                Desy
                                  hai ragione scusami non avevo visto finchè non ho aggiunto un contatto!!!
                                  Grazie mille!
                                  #3090 Score: 0 | Risposta

                                  albatros54
                                  Moderatore
                                    89 pts
                                    Se il problema è stato risolto, in basso a sx dalla combobox seleziona risolto e  click su aggiorna

                                     

                                    Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?
                                    ( Alan Turing)
                                    Sempre il mare, uomo libero, amerai!
                                    ( Charles Baudelaire )
                                  Login Registrati
                                  Stai vedendo 16 articoli - dal 1 a 16 (di 16 totali)
                                  Rispondi a: Trasferire dati da userform a colonna A
                                  Gli allegati sono permessi solo ad utenti REGISTRATI
                                  Le tue informazioni: