copiar rango de celdas condicionado

18/03/2006 - 21:29 por news.microsoft.com | Informe spam
Hola Amigos! como puedo hacer para copiar un rango de celdas de acuerdo a
una condicion que esta en otra columna.
en mi caso tengo en la hoja 1

A2 (Columna condicion) - A3 A4 A5 A6 A7 A8 - (Rango de celdas que van a
recibir las celdas copiadas)

1 - B3 B4 B5 B6 B7 B8 - (Rango de celdas que se copiaran de acuerdo a la
condicion)
2 - C3 C4 C5 C6 C7 C8 -
3 - D3 D4 D5 D6 D7 D8-
necesito que si pongo en la celda A2 el numero 1 me copie el rango de celdas
b3:b8 en las celdas a3:a8 si ingreso el numero 2 me copie el rango de celdas
c3:c8
o sea simplificando necesito una funcion o macro que busque un numero x en
un rango de celdas y cuando lo encuentre me copie la fila de ese numero en
la fila donde puse ese numero x

se entendio?

DIEGO
CORDOBA ARGENTINA
 

Leer las respuestas

#1 Héctor Miguel
21/03/2006 - 09:00 | Informe spam
hola, Diego !

El codigo... quiero cambiarlo de la siguiente forma... para no tener que escribir y manejar tantas formulas!
La hoja 1 tiene una matriz de datos (alto E9:E27 ancho E9:BA9)
La hoja 2 tiene otra matriz de datos (alto E9:E109 ancho E9:BA9)
Yo tengo que ir llenando la matriz de la hoja 1 de acuerdo a la matriz de la hoja 2 de la siguiente manera:
la primer celda de cada fila de la matriz de la hoja 1 va a llevar un dato o nombre que yo voy a ir insertando
el codigo me tendria que busca ese dato dentro de la primer columna de la matriz de la hoja 2
y luego que lo encuentra copiar el resto de la fila de ese dato (para la celda E9 seria el rango E10:E109)
en el resto de la fila de la matriz de la hoja 1... para crear planificaciones semanales de horarios.
En la matriz de la hoja 2 voy a tener planificaciones horarias ya definidas y en la matriz de la hoja 1
tengo que ir elegiendo que planificacion horaria de las ya definidas ...



una forma [de entre varias mas posibles] es como la que te expongo a continuacion
si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

copia las siguientes lineas en el modulo de codigo de la hoja1 ==Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Intersect(Target, Range("e9:e27")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Application.CountIf(Range("e9:e27"), Target) > 1 Then _
MsgBox Target & vbCr & "ya se ha procesado en esta sesion !!!": _
Target.ClearContents: Exit Sub
Dim Celda As Range, Fila As Byte
With Worksheets("hoja2")
On Error Resume Next
Set Celda = .Range("e9:e120").Find(Target, .Range("e9"))
On Error GoTo 0
If Not Celda Is Nothing Then Fila = Celda.Row
End With
With Target.Offset(, 1).Resize(, 48)
If Not Celda Is Nothing Then .Value = _
Worksheets("hoja2").Range("e" & Fila).Offset(, 1).Resize(, 48).Value _
Else .ClearContents
End With
Set Celda = Nothing
End Sub

Preguntas similares