ComboBox1

07/05/2007 - 13:35 por AgerGaston | Informe spam
Hola a todos.
Tengo la siguiente macro:

Public Sub ComboBox1_Change()
Range("a1").Select
Sheets("loca").Visible = True
Sheets("loca").Select
Range("d7:u40").Select
Selection.Columns.AutoFit
Range("A1").Select
End Sub

Pero me da error en la linea Range("d7:u40").Select

Saben porque puede ser ??

Gracias y saludos

Preguntas similare

Leer las respuestas

#1 Ivan
07/05/2007 - 13:48 | Informe spam
hola Ager

prueba a cambiar todo esto ->

Sheets("loca").Select
Range("d7:u40").Select
Selection.Columns.AutoFit



por esto

Sheets("loca").Range("d7:u40")..Columns.AutoFit

no lo he probado, pero creo que valdria

un saludo
Ivan
Respuesta Responder a este mensaje
#2 Ivan
07/05/2007 - 13:52 | Informe spam
On 7 mayo, 13:48, "Ivan" wrote:
hola Ager

prueba a cambiar todo esto ->

> Sheets("loca").Select
> Range("d7:u40").Select
> Selection.Columns.AutoFit

por esto

Sheets("loca").Range("d7:u40")..Columns.AutoFit

no lo he probado, pero creo que valdria

un saludo
Ivan




perdon, se me ha colado un punto de mas

cambialo por esto

Sheets("loca").Range("d7:u40").Columns.AutoFit
Respuesta Responder a este mensaje
#3 AgerGaston
07/05/2007 - 18:33 | Informe spam
Hola Ivan, gracias por responder.

Funciono OK y quedo asi.

Public Sub ComboBox1_Change()

Range("a1").Select
Sheets("loca").Visible = True
Sheets("loca").Select
Sheets("loca").Range("d7:u40").Columns.AutoFit
End Sub

Gracias y saludos

"Ivan" escribió:

On 7 mayo, 13:48, "Ivan" wrote:
> hola Ager
>
> prueba a cambiar todo esto ->
>
> > Sheets("loca").Select
> > Range("d7:u40").Select
> > Selection.Columns.AutoFit
>
> por esto
>
> Sheets("loca").Range("d7:u40")..Columns.AutoFit
>
> no lo he probado, pero creo que valdria
>
> un saludo
> Ivan


perdon, se me ha colado un punto de mas

cambialo por esto

Sheets("loca").Range("d7:u40").Columns.AutoFit


Respuesta Responder a este mensaje
#4 Ivan
07/05/2007 - 19:05 | Informe spam
hola de nuevo, Ager

me alegro que te haya valido, pero te comento por si te interesa:

por un lado, y aqui no me hagas excesivo caso, mejor compruebalo por si
acaso, el motivo de que te diera el error si no me equivoco es que no habias
activado la hoja "Loca" explicitamente (Sheets("Loca").Activate) antes de
intentar seleccionar el rango. Como te digo, no te fies demasiado, pero creo
que va pr ahi el tema.

por otro lado, salvo que quieras activar/seleccionar la hoja/rango por algun
otro motivo que por el que expones en tu codigo, normalmente no es necesario
andar seleccionando/activando las hojas/rangos para realizar (la mayoria de
las) acciones con ellos, como habras podido cmprobar en el fragmento
modificado

y por ultimo, y tampoco te fies al cien por cien (aunque juraria que no me
equivoco), tampoco hace falta mostrar la hoja para ajustar las columnas de
una hoja oculta:

Si quieres haz una prueba similar a esta para comprobarlo (tambien lo de
activar/seleccionar queda claro, si te fijas, solo haces referencia a la
hoja y el rango, pero no activas/seleccionas nada)

Con la hoja "Loca" visible ensancha/estrecha el rango corerespondiente, y
ejecuta esta macro

Sub Ocultar_Y_Ajustar_Hoja()
With Worksheets("Loca")
.Visible = False
.Range("d7:u40").Columns.AutoFit
MsgBox "Ajustado el rango d7:u40 con la hoja Loca oculta" & vbcr & _
"Al cerrar este mensaje volvera a mostrarse la hoja"
.Visible = True
End With
End Sub

bueno, espero te ayude en algo
un saludo
Ivan
Respuesta Responder a este mensaje
#5 AgerGaston
08/05/2007 - 14:35 | Informe spam
Hola Ivan:
Sigo con el mismo tema, pero esta vez no tengo errores de macros. Te explico:

Private Sub ListBox3_Click()
Range("a1").Select
Sheets("secc").Visible = True
Sheets("secc").Select
Sheets("secc").Range("d7").Select
Sheets("secc").Range("d7:ad40").Select
Sheets("secc").Columns.AutoFit
Sheets("secc").Range("d8").Select

End Sub
(como veras cambie el combox por el listbox, pero ese no es el problema).

Cuando la ejecuto y llega la sentencia
Sheets("secc").Range("d7:ad40").Select
Sheets("secc").Columns.AutoFit

El calculo/actualizacion de la hoja es tan lenta que sucede lo siguiente:
selecciona el rango ajusta las columnas y despues se actualiza con los datos
nuevos.

Pregunta:
Como hago para que primero se actualice la hoja y despues seleccione el
rango y ajuste las columnas ?

Gracias a todos


"Ivan" escribió:

hola de nuevo, Ager

me alegro que te haya valido, pero te comento por si te interesa:

por un lado, y aqui no me hagas excesivo caso, mejor compruebalo por si
acaso, el motivo de que te diera el error si no me equivoco es que no habias
activado la hoja "Loca" explicitamente (Sheets("Loca").Activate) antes de
intentar seleccionar el rango. Como te digo, no te fies demasiado, pero creo
que va pr ahi el tema.

por otro lado, salvo que quieras activar/seleccionar la hoja/rango por algun
otro motivo que por el que expones en tu codigo, normalmente no es necesario
andar seleccionando/activando las hojas/rangos para realizar (la mayoria de
las) acciones con ellos, como habras podido cmprobar en el fragmento
modificado

y por ultimo, y tampoco te fies al cien por cien (aunque juraria que no me
equivoco), tampoco hace falta mostrar la hoja para ajustar las columnas de
una hoja oculta:

Si quieres haz una prueba similar a esta para comprobarlo (tambien lo de
activar/seleccionar queda claro, si te fijas, solo haces referencia a la
hoja y el rango, pero no activas/seleccionas nada)

Con la hoja "Loca" visible ensancha/estrecha el rango corerespondiente, y
ejecuta esta macro

Sub Ocultar_Y_Ajustar_Hoja()
With Worksheets("Loca")
.Visible = False
.Range("d7:u40").Columns.AutoFit
MsgBox "Ajustado el rango d7:u40 con la hoja Loca oculta" & vbcr & _
"Al cerrar este mensaje volvera a mostrarse la hoja"
.Visible = True
End With
End Sub

bueno, espero te ayude en algo
un saludo
Ivan



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida