Como comprobar desde codigo si una hoja existe sabiendo su nombre.

23/02/2009 - 19:49 por Pedro F. Pardo | Informe spam
Hola

Tengo dos libros con 110 hojas cada uno.

1111 Š 2222 Š 3333 Š ... Š zzzz

tengo que leer algo de la hoja 1111 del primer libro y pegarlo en la
hoja 1111 del segundo libro.

Si ambos libros tienen los nombres de las hojas identicos, todo irá
bien. Me aseguraron que así sería, pero ya sabemos que las cosas nunca
son como se suponen que deberían ser :-) me he encontrado con que en
el primer libro hay hojas que no están en el segundo libro. Por
supuesto cuando intento hacer referencia a ella sheets("xxxx").select
me da error.

En caso de que la hoja xxxx no esté en el primer libro lo único que
pretendo es que se ignore la operación, pero ?cómo puedo comprobar si
en el segundo libro existe la hoja xxxx sin que me de error?

He pensado en hacer un bucle

for n=1 to sheets.count
y aquí comprobar si existe el nombre antes de hacer nada
next

pero me parece demasiado complicado son 110x110 comprobaciones cada
vez :-(
no hay una forma más sencilla?


Muchas gracias.
 

Leer las respuestas

#1 Pedro F. Pardo
24/02/2009 - 11:53 | Informe spam
On Feb 23, 10:20 pm, "Héctor Miguel"
wrote:
hola, Pedro !

> Tengo dos libros con 110 hojas cada uno...
> ... me he encontrado con que en el primer libro hay hojas que no estan en el segundo libro...
> ... lo unico que pretendo es que se ignore la operacion
> ... como puedo comprobar si en el segundo libro existe la hoja xxxx sin que me de error?
> He pensado en hacer un bucle
> for n=1 to sheets.count
>  y aqui comprobar si existe el nombre antes de hacer nada
> next
> pero me parece demasiado complicado son 110x110 comprobaciones cada vez :-(
> no hay una forma mas sencilla?

prueba con algo +/- como lo siguiente:

  dim n, xhoja as string
  xhoja = "hoja1"
  on error resume next
  n = workbooks("libro2").worksheets(xhoja).type
  on error goto 0
  if n then
    msgbox "la hoja " & xhoja & " ha sido encontrada." & vbcr & "continuando con el proceso ..."
  else
    msgbox "no existe la hoja " & xhoja, , "error !!!"
  end if

saludos,
hector.




Muchas gracias! Eso era lo que buscaba ;-)

Preguntas similares