Stack Overflow en español Asked by HECTOR HIM on December 18, 2021
Agradezco el apoyo que me brinde tengo el siguiente código:
Private Sub CommandButton1_Click()
Dim Uf As Long
Dim lx As Long
With Hoja1
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Uf = .Range("O" & Rows.Count).End(xlUp).Row + 1
.Range("O" & Uf) = ListBox1.List(i, 0) 'Columna 1
ListBox1.Selected(i) = False
i = i - 1
Uf = Uf + 1
End If
Next i
End With
End Sub
Este código lo que hace es que selecciona ITEMS de forma multiple y los va registrando en la columna "O"
la hoja en Excel; pero necesito que él me pueda almacenar el los ITEMS seleccionados, por ejemplo: 2017-2018-2019
en la columna o
fila 1
; es decir en la misma fila.
Ahorita, como esta desarrollado, me realiza el registro de la siguiente manera
2017
2018
2019
Estos datos corresponden al cliente uno de la hoja ingreso. Al hacerme ese registro así, me está indicado que al cliente 1
se le vendió x
producto en el 2017, al cliente 2
se le vendió x
producto en el 2018, etc.
Pero lo real es que la ventas fueron realizadas al cliente 1
Agradezco el apoyo.
jachguate agradecido por la colaboración que me diste ya realice los ajutes utilizando el codigo que me facilitaste y asi quedo el nuevo codigo empleado para mí vba gracia por su apoyo saludos cordiales.
Private Sub CommandButton1_Click()
Dim uf As Long
Dim X As String
Dim Y As String
Dim k As String
With Hoja1
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
X = ListBox1.List(i, 0)
Y = X & " " & Y
uf = .Range("O" & Rows.Count).End(xlUp).Row + 1
k = Left(Y, Len(Y))
ListBox1.Selected(i) = False
End If
Next i
.Range("O" & uf) = k
End With
End Sub
Answered by HECTOR HIM on December 18, 2021
Si necesitas que todo quede en la celda O1
, lo que puedes hacer es ir guardando el nombre de todos los elementos seleccionados en una variable y finalmente asignarle ese valor a la celda.
Tomando como base tu código, podría ser algo como:
Private Sub CommandButton1_Click()
Dim ItemsSeleccionados As String
ItemsSeleccionados = ""
With Hoja1
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ItemsSeleccionados = ItemsSeleccionados & "-" & ListBox1.List(i, 0)
ListBox1.Selected(i) = False
End If
Next i
.Range("O1") = Left(ItemsSeleccionados, Len(ItemsSeleccionados) - 1)
End With
End Sub
Si se seleccionó los items que tienen +:
2007 +
2008
2009 +
2010
Esto dejará el valor 2007-2009
en la celda O1
.
Answered by jachguate on December 18, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP