List View

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
1
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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas