Página 1 de 1

Ayuda Macros VBA Excel 2007

Publicado: Lun Ene 19, 2009 12:15 pm
por Tangosuite
Estimados Amigos:

Tengo el siguiente problemita con la programación en VBA Excel 2007, resulta compré un libro muy práctico con ejemplos en el que no se explican demasiadas cosas sino todo aprendizaje es a base de ejemplos.

Se me ocurrió crear esta macro para probar algo:

Sub Prueba()

Dim Hoja As String

Hoja = InputBox("¿En que hoja desea pegar los valores?", "PRUEBA", "Hoja3")

Worksheets(Hoja).Activate
With ActiveSheet
.Range(Cells(34, 3), Cells(40, 9)).Value = Hoja
End With

End Sub

Este macro está escrito en la "Hoja2" y cuando intento pegar los valores en la Hoja3 (valor por defecto en el inputbox) me da un error o algo así con un número 400 y una cruz roja y según parece es porque identifico el rango con el objeto "Cells". En cambio, si pego los valores en la "Hoja2" (usando el objeto "Cells") el programa funciona.

Digo esto además porque si escribo la macro así:

Sub Prueba()

Dim Hoja As String

Hoja = InputBox("¿En que hoja desea pegar los valores?", "PRUEBA", "Hoja3")

Worksheets(Hoja).Activate
With ActiveSheet
.Range("A9:C30").Value = Hoja
End With

End Sub

el programa funciona correctamente.

Alguien sabe porque ocurre esto o le pasó alguna vez?
Cómo puedo solucionar este tema de no poder usar otra hoja para egar valores usando el objeto "cells" para definir un rango?
Estoy usando alguna sentencia incorrecta?

Muchas gracias desde ya amigos!

Re: Ayuda Macros VBA Excel 2007

Publicado: Mar Ene 20, 2009 9:22 am
por ReneM
Hola, prueba con:

Código: Seleccionar todo

Sub Prueba()

Dim Hoja As String

Hoja = InputBox("¿En que hoja desea pegar los valores?", "PRUEBA", "Hoja3")

Worksheets(Hoja).Activate

MsgBox ActiveSheet.Name

With ActiveSheet
.Range(.Cells(34, 3), .Cells(40, 9)).Value = Hoja
End With

End Sub

Re: Ayuda Macros VBA Excel 2007

Publicado: Mié Ene 21, 2009 11:09 am
por Tangosuite
Muchas Gracias Rene!!!

Ahora si funciona pero la verdad es que no entiendo por qué, lo único que hicimos fue agregar "MsgBox ActiveSheet.Name" y con eso si funciona.

Tenés alguna idea de porqué ocurre esto?

Gracias!!!

Re: Ayuda Macros VBA Excel 2007

Publicado: Mié Ene 21, 2009 11:12 am
por Tangosuite
Hola René, yo de nuevo...

Sabés una cosa? resulta que probé escribir el mismo macro inicial en vez de en cada hoja, en la "hoja" que dice "ThisWorkook" y anduvo sin problemas.

Otro misterio para mí, todavía no consigo un libro completo de VBA Excel.´

Gracias!

Re: Ayuda Macros VBA Excel 2007

Publicado: Mié Ene 21, 2009 2:57 pm
por ReneM
Hola, disculpa, el código:

Código: Seleccionar todo

MsgBox ActiveSheet.Name
no influye en nada, sólo se me quedó mientras hacía una prueba, lo que realmente solucionó el mensaje fueron los puntos antes de Cells, esto equivale a incorporar la hoja activa debido a que usaste el comando:

Código: Seleccionar todo

With ActiveSheet
En cuanto a lo segundo, te recomiendo que las macros las escribas en Módulos, esto es lo que efectivamente ocurre cuando seleccionas ThisWorkbook al momento de crearla.

Re: Ayuda Macros VBA Excel 2007

Publicado: Mié Ene 28, 2009 5:39 am
por Tangosuite
Muchas Gracias Rene!!! No sabía que incluyendo los puntos antes del comando Cells ocurría eso. De todas formas ahora siempre escribo los macros en "This WorkBook"

Muchas gracias!

Re: Ayuda Macros VBA Excel 2007

Publicado: Lun Abr 11, 2011 2:35 pm
por Stackado
Hola,

Que tal soy nuevo en esto del VBA para excel y necesito aprender rapidamente acerca de como migrar automaticamente desde excel informacion de una BD en el formato DBF del Foxpro desde un boton para que solo extraiga ciertos campos.

Quisiera saber si es posible que me proporciona la direccion del libro que mencionas en el primer post

Re: Ayuda Macros VBA Excel 2007

Publicado: Jue Ene 05, 2012 11:10 am
por jardeyfrancis
Hola a todos
Bueno, soy nuevo en el empleo de esta página y espero aportar con un libro de guia
Saludos...