Vba para remover datos de un listbox

Me gustaría me pudieran ayudar de favor a remover unos datos así

En mi celda Ag 2 tengo estos datos :

AG2: 6444-Recepcion y Predictamen de Aclaraciones | 7895-Management and Service|6444-Recepcion y Predictamen de Aclaraciones|7895-Management and Service|7748-Experiencia del Cliente y Producto|10397-AML Afore|181-Comercializacion y Servicio

Se abre el formulario en esa celda ag2 así :

listbox 1                                                                                           listbox2

En el listbox1son datos que vienen de un catalogo

En el listbox2 son datos que vienen en la celda que abras (para este ejemplo son los datos de la AG2 que mencione arriba)

Lo que quiero es que en el botón de remove me REMUEVA datos del listbox2 pero solo los datos que coincidad den listbox1 :

10397-AML Afore

181-Comercialización y Servicio

183-Inversiones

7733-Riesgos

Y si tiene difererentes datos a esos que no me los remueva, solo los que mencione arriba.. (son 4 casos),

Este formulario se abre cada que te poisiones en una celda de ag y los datos del listbox2 pueden cambiar pero siempre que pueda remover solo si soniguales a los 4 casos que te mencione y si no son iguales que esos no te los permita remover

1 Respuesta

Respuesta
1

Partiendo de la premisa de que de Excel no tengo ni idea, pero lo que se dice ni idea. Y partiendo de la misma premisa de que no entiendo para que sirve el pasar datos de un cuadro de lista a otro existiendo la posibilidad de seleccionar y deseleccionar varios items, por si el código te sirve de algo. Si tengo el formulario con dos cuadros de lista, donde en lista 2 tengo puesto que selección extendida = simple

Ahora selecciono varios o todos los países y pulso el botón Añadir

Si ahora deselecciono los que me interesa que se queden

y pulso Remover

El código de los botones( el botón Remover es Comando6 y Añadir es Comando7) es

Private Sub Comando6_Click()
DoCmd.SetWarnings False
Dim icue As Variant
For Each icue In Me.Lista2.ItemsSelected
Me.Lista4.RemoveItem Me.Lista2.ItemData(icue)
Next
End Sub
Private Sub Comando7_Click()
DoCmd.SetWarnings False
Dim icue As Variant
For Each icue In Me.Lista2.ItemsSelected
Me.Lista4.AddItem Me.Lista2.ItemData(icue)
Next
End Sub

Hola mira si es algo así lo que necesito mi tema es que de mi lisbox 2 tengo varios datos entonces lo que hace ahorita mi botón de remover es que remueve cada selección de mi listbox2

Dim i As Long
With e <<-----listbox2
If .ListIndex < 1 Then .RemoveItem .ListIndex
End With  <----- este es mi codigo con el que me remueve uno por uno  de mi listbox2 , pero ahora quiero que soolo me elimine aquellos casos que coincidad con mi listbox1 :

10397-AML Afore

181-Comercialización y Servicio

183-Inversiones

7733-Riesgos <<<----- estos son los datos de mi listbox1

... Ejemplo si habro mi formulario y quiero eliminar el que seleccione de mi listbox2, no me deje eliminarlo al menos que sea solo los que coincidan con mi listbox1

Sé que lo que voy a decir va a sonar como un anatema y algún experto en Excel me dirá lo contrario, pero... Excel se creó en su día como una copia vulgar del Lotus 123 que era una simple hoja de cálculo. Para gestionar datos los piratas de Microsoft copiaron el Dbase III Plus. Quiero decir con esto, que cada cosa es para lo que es, y si se trata de gestionar datos, para eso está Access.

Dicho esto, y vuelvo a dejar por sentado que de Excel no tengo ni idea, si el origen de la lista2 es(supongo que en tu caso serán celdas)

y el origen de la lista 4 es

En el formulario

Si pulso el botón Remover

Me ha quitado de lista 4 aquellos países que coinciden con lista 2

El código del botón es(sin necesidad de definir variables)

Lista4.RowSource = "SELECT Lista4.Pais FROM Lista2 RIGHT JOIN Lista4 ON Lista2.[Pais] = Lista4.[Pais] WHERE (((Lista2.Pais) Is Null))"

Hola perdón pero me sale error dice "run time error 380", esto fue lo que puse en mi código de vba en excel.

e.RowSource = "SELECT e.Pais FROM d RIGHT JOIN e ON d.[Pais] = e.[Pais] WHERE ((d.Pais) Is Null))"

d  =  es igual a tu lista2

e = es igual a tu lista4 

Gracias :)

Samara, de verdad que lo siento, pero no puedo decirte nada más. Si fuera en Access sería sencillo hacerlo, pero es que Excel se me escapa totalmente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas