Por que no funciona

31/07/2007 - 18:34 por Albymar | Informe spam
Hola a todos,
Tengo un Libro.xls con 40 Hojas, donde la Hoja1."General" es una hoja
registro, que tras una Macro (De Hector Miguel) por medio de filtro
avanzado, envio registros, por medio de un criterio, a cada Hoja (39
restantes)...
El problema que tengo es que... despues de realizar esto debo realizar una
columna (K) con saldo pendiente partiendo de un importe que esta en K6,
(K7=K6-I7) ... a si sucesivamente miestras haya valores en A:A

Ya se que arrastrando una determinada formula desde la celda K7 hacia abajo
se soluciona el problema pero quiero que lo haga al mismo tiempo
vuelca/traspasa los datos, pero debido a mis limitados conocimientos de
codigo, como siempre me he "atrancado".

Como primer paso para ver como hacerlo -en una hoja- he realizado lo
siguiente:
V = Range("A6").End(xlDown).Row
Range("K7:K" & V).Formula = "=R[-1]C-RC[-2]"
(Puede ser una animalada ... perdon si lo es, he avisado de conocimientos
limitados) pero me da error...
¿Podeis ayudarme?
Gracias de antemano a todos.

Preguntas similare

Leer las respuestas

#1 Ivan
31/07/2007 - 19:15 | Informe spam
On 31 jul, 18:34, Albymar wrote:
Mostrar la cita
hola,

quizas podrias añadir esto dentro del bucle que carga las hojas (tras
haber pegdo lo filtrado)

Sheets(i).Range("k7").Formula = "=k6-i7"
Sheets(i) .Range("k7").AutoFill .Range("k7:k" & .
[a65536].End(xlUp).Row)

si te da conflictos con los filtros hazlo en un bucle a posteriori, y
si no te hace falta mas que el resultado (sin formula) algo como

dim celda as range
with sheets(i)
for each celda in .Range("k7:k" & .[a65536].End(xlUp).Row)
with celda
.value=.offset(-1)-.offset(,-2)
end with
next

a ver que tal

un saludo
Ivan
#2 Ivan
31/07/2007 - 19:18 | Informe spam
On 31 jul, 19:15, Ivan wrote:
Mostrar la cita
fe de erratas:

esto =>>

Sheets(i) .Range("k7").AutoFill .Range("k7:k" & .
Mostrar la cita
seria asi=>>

Sheets(i).Range("k7").AutoFill Sheets(i).Range("k7:k" & .
Mostrar la cita
o metiendolo en un bloque with (with sheets(i))

disculpas y un saludo
#3 Albymar
31/07/2007 - 19:44 | Informe spam
Gracias, de nuevo Ivan,
Como has podido ver, es una continuacion del post de Jesus Peralta,
"Cumplidas e Incumplidas", pero como es una consulta ajena, he preferido
separarla, y no abusar de tus conocimientos, pero heme hablando de nuevo
contigo que es un placer ...
Referente a tu ayuda, ahora me voy del trabajo, mañana te comento la
aplicacion de tus comentarios a mi libro,
Gracias de nuevo por tu ayuda e interes por este tema.

"Ivan" escribió:

Mostrar la cita
#4 Albymar
01/08/2007 - 11:42 | Informe spam
Hola Ivan, segun te prometi, te contesto ...
He estado probando, modificando, cambiando (en definitiva, liandome...) y al
fina recurro de nuevo a ti.
Con respecto a tu primera opcion:
"... quizas podrias añadir esto dentro del bucle que carga las hojas (tras
haber pegdo lo filtrado)
Sheets(i).Range("k7").Formula = "=k6-i7"
Sheets(i).Range("k7").AutoFill Sheets(i).Range("k7:k" &
.Sheets(i).[a65536].End(xlUp).Row)
si te da conflictos con los filtros hazlo en un bucle a posteriori ...
o metiendolo en un bloque with (with sheets(i))"
...en las tres formas me da el error 438:Objeto no admite esta Propiedad o
metodo.

Con respecto a tu segunda opción:
"... si no te hace falta mas que el resultado (sin formula) algo como
dim celda as range
with sheets(i)
for each celda in .Range("k7:k" & .[a65536].End(xlUp).Row)
with celda
.value=.offset(-1)-.offset(,-2)
end with
next "
... de esta forma, si que sale, pero el proceso parece ser muy lento y tarda
una eternidad...

En la espera de poder solucionarlo, te reitero las gracias por tu ayuda y
amabilidad para conmigo.
Saludos





"Ivan" escribió:

Mostrar la cita
#5 Ivan
01/08/2007 - 17:48 | Informe spam
On 1 ago, 11:42, Albymar wrote:
Mostrar la cita
hola ¿Alberto?¿Alba?

a mi esta adaptacion me funciona sin problemas

Sub Filtro_avanzado()
Dim Rango_lista As String, i As Integer
Application.ScreenUpdating = False
With Worksheets("Hoja1")
Rango_lista = .Range("a1:i" & .[a65536].End(xlUp).Row).Address
For i = 2 To ThisWorkbook.Sheets.Count
.Range(Rango_lista).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets(i).Range("H3:H4"), _
CopyToRange:=Sheets(i).Range("A6:I6")
With Sheets(i)
''' .[k6] = 10000
.[k7].Formula = "=k6-i7"
.[k7].AutoFill Destination:=.Range("k7:k" & _
.[a65536].End(xlUp).Row)
End With
Next
End With
End Sub

lo unico que he hecho (pero sin ello tambien parece funcionar) es
asignar un valor inicial a K6, pues sino siempre seria negativo, pero
ya te digo que esto no parece influir (de hecho las ultimas pruebas
esta como lo ves, como comentario)

mira a ver sei hay algo mas que por aqui desconozcamos, y comentas
como te ha ido

un saludo
Ivan

PD: aunque no lo creo, pues te hubiera dado problemas con los filtros
¿el usar Sheets en lugar de Worksheets es por tener alguna hoja de
graficos?
Ads by Google
Search Busqueda sugerida