LA enti penultima pregunta :P

19/04/2005 - 19:57 por Hermano2 | Informe spam
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range

On Error Resume Next
Set Rng = Intersect(Target, _

Range("F18:F30,C18:C30,D18:D30,E18:E30,G18:G30,I18:I30,K18:K30,L18:L30"))
On Error GoTo 0
If Rng Is Nothing Then Exit Sub

Dim c As Range
Dim Hoja As Worksheet
For Each c In Rng
Select Case c.Column
Case 6: Dest = "H6,H23,H40" '"F"
Case 3: Dest = "F7,F24,F41" '"C"
Case 4: Dest = "I7,I24,I41" '"D"
Case 5: Dest = "L7,L24,L41" '"E"
Case 7: Dest = "K9,K26" '"G"
Case 9: Dest = "K10,K27" '"I"
Case 11: Dest = "M14,M31" '"K"
Case 12: Dest = "M12,M29" '"L"
End Select

On Error Resume Next
Set Hoja = Worksheets(c.Row - 16)
On Error GoTo 0
If Not Hoja Is Nothing Then
c.Copy Worksheets(c.Row - 16).Range(Dest)
Else
MsgBox "No existe hoja numero " & (c.Row - 16)
End If
Next c
End Sub

perdoname... la formula anda de 10 excelente pero aparte de la
formula en

la misma hoja tambien necesitaria que se copie otras cosas como R35 en hoja
2 to

14 en E3,E20,E37 y R36 en Hoja 2 to 14 en E5,E22,E39, tambien aparte quiero

copiar el resultado de una formulas Supongamos que en r3 esta el resultado de

r1+r2... ese resultado lo quiero pasar a otra hoja, hoja 2 E37 pero R1 y R2

pueden cambiar sus valores... y el resultado cambia.. al cambiar quiero que

pase automaticamente al cambiar R1 y R2... pero es un poco mas complicado...

porque seria como el de "Case 9: Dest = "K10,K27" '"I"" alguno de
estos...

que estan los de resultado en H, J, N , W, el H de 18:30 hoja en

M9,M26, el J de 18:30 hoja en M10,m28, el N de 18:30 hoja en M16,M33 y W de

18:30 hoja en M15,M32

te lo puse asi porque es muy largo y te podes perder... siempre me pasa a
mi...

PD: lo que me pasa cuando le pongo copiar el resultado de una formula es que
cuando cambia el resultado.. en la copia no cambia...

PD2: quisiera todo para la misma formula que me diste... osea que se
complemente en esa formula



Expandir todoContraer todo
 

Leer las respuestas

#1 KL
20/04/2005 - 00:41 | Informe spam
Hola Hermano2,

Prueba el codigo que te pongo a continuacion, aunque cuanto mas me lo pienso
mas me inclino hacia la idea de que hubiera sido mucho mas facil mediante
formulas que codigo, pero tu mismo.

Saludos,
KL

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range

On Error Resume Next
Set Rng = Intersect(Target, _
Range("C18:L30,N18:N30,W18:W30,R35:R36,R1:R2"))
On Error GoTo 0
If Rng Is Nothing Then Exit Sub

Dim c As Range
Dim Hoja As Worksheet
Dim Dest As String
For Each c In Rng
Select Case c.Column
Case 3: Dest = "F7,F24,F41" '"C"
Case 4: Dest = "I7,I24,I41" '"D"
Case 5: Dest = "L7,L24,L41" '"E"
Case 6: Dest = "H6,H23,H40" '"F"
Case 7: Dest = "K9,K26" '"G"
Case 8: Dest = "M9,M26" '"H"
Case 9: Dest = "K10,K27" '"I"
Case 10: Dest = "M10,M28" '"J"
Case 11: Dest = "M14,M31" '"K"
Case 12: Dest = "M12,M29" '"L"
Case 14: Dest = "M16,M33" '"N"
Case 23: Dest = "M15,M32" '"W"
End Select
If Dest <> "" Then
Sheets(c.Row - 16).Range(Dest).Value = c.Value
End If
If c.Column = 18 Then '"R"
Select Case c.Row
Case 1, 2
For Hoja = 2 To 14
Sheets(Hoja).Range("K10,K27").Value = _
Me.Range("R3").Value
Next Hoja
Case 35: Dest = "E3,E20,E37"
Case 36: Dest = "E5,E22,E39"
End Select
End If
If Dest <> "" Then
For Hoja = 2 To 14
Sheets(Hoja).Range(Dest).Value = _
c.Value
Next Hoja
End If
Dest = ""
Next c
End Sub

Preguntas similares