ESTE CODIGO ME DA UN PROBLEMA DE TIEMPO DE EJECUCION Y NO LO ENTIENDO.

03/06/2009 - 01:33 por Anonimo | Informe spam
Me da un problema de que al ejecutar por primera vez la macro resulta que me
dice que es un fallo en tiempo de ejecucion, y sin embargo si le vuelvo a
dar 15 veces sin mas lo realiza sin el mas minimo problema.

Excel 2007 y Gracias

Sub uno()

Dim varCuentaHojas As Integer: varCuentaHojas = Sheets.Count
Dim varUltfila As Integer: varUltfila = Range("b20000").End(xlUp).Row


'Crear una hoja antes de la Hoja de Toma de datos
Sheets.Add before:=Sheets(varCuentaHojas)

'Ensanchar las columnas a,b,c
Range("A:C").ColumnWidth = 45

'Pegar los datos de la web Federacion Cantabra de Futbol en las hojas
Range("a1:c1").PasteSpecial

'Quitar filas que ponga encuentro

With Range("e1:e" & varUltfila)

.Formula = "=+IF(A1=""Encuentro"",#N/A,1)"

.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete

.Clear

End With

'Quitar las filas que ponga Jornada y copiarlas en una columna A de nueva
creacion
Columns(1).Insert




End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
03/06/2009 - 06:23 | Informe spam
hola (...), ?????

Me da un problema de que al ejecutar por primera vez la macro resulta que me dice que es un fallo en tiempo de ejecucion
y sin embargo si le vuelvo a dar 15 veces sin mas lo realiza sin el mas minimo problema.
Excel 2007 y Gracias



supongo que parte del error (que no comentas cual es ni que linea lo provoca)
se deriva de que la copia de datos/rango/... la haces ANTES de correr la macro (?)
y ya despues, el codigo no puede "interpretarlos" como si hicieras un "pegado" desde el portapapeles :((

=> prueba haciendo la copia de los datos/rango/... DESDE LA MISMA MACRO que hace el pegado (p.e.)

Dim varCuentaHojas As Integer: varCuentaHojas = Sheets.Count
Dim varUltfila As Integer: varUltfila = Range("b20000").End(xlUp).Row

'Copiar los datos desde la macro que los pega en otra hoja...
Range("a1").CurrentRegion.Copy

'Crear una hoja antes de la Hoja de Toma de datos
Sheets.Add Before:=Sheets(varCuentaHojas)

(etc. etc. etc.)

saludos,
hector.

__ (FRACCIONES DEL) codigo expuesto __
Sub uno()

Dim varCuentaHojas As Integer: varCuentaHojas = Sheets.Count
Dim varUltfila As Integer: varUltfila = Range("b20000").End(xlUp).Row


'Crear una hoja antes de la Hoja de Toma de datos
Sheets.Add before:=Sheets(varCuentaHojas)

'Ensanchar las columnas a,b,c
Range("A:C").ColumnWidth = 45

'Pegar los datos de la web Federacion Cantabra de Futbol en las hojas
Range("a1:c1").PasteSpecial

'Quitar filas que ponga encuentro

With Range("e1:e" & varUltfila)

.Formula = "=+IF(A1=""Encuentro"",#N/A,1)"

.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete

.Clear

End With

'Quitar las filas que ponga Jornada y copiarlas en una columna A de nueva creacion
Columns(1).Insert

End Sub
Respuesta Responder a este mensaje
#2 Anonimo
03/06/2009 - 08:21 | Informe spam
Buenos dias Hector.

No me dice cual es el error ni me marca linea donde esta el mismo.
Simplemente me sale un aviso 1004 creo que es en tiempo de ejecucion. Te
digo, los datos los copio de una pagina web
http://www.federacioncantabradefutb...index.php. Ahi pongo la
fecha de una semana en futbol y copio los datos manualmente, es decir,
selecciono desde el dia hasta la hora de ultimo partido.

La idea es buscar los partidos de mi club, y despues arreglarlos para quedar
como dice el codigo, que me funciona perfecto, pero me sale ese error la
primera vez que le doy.

En otro orden de cosas, me gustaria que le echaseis un vistazo para ver si
se pudiera reducir o hacer mas rapido su ejecucion.

Gracias.

"Héctor Miguel" escribió en el mensaje de
noticias news:%
hola (...), ?????

Me da un problema de que al ejecutar por primera vez la macro resulta que
me dice que es un fallo en tiempo de ejecucion
y sin embargo si le vuelvo a dar 15 veces sin mas lo realiza sin el mas
minimo problema.
Excel 2007 y Gracias



supongo que parte del error (que no comentas cual es ni que linea lo
provoca)
se deriva de que la copia de datos/rango/... la haces ANTES de correr la
macro (?)
y ya despues, el codigo no puede "interpretarlos" como si hicieras un
"pegado" desde el portapapeles :((

=> prueba haciendo la copia de los datos/rango/... DESDE LA MISMA MACRO
que hace el pegado (p.e.)

Dim varCuentaHojas As Integer: varCuentaHojas = Sheets.Count
Dim varUltfila As Integer: varUltfila = Range("b20000").End(xlUp).Row

'Copiar los datos desde la macro que los pega en otra hoja...
Range("a1").CurrentRegion.Copy

'Crear una hoja antes de la Hoja de Toma de datos
Sheets.Add Before:=Sheets(varCuentaHojas)

(etc. etc. etc.)

saludos,
hector.

__ (FRACCIONES DEL) codigo expuesto __
Sub uno()

Dim varCuentaHojas As Integer: varCuentaHojas = Sheets.Count
Dim varUltfila As Integer: varUltfila = Range("b20000").End(xlUp).Row


'Crear una hoja antes de la Hoja de Toma de datos
Sheets.Add before:=Sheets(varCuentaHojas)

'Ensanchar las columnas a,b,c
Range("A:C").ColumnWidth = 45

'Pegar los datos de la web Federacion Cantabra de Futbol en las hojas
Range("a1:c1").PasteSpecial

'Quitar filas que ponga encuentro

With Range("e1:e" & varUltfila)

.Formula = "=+IF(A1=""Encuentro"",#N/A,1)"

.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete

.Clear

End With

'Quitar las filas que ponga Jornada y copiarlas en una columna A de nueva
creacion
Columns(1).Insert

End Sub




Respuesta Responder a este mensaje
#3 Héctor Miguel
03/06/2009 - 08:54 | Informe spam
hola (...), ????? (si... ya se que eres Jose Angel, pero... ???)

No me dice cual es el error ni me marca linea donde esta el mismo. Simplemente me sale un aviso 1004 creo que es en tiempo de ejecucion.
Te digo, los datos los copio de una pagina web
http://www.federacioncantabradefutb...index.php.
Ahi pongo la fecha de una semana en futbol y copio los datos manualmente
es decir, selecciono desde el dia hasta la hora de ultimo partido.



prueba mejor haciendo una exportacion de los datos desde la pagina web en directo al excel
(puedes indicar cual de las tablas -si hay varias- es la que se mandara a una hoja/libro de excel)
en lugar de hacer el copy (desde la pagina web) e iniciar una macro haciendo un "paste" (que no puede definir su origen)

La idea es buscar los partidos de mi club, y despues arreglarlos para quedar como dice el codigo
que me funciona perfecto, pero me sale ese error la primera vez que le doy.



prueba con el punto anterior, corres la macro desde esa hoja
(pero elimina de la macro la insercion de una hoja nueva y la instruccion del "pastespecial")

saludos,
hector.
Respuesta Responder a este mensaje
#4 Anonimo
03/06/2009 - 09:35 | Informe spam
Me encantaria hacerlo, pero no se puede. La unica forma es copiar los datos
manualmente con Control C, y luego pegarlos con el codigo.

Yo generalmente importo los datos desde las tablas web, pero en este caso no
se puede.

Al menos yo no se hacerlo. Puedes intentarlo tu y me comentas? Entra en esa
pagina y por por ejemplo Deporte Futbol fecha: 01 de Junio de 2009 y fin 09
de Junio 2009 y me comentas como hacerlo

Gracias Hector, como siempre, tu ayuda indispensable para seguir
aprendiendo-


"Héctor Miguel" escribió en el mensaje de
noticias news:%
hola (...), ????? (si... ya se que eres Jose Angel, pero... ???)

No me dice cual es el error ni me marca linea donde esta el mismo.
Simplemente me sale un aviso 1004 creo que es en tiempo de ejecucion.
Te digo, los datos los copio de una pagina web
http://www.federacioncantabradefutb...index.php.
Ahi pongo la fecha de una semana en futbol y copio los datos manualmente
es decir, selecciono desde el dia hasta la hora de ultimo partido.



prueba mejor haciendo una exportacion de los datos desde la pagina web en
directo al excel
(puedes indicar cual de las tablas -si hay varias- es la que se mandara a
una hoja/libro de excel)
en lugar de hacer el copy (desde la pagina web) e iniciar una macro
haciendo un "paste" (que no puede definir su origen)

La idea es buscar los partidos de mi club, y despues arreglarlos para
quedar como dice el codigo
que me funciona perfecto, pero me sale ese error la primera vez que le
doy.



prueba con el punto anterior, corres la macro desde esa hoja
(pero elimina de la macro la insercion de una hoja nueva y la instruccion
del "pastespecial")

saludos,
hector.

Respuesta Responder a este mensaje
#5 Héctor Miguel
03/06/2009 - 18:43 | Informe spam
hola, !

Me encantaria hacerlo, pero no se puede.
La unica forma es copiar los datos manualmente con Control C, y luego pegarlos con el codigo.
Yo generalmente importo los datos desde las tablas web, pero en este caso no se puede.
Al menos yo no se hacerlo. Puedes intentarlo tu y me comentas?
Entra en esa pagina y por por ejemplo Deporte Futbol
fecha: 01 de Junio de 2009 y fin 09 de Junio 2009 y me comentas como hacerlo ...



despues de hacer el ctrl + C (en los datos que necesitas desde la pagina web)...
prueba con una macro "en dos pasos" +/- como sigue:

Sub Paso_uno()
'Crear una hoja antes de la Hoja de Toma de datos
Sheets.Add Before:=Sheets(Sheets.Count)
'Ensanchar las columnas a,b,c
Range("a:c").ColumnWidth = 45
'Pegar los datos de la web Federacion Cantabra de Futbol en las hojas
Application.SendKeys "^v"
'Continuar con la preparacion de los datos
Application.OnTime Now, "paso_dos"
End Sub

Private Sub Paso_dos()
'Quitar filas que ponga encuentro
With Range("e1:e" & Range("b20000").End(xlUp).Row)
.Formula = "=if(a1=""encuentro"",na(),1)"
.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete
.Clear
End With
'Quitar las filas que ponga Jornada y copiarlas en una columna A de nueva creacion
Columns(1).Insert
End Sub

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida