Necesito macro que visualice en listbox los datos que ingreso en textbox, luego al finalizar imprimir form

Necesito una macro que al ingresar datos por textbox estos, se visualicen en un listbox, los datos que ingreso van quedando asignados en la columna B, pero modifiqué el form para que pudiera visualizar los datos que ingreso en un listbox y a la vez vayan quedando en la columna B como muestra la imagen:

Esa es una parte, la otra es que tenga un contador de los datos que ingreso en el textbox2 (bajo donde dice "Total Carga") y que al finalizar me imprima el formulario o haga un informe y se imprima, ¿se podrá? El código de ingreso de datos del formulario es este :

________________________________________

Private Sub CommandButton1_Click()
         If Len(TextBox1) > 1 And TextBox1 <> "" Then
                   TextBox1 = "" & TextBox1
                   Set h = Sheets("carga")
                   u = h.Range("B" & Rows.Count).End(xlUp).Row + 1
                   h.Cells(u, "B") = TextBox1
                   TextBox1 = ""
             TextBox1.SetFocus
         End If
End Sub

_________________________________________________
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
      CommandButton1_Click
      Cancel = True
End Sub

________________________________________________
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
            If KeyAscii < 45 And KeyAscii <= 75 Then KeyAscii = 0
End Sub

______________________________________
Private Sub UserForm_Activate()
        TextBox3 = Now
End Sub

1 respuesta

Respuesta
1

H o  l a:

Te anexo la macro actualizada para agregar datos al listbox y aumentar el contador.

Private Sub CommandButton1_Click()
'Act.Por.Dante Amor
    If Len(TextBox1) > 1 And TextBox1 <> "" Then
        TextBox1 = "" & TextBox1
        Set h = Sheets("carga")
        u = h.Range("B" & Rows.Count).End(xlUp).Row + 1
        h.Cells(u, "B") = TextBox1
        TextBox2 = Val(TextBox2) + 1
        ListBox1.AddItem TextBox1
        TextBox1 = ""
        TextBox1.SetFocus
    End If
End Sub

Para imprimir el formulario, pon lo siguiente en un botón:

Private Sub CommandButton2_Click()
    UserForm1.PrintForm
End Sub

Si quieres imprimir los datos en un informe, crea una nueva pregunta y me explicas cómo quieres el informe.


:)
S a l u d o s. D a n t e A m o r.
R ecuerda valorar la respuesta. G racias
;)

Hola, funciona ok, justo lo que necesitaba, el asunto es que los datos que ingreso, deben coincidir con los que tengo en un libro principal, tu me ayudaste con eso, que si existe pasa, pero si no me da mensaje de que no existe y se elimina automáticamente del rango B, pero acá igual queda grabado en el listbox, (solo en el listbox) y el contador lo suma, pero solo eso, ya que al cerrar el form no aparecen los datos que no existen en el libro principal.

necesito que si no existe el dato en el libro principal, no lo contabilice y no aparezca en el listbox.

la macro que lleva el libro que me indica que dato no existe es esta:

Private Sub Worksheet_Change(ByVal Target As Range)
'Act.Por.Dante Amor
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Columns("B")) Is Nothing Then
If Target = "" Then Exit Sub
ruta = "D:\correo\correo\"
'ruta = "C:\trabajo\"
arch = "cargar_rendir.xls"
Set l2 = Workbooks.Open(ruta & arch, ReadOnly:=True)
Set h2 = l2.Sheets("carga")
Set b = h2.Columns("B").Find(Target, LookAt:=xlWhole)
ThisWorkbook.Activate
If b Is Nothing Then
MsgBox "Documento no existe en Sala Valparaíso" & vbCr & vbCr & _
" " & Target, vbCritical, "VERIFICAR CÓDIGO"
Target.Select
Target.ClearContents
End If
l2.Close False
End If
If Target.Column = 2 Then
valor = Target.Value
contarsi = Application.WorksheetFunction.CountIf(Columns(2), valor)
If contarsi > 1 Then
MsgBox "Documento ya procesado"
Target.Select
Target.ClearContents
Target.Offset(0, 1).ClearContents
End If
End If
End Sub

 _____________________________

algo parecido pero que funcione con el listbox y no contabilice ya que lo elimina automáticamente, allí en negrita es el archivo excel principal y la ruta donde se encuentra.

Cambia la macro por esta:

Private Sub CommandButton1_Click()
'Act.Por.Dante Amor
    If Len(TextBox1) > 1 And TextBox1 <> "" Then
        TextBox1 = "" & TextBox1
        Set h = Sheets("carga")
        u = h.Range("B" & Rows.Count).End(xlUp).Row + 1
        h.Cells(u, "B") = TextBox1
        If h.Cells(u, "B") <> "" Then
            TextBox2 = Val(TextBox2) + 1
            ListBox1.AddItem TextBox1
        End If
        TextBox1 = ""
        TextBox1.SetFocus
    End If
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas