AYUDA PORFAVOR MIS AMIGOS, VEAN LOS EJEMPLOS DE ABAJO AHI CREO LOGRO EXPLICAR MEJOR. GRACIAS DE ANTEMANO.
columna B | columnas C | columnas D | columnas E |
159 | 159 | 125 | 25 |
123 | 123 | 145 | 759 |
125 | . | . | . |
145 | . | . | . |
025 | |||
759 |
LA COLUMNA B PUEDE TENER UN RANGO VARIABLE DE DATOS, LAS COLUMNAS C,D y E ESTAN EN OTRA HOJA Y Y SOLO TIENE 10 CELDAS EN LAS QUE PUEDO PEGAR ES DECIR C1:C10 ,D1:D10 , E1:E10.
EJEMPLO:
SI TENGO 25 CELDAS EN LA COLUMNA B QUIERO QUE SE COPIEN 10 CELDAS(maximo numero de celdas) EN LA COLUMNA C; 10 CELDAS(maximo numero de celdas) EN LA COLUMNA D Y EL RESTO EN LA COLUMNA E (5 celdas).
SI TENGO 15 CELDAS EN LA COLUMNA B QUIERO QUE SE COPIEN 10 CELDAS(maximo numero de celdas) EN LA COLUMNA C; 5 CELDAS EN LA COLUMNA D Y DEJAS VACIA LA COLUMNA E.
SI TENGO 30 CELDAS EN LA COLUMNA B QUIERO QUE SE COPIEN 10 CELDAS(maximo numero de celdas) EN LA COLUMNA C; 10 CELDAS(maximo numero de celdas) EN LA COLUMNA D Y EL RESTO EN LA COLUMNA E (10 celdas).
Adjunto | Tamaño |
---|---|
![]() | 9.7 KB |
Puedes recorrer las celdas con datos y utilizar un contador de las celdas que vas copiando
como tienes 10 datos máximo en cada columna de destino, puedes dividir ese contador entre 10, el cociente será la columan y el resto el número de celda de destino.
me explico:
columna=int(numerodedato/10) 'la parte entera de la división, es decir, el cociente
celdaenlacolumna=numerodedato Mod 10 'el resto de la división
Bueno, tendrías que ajustar qué quieres hacer con el dato número 10, si lo colocas el primero de la segunda columna o el último de la primera, que dependerá de si empiezas tu contador de celdas en 0 o en 1 (según sumes antes o después de procesar la celda), pero creo qeu por aquí puedes llegar a una solución práctica.
------
Ya sé Excel, pero necesito más.
Dim Cuenta As Integer
Dim Celda As Range
Range("B2").Select
Range("B2", Range("B2").End(xlDown)).SpecialCells(xlCellTypeVisible).Select
For Each Celda In Selection
Sheets("Hoja1").Select
Range("B2").Select
Range("B2").Offset(Cuenta, Int(Cuenta / 5)).Value = Celda.Value
Cuenta = Cuenta + 1
Next Celda
End Sub
con este codigo casi me sale el problema que lo copia al final... y no al mismo nivel
ya me saalio gracias por la ayuda amigo no habia entendido bien..
Sub dividir()
Dim cuenta As Integer
Dim Celda As Range
Range("B2").Select
Range("B2", Range("B2").End(xlDown)).SpecialCells(xlCellTypeVisible).Select
For Each Celda In Selection
Sheets("Hoja1").Select
Range("b2").Offset(cuenta Mod 20, Int(cuenta / 20)).Value = Celda.Value
cuenta = cuenta + 1
Next Celda
End Sub