Como puedo agregar varios datos a un ListView con un comandbuton por ejemplo tengo varios textbox los cuales son cod. Película, titulo, formato, genero, días, precio. Y quiero que al darle agregar con command me los anexe al ListView y así sucesivamente, o bien que otro control pudiera usar
1 respuesta
Respuesta de fejoal
1
1
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
Es cierto: Pasó algún tiempo, y tengo que admitir que no me fue fácil esta pregunta. Desde que recibí tu problema me he estado preguntando si lo que buscas resolver es dentro de un entorno MS Excel o en Visual Basic. A primera vista, pareciera ser que se trata de la última opción. En tal caso, no podré serte de mucha ayuda, toda vez que mis conocimientos -escasos- de programación se limitan a Visual Basic for Applications (que no es lo mismo) dentro de MS Excel. Si, por ventura, se tratara de hacerlo en Excel, entonces -tal vez- esto te servirá. (Al fin y al cabo, éste es un panel de expertos en Excel). En lugar de un List view, podrías usar un ListBox en un formulario que habrás ingresado en el Editor de Visual Basic de un determinado archivo de MS Excel Dada la volatilidad de los datos que se guardan en un Listbox (estos se pierden al cerrar el formulario) mi sugerencia es que tu base de películas resida en una hoja del libro en cuestión. Al iniciarse el formulario, este cargará en el listbox todos los registros disponibles en tal base. Luego de ingresar los datos de un nuevo titulo en los textbox, tras una confirmación, el commandbutton volcará los datos a la hoja y actualizará el listado en el ListBox, leyendo, nuevamente el rango de la hoja actualizado. Asumiré que ya tienes creado el UserForm, con sus Textboxs, Commandbutton y desde luego, el Listbox. En el panel de declaraciones del userform, ingresa los siguientes códigos para el formulario: ' Ingresa aquí tus variables: Const HojaDbase = "Inventario" 'Hoja donde está la base Const CeldaIni As String = "B6" 'Celda 1 de títulos Const CantCols = 7 'cantidad de columnas de la base Dim RangoIni As String Private Sub UserForm_Initialize() RefrRango CommandButton1.Caption = "Agregar a base" CommandButton2.Caption = "Cancelar" End Sub Sub RefrRango() CantFils = Range(CeldaIni).CurrentRegion.Rows.Count - 1 RangoIni = "'" & Sheets(HojaDbase).Name & "'!" & Range(Range(CeldaIni).Offset(1), Range(CeldaIni).Offset(CantFils, CantCols - 1)).Address With ListBox1 .ColumnCount = CantCols .ColumnHeads = True .RowSource = RangoIni End With End Sub Private Sub CommandButton1_Click() Valida = MsgBox("Confirma pase a Base?", vbOKCancel, "Agrega registro") If Valida = vbOK Then vCol = Range(CeldaIni).Column - 1 'Determina línea donde copiar datos If IsEmpty(Range(CeldaIni)) Then vRow = Range(CeldaIni).Row ElseIf Range(CeldaIni).End(xlDown).Row > 50000 Then vRow = Range(CeldaIni). Offset(1). Row Else vRow = Range(CeldaIni).End(xlDown).Offset(1).Row End If 'descarga de datos a hoja Cells(vRow, vCol + 1).Value = TextBox1.Value Cells(vRow, vCol + 2).Value = TextBox2.Value Cells(vRow, vCol + 3).Value = TextBox3.Value Cells(vRow, vCol + 4).Value = TextBox4.Value Cells(vRow, vCol + 5).Value = TextBox5.Value Cells(vRow, vCol + 6).Value = TextBox6.Value Cells(vRow, vCol + 7).Value = TextBox7.Value 'Actualiza listbox RefrRango 'Vaciado de datos TextBox1.Value = "" TextBox2.Value = "" TextBox3.Value = "" TextBox4.Value = "" TextBox5.Value = "" TextBox6.Value = "" TextBox7.Value = "" End If TextBox1.SetFocus End Sub Private Sub CommandButton2_Click() Unload Me End Sub --- Al inicio de éste código encontrarás algunas variables, que son parámetros que deberás modificar de acuerdo a tu archivo. Desde luego deberás agregar una macro para que muestre el formulario. Algo tan simple como: Sub cargaLista() UserForm1.Show End Sub En los términos que mencioné al principio, espero que esto ayude a resolver tu problema. - Ingresa al sitio www.porloschicos.com y, si quieres, presiona el botón de donación (es gratis). Confío en que lo harás.