› Excel e gli applicativi Microsoft Office › Trasferire dati da userform a colonna A
-
AutoreArticoli
-
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 LongRowCounts = Worksheets("Contatti").Range("A8").CurrentRegion.Rows.CountWorksheets("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 = txtAltroMsgBox "Nuovo contatto aggiunto correttamente"End SubTutti i valori vengono inseriti nelle celle corrette ma quando aggiungo un nuovo contatto si sovrascrivono sopra.Potete aiutarmi?Vi ringrazio in anticipoCiao DesySupponendo che la userform abbia 4 textbox ed il foglio che deve ricevere i dati abbia 4 colonne prova questo codicePrivate 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 iEnd SubIl 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.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 = txtAltroMe.Hide
MsgBox "Nuovo contatto aggiunto correttamente"Unload Me
End SubNel frattempo se posso ti chiedo anche, è possibile dopo aver inserito il contatto visualizzarlo o modificare alcuni dati sempre tramite la User?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'istruzioneCells(numeroriga, numerocolonna)Guarda un po' l'help in linea della istruzione CellsCiao Desy, ti invito a leggere il regolamento https://www.excelvba.it/regolamento.php, in particolar modo il punto relativo al titolo della discussione.scusa la mia ignoranza ma è la prima volta che scrivo qui:come faccio ad allegarti il file?Non vedo allega...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.AlfredoProbabilmente 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 eccin 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" ?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.Alfredoperò puoi caricare il file su dropbox o simili e postare il linkN.B. ho modificato il titolo della discussioneCiao,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 anticipoallora, 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 )Ciao Albatros, intanto graziel'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?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 ioQual è 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 )hai ragione scusami non avevo visto finchè non ho aggiunto un contatto!!!Grazie mille!Se il problema è stato risolto, in basso a sx dalla combobox seleziona risolto e click su aggiornaQual è 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 ) -
AutoreArticoli
