UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

rubito1


HOLA GENTE DEL FORO!hace poco me ayudo tyno un monton con este tema y ahora quiero modificar algo en las columnas donde pone datos y no logro resolverlo;apelo a vuestra cordial ayuda como siempre (en el archivo veran lo que solicito);gracias (tyno si estas al acecho,please...)
Archivos
consulta tyno.xlsm
No tienes los permisos para descargar los archivos.
(224 KB)

tyno


Hola rubito.
Lo que pides es bastante sencillo, te doy unas pistas para que lo modifiques vos mismo:

En el código del botón OK para empezar vas a quitar el bucle For Next porque al no tener columnas de continuo ya no sirve de mucho:

For a = 0 To 5
Cells(rw, a + 7) = lista_datos.Column(a + 1)
Next a


Luego si observas  hay unas lineas que hacen referencia  a las celdas y a las columnas de las listas, por ejemplo

rw= es una variable que toma el valor de la fila seleccionada, vamos a suponer que es la 10.

Cells(rw, 3) = lista_datos.Column(0) : esto quiere decir que en la celda fila 10 columna 3, o sea  que en C10 va el dato del cuadro de lista lista_datos columna 0 (en los cuadros de lista la primer columna es 0)

En los siguiente ejemplos el principio es el mismo, o sea igualar la celda de la Hoja Excel con la columna del dato seleccionado en el cuadro de lista que corresponda. 

Cells(rw, 4) = lista_material.Column(0)
Cells(rw, 5) = lista_ag.Column(0)
Cells(rw, 6) = lista_ag.Column(1)

Como se ve no es necesario determinar la fila en el cuadro de lista sino la columna, porque se toma por defecto la fila del dato seleccionado en el cuadro de lista

Abajo, también solo a modo de ejemplo el código del botón OK te debería quedar más o menos así:

Private Sub CommandButton2_Click()
On Error Resume Next
If ActiveSheet.Name = "Prog." Then
rw = ActiveCell.Row
If rw > 7 Then
Cells(rw, 3) = lista_datos.Column(0)
Cells(rw, 4) = lista_datos.Column(1)
Cells(rw, 7) = lista_material.Column(2)
Cells(rw, 8 ) = lista_ag.Column(3)
Cells(rw, 10) = lista_ag.Column(4)

ActiveCell.Offset(1, 0).Select
End If
End If
End Sub

O sea que vas a tener que ir probando una y otra vez hasta que te coincidan los datos en las columnas de la Hoja con respecto a los cuadros de lista. Una vez que te des cuenta como es el asunto este trabajo es bastante fácil. Saludos

3RESUELTO no engancho el 25/03/14, 11:34 pm

rubito1


ante todo...un millon de gracias x tu paciencia y la explicacion;hice lo de sacar el for-next;interpreto que el rw indica la columna donde quiero que me anote el dato,siendo la 3 la columna 0(es asi?)(Cells(rw, 3) = lista_datos.Column(0)   0 sea que en la columna c me anota el 1er dato,pero no me sale nada;solo 1 o 2 datos;algo no estoy entendiendo me parece

tyno


En el objeto Cells se hace referencia a una celda por coordenadas: Cells(Row, Column) = Celda(fila, columna), por ejemplo Cells(3,1)= Celda(fila 3, columna 1) = A3.
"rw" es una variable que en este caso toma el valor de la fila seleccionada, o sea "rw" representa una fila: rw = ActiveCell.Row. La propiedad Row devuelve el valor de una fila, si por ejemplo seleccionamos la celda D4, Row = 4.

En el caso de tu archivo supongamos seleccionaste la celda E10, esto quiere decir que "rw" es igual a 10 y la columna = 5; Cells(rw,5) =Cells(10,5)=E10, digamos que en el objeto Cells va primero la fila y después la columna a diferencia de la referencia de una celda cuando la vemos en la Hoja Excel que va primero la columna y después la fila, ejemplo E10, donde E es la columna y 10 la fila.

Por lo tanto, siguiendo con el ejemplo de haber seleccionado la celda E10:
(Cells(rw, 3) = lista_datos.Column(0) => Cells(10,3)= lista_datos.Column(0) => C3=lista_datos.Column(0). 

En el caso de lista_datos.Column(0) tenemos que: lista_datos.Column=fila seleccionada en el cuadro de lista y la columna 0 (o sea la primer columna)

Saludos

5RESUELTO POR FIN el 26/03/14, 01:38 pm

rubito1


me costo...pero lo logre!!! gracias como siempre tyno(y por tu paciencia en especial)saludos

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.