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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 KL
20/04/2005 - 01:08 | Informe spam
Fe de erratas:

reemplaza la siguiente linea en el codigo

Dim Hoja As Worksheet

por

Dim Hoja As Long

Saludos,
KL


"KL" wrote in message
news:%
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

Respuesta Responder a este mensaje
#3 Hermano2
20/04/2005 - 01:33 | Informe spam
alucinante la formula... pero sabes que me pasa... cuando copia la respuesta
de la formula va bien, pero cuando el resultado de las formulas cambia... no
me cambia en los otros lados... si es posible que me puedas ayudar con
esto... desde ya Sos otro idolo junto con Hector Miguel, pero pls
ayudameesta ultima vez.. pls
Respuesta Responder a este mensaje
#4 KL
20/04/2005 - 01:45 | Informe spam
Hermano2,

?Porque no me envias el fichero? - mirare lo que puedo hacer. Habria que
entender donde tienes las formulas y de donde cogen los datos. Si es lo que
creo y las formulas de tu hoja principal se alimentan de otras hojas o
libros, creo habra que usar el evento Worksheet_Calculate y cambiar
radicalmente el codigo. Por eso, antes de emprender este nuevo viaje, me
gustaria tener la mayor claridad posible.

Un saludo,
KL

"Hermano2" wrote in message
news:
alucinante la formula... pero sabes que me pasa... cuando copia la
respuesta
de la formula va bien, pero cuando el resultado de las formulas cambia...
no
me cambia en los otros lados... si es posible que me puedas ayudar con
esto... desde ya Sos otro idolo junto con Hector Miguel, pero pls
ayudameesta ultima vez.. pls
Respuesta Responder a este mensaje
#5 KL
20/04/2005 - 02:56 | Informe spam
Hola Hermano2,

Dado que todas las formulas en la hoja principal parecen tener los
ascendientes en la misma hoja creo que podemos seguir usando el mismo
evento, pero con unas modificaciones importantes. Prueba el codigo que te
pongo a continuacion.

Saludos,
KL


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Variant, Dest As Variant
Dim Fila As Long, i As Integer

Application.ScreenUpdating = False
Col = Array("C", "D", "E", "F", "G", "H", _
"I", "J", "K", "L", "N", "W")
Dest = Array("F7,F24,F41", "I7,I24,I41", "L7,L24,L41", _
"H6,H23,H40", "K9,K26", "M9,M26", "K10,K27", "M10,M28", _
"M14,M31", "M12,M29", "M16,M33", "M15,M32")
For Fila = 18 To 30
With ThisWorkbook.Sheets(Fila - 16)
.Range("E3,E20,E37").Value = Me.Cells(35, "R").Value
.Range("E5,E22,E39").Value = Me.Cells(36, "R").Value
.Range("K10,K27").Value = Me.Cells(3, "R").Value
For i = LBound(Col) To UBound(Col)
.Range(Dest(i)).Value = Me.Cells(Fila, Col(i)).Value
Next i
End With
Next Fila
Application.ScreenUpdating = True
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida