Excel - macro para mostrar filas no funciona

   
Vista:

macro para mostrar filas no funciona

Publicado por Jose eutusivoi@yahoo.es (18 intervenciones) el 06/11/2017 10:24:28
Hola a todos,
Resulta que mirando en el foro no soy capaz de finalizar mi macro.
Lo que intento es lo siguiente:
Tengo una formula que se aplica en las celdas desde A5 hasta A12, una vez que introduzco los datos en las celdas A2 y B2.
Lo que pretendo lograr es que las filas desde 5 hasta 12 sean ocultas si no hay datos en la celdas A2 y B2.
En cuanto introduzco los datos en las celdas A2 y B2 quiero que i me muestre aquellas filas que devuelven las fechas en las celdasdesde A5 hasta A12.
Adjunto el documento para ver que he intentado.
Gracias de antemano.
Saludos,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 06/11/2017 12:50:59
Si he entendido bien tu problema copia esta macro en la hoja donde tienes las tuyas y se ejecutada de forma automática.

1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$2" Or Target.Address = "$B$2" Then
       If Range("A2") = Empty Or Range("B2") = Empty Then
          Rows("5:12").Select: Selection.EntireRow.Hidden = False  ' --- Mostrar si A2 o B2 están vacías
       Else
          Rows("5:12").Select: Selection.EntireRow.Hidden = True   ' --- Ocultar
       End If
       Range(Target.Address).Select
    End If
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 06/11/2017 13:36:27
Hola Sr. Antoni Masana,
Tengo un problema. En cuanto pego la macro me pide nombre de la macro.
He llegado hacer algo asi pero no me va.
Pego lo que he hecho:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Hide()
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Target.Address = "$A$2" Or Target.Address = "$B$2" Then
 
       If Range("A2") = Empty Or Range("B2") = Empty Then
 
          Rows("5:12").Select: Selection.EntireRow.Hidden = False  ' --- Mostrar si A2 o B2 están vacías
 
       Else
 
          Rows("5:12").Select: Selection.EntireRow.Hidden = True   ' --- Ocultar
 
       End If
 
       Range(Target.Address).Select
 
    End If

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 06/11/2017 16:24:07
Te has hecho un lío copiando la macro.

Mira la hoja1 la primera macro se ejecuta de forma AUTOMÁTICA cuando haces cambios en cualquier celda pero tiene su efectividad solo parta las celdas A2 y B2 por el primer IF.

Las formulas no provocan la ejecución de la macro.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 06/11/2017 19:18:05
Hola Sr. Antoni Masana,

Gracias por su paciencia y su tiempo. Perdone mi falta de conocimientos.
He descargado el archivo y es al reves de lo que pretendía.
De hecho las filas 5 y 12 deberían de ser ocultas desde principio siempre y cuando las celdas "A2" y "B2" estén vacías y ser visibles solo las filas que devuelven las fechas en cuanto introduzco los datos en las celdas "A2" y "B2".
Si se borra los datos en las celdas especificadas "A2" y "B2" todas las filas de 5 a 12 deben de ser ocultas .
Iré jugando para ver si pillo la rectificación. Sera de gran ayuda su colaboración (tardare menos).
Saludos,
Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 07/11/2017 06:16:46
Para invertir el criterio solo debes intercambiar las líneas 4 y 6

1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$2" Or Target.Address = "$B$2" Then
       If Range("A2") = Empty Or Range("B2") = Empty Then
          Rows("5:12").Select: Selection.EntireRow.Hidden = False  ' --- Mostrar si A2 o B2 están vacías
       Else
          Rows("5:12").Select: Selection.EntireRow.Hidden = True   ' --- Ocultar
       End If
       Range(Target.Address).Select
    End If
End Sub

Resultado Final

1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$2" Or Target.Address = "$B$2" Then
       If Range("A2") = Empty Or Range("B2") = Empty Then
          Rows("5:12").Select: Selection.EntireRow.Hidden = True   ' --- Ocultar
       Else
          Rows("5:12").Select: Selection.EntireRow.Hidden = False  ' --- Mostrar si A2 o B2 están vacías
       End If
       Range(Target.Address).Select
    End If
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 07/11/2017 08:37:48
Vamos bien, FUNCIONAAA (pues yo iba por otro camino con mis intentos de arreglarlo...con la explicacion suya he aprendido algo más).
Falta el retoque final.
Al rellenar las celdas"A2" y "B2" me enseña totas las filas desde la 5 hasta la 12 .
Estas filas, la 5 hasta 12, llevan una formula en las celdas "A5" hasta "A12" "en total 8 filas.
Si la celda "B2" indica la cifra"1" la macro deberia de mostrar solo la fila 5 y las otras no. Al igual si pongo 4 dias me muestre solo las filas 5,6,7 y 8 las otras 4 filas deberian de quedar ocultas.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 07/11/2017 09:23:10
Buenos dias Sr. Antoni Masana,
Toda su ayuda se va a reflejar en el siguiente documento que he desarollado.
Adjunto la ficha ORIGINAL que funciona muy bien y la COPIA a donde he pegado la macro que me ha facilitado.
Lo que ocure es que he colocado la macro que me ha ayudado a desarollar dentro de la plantilla y algo he hecho mal.
La macro inicial me desarollo 3 macros y no se si se puede hacer de que sea una sola macro que ejecute todos los requisitos en una sola accion en cuando aprieto el boton "GUARDAR EN PDF".
Gracias de antemano.
Un saludo,
Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 07/11/2017 11:08:46
Esta tarde me miro los cambios.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 07/11/2017 11:07:50
Es respuesta a la opción de ocultación en función del valor de B2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$2" Or Target.Address = "$B$2" Then
       If Range("A2") = Empty Or Range("B2") = Empty Then
          Rows("5:12").Select: Selection.EntireRow.Hidden = True   ' --- Ocultar
       Else
          Rows("5:12").Select: Selection.EntireRow.Hidden = False  ' --- Mostrar
 
          If Range("B2") > 0 And Range("B2") < 8 Then
             Rows(Range("B2") + 5 & ":12").Select
             Selection.EntireRow.Hidden = True  ' --- Ocultar
          End IF
       End If
       Range(Target.Address).Select
    End If
End Sub

Cuando B2 tome los valores 1, 2, 3, 4, 5 y 6 mostrara las filas 5, 6, 7, 8, 9, 10 y 11 respectivamente cualquier otro valor mostrada todo

Para el valor 1 mostrara la fila 5
Para el valor 2 mostrara la fila 5 - 6
Para el valor 3 mostrara la fila 5 - 6 - 7
Para el valor 4 mostrara la fila 5 - 6 - 7 - 8
Para el valor 5 mostrara la fila 5 - 6 - 7 - 8 - 9
Para el valor 6 mostrara la fila 5 - 6 - 7 - 8 - 9 - 10
Para el valor 7 mostrara la fila 5 - 6 - 7 - 8 - 9 - 10 - 11
Para el valor 8 mostrara la fila 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12

Para cualquier otro valor las mostrara todas.

Si deseas que para cualquier otro valor las oculte todas hay un pequeño cambio en las líneas 6 , 8 y 9:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$2" Or Target.Address = "$B$2" Then
       If Range("A2") = Empty Or Range("B2") = Empty Then
          Rows("5:12").Select: Selection.EntireRow.Hidden = True   ' --- Ocultar
       Else
          Rows("5:12").Select: Selection.EntireRow.Hidden = True  ' --- Ocultar
 
          If Range("B2") > 0 And Range("B2") < 9 Then
             Rows("5:" & Range("B2") + 4).Select
             Selection.EntireRow.Hidden = False  ' --- Mostrar
          End If
       End If
       Range(Target.Address).Select
    End If
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 07/11/2017 11:34:28
Lo ha clavado.
Muchisimas gracias.
Un ultimo detalle...le he adjuntado anteriormente un documento "ORIGINAL - RSVA 1 hab - NEW 2017 dias exactos".
¿Cual sera la manera de añadir esta funcion de la macro que me acaba de solucionar, a la existente para que se ejecute sola en cuanto aprieto el boton "GUARDAR EN PDF"?
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 07/11/2017 12:04:38
Por la tarde le doy un vistazo. En este momento no puedo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 07/11/2017 16:09:20
He revisado los dos ficheros que has enviado en en los dos solo hay una macro y en el segundo falta la ultima línea de la macro ( End Sub ).

He incluido la ultima de las macros que he puesto en la hoja 1 y he realizado algunos cambios para ajustarla a la hoja:

Celda A2 por E14 -- Número de personas
Celda B2 por C14 -- Número de días

Lineas a ocultar / Mostrar 5-12 por 23-30

He ampliado la columna B para que el texto de las celdas B5 y B10 se vea bien y he ajustado la escala de impresión, estaba al 100% y la he bajado al 98% para que entre bien en la hoja, ahora solo imprime 2 hojas

En la Celda E37 el texto no se ve completo en la impresión.

Y los textos:

Mascota
Ramo de flores
Botella de cava

Se ven cortados y creo yo deberían estar en la segunda hoja

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 08/11/2017 09:27:06
Buenos dias Sr. Antoni Masana,
No sabe cuando agradezco y respeto su panciencia y la ayuda que me proporciona.
Gracias de nuevo por todo.
Todo funciona muy bien. He hecho yo tambien unas cuantos ajustes junto a los suyos.
Tal como lo ha visto, el documento es una plantilla y esta destinado para usarse una y otra vez funcion de las necesidades.
Ahora bien, el problema que encuentro es la siguiente:
Tengo la hoja protegida y tengo desbloqeadas aquellas celdas que se utilizaran para introducir los nuevos datos. He marcado las casillas a las que hago referencia en amarillo para que las pueda identificar de forma facil.
Al solicitar guardar el documento en PDF la macro me borra aquellos datos, pero me da un error: "Run-time error '1004': Unable to set the Hidden property of the Range class" supongo que hace referencia a las filas 23 a 30.
Por el otro lado las celdas:C5; C10; H14; D17 y D31 que ahora son sueltas, quiero que sean celdas combinadas (por el tamaño del texto) pero si los hago me dan un error al ejecutar la macro "Run-time error '1004': Cannot change part of merged cell".
¿Se puede solucionar estos errores?
Le adjunto el documento (la protecion no lleva codigo)
Muchas gracias,
Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 08/11/2017 10:12:26
Primer error al crear el PDF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$14" Or Target.Address = "$C$14" Then
       ActiveSheet.Unprotect
       If Range("B14") = Empty Or Range("C14") = Empty Then
          Rows("23:30").Select: Selection.EntireRow.Hidden = True   ' --- Ocultar
       Else
          Rows("23:30").Select: Selection.EntireRow.Hidden = True  ' --- Ocultar
 
          If Range("C14") > 0 And Range("C14") < 9 Then
             Rows("23:" & Range("C14") + 22).Select
             Selection.EntireRow.Hidden = False  ' --- Mostrar
          End If
       End If
       Range(Target.Address).Select
       ActiveSheet.Protect DrawingObjects:=True, _
                           Contents:=True, _
                           Scenarios:=True
    End If
End Sub

Esto Desprotege y protege respectivamente la hoja al hacer los cambios.

En esta macro también da error

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub Macro1()
'    ChDir "C:\Users\JOSE-X\Desktop"
 
    FN = ActiveSheet.Range("B80").Value
 
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                    Filename:=FN, _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=True
    Range("C5:H5").ClearContents
    Range("C10:D10").ClearContents
    Range("B14").ClearContents
    Range("C14").ClearContents
    Range("E14").ClearContents
    Range("F14").ClearContents
    Range("G14").ClearContents
    Range("H14:I14").ClearContents
    Range("D17:F14").ClearContents
    Range("I23").ClearContents
    Range("I24").ClearContents
    Range("I25").ClearContents
    Range("I26").ClearContents
    Range("I27").ClearContents
    Range("I28").ClearContents
    Range("I29").ClearContents
    Range("I30").ClearContents
    Range("D31:E31").ClearContents
    Range("E39").ClearContents
    Range("G31").ClearContents
End Sub

Al combinar celdas lo hacías con celdas protegidas o no marcabas el rango al limpiar.

Esta línea se me resiste un poco

Range("D17:F14").ClearContents

Y tengo otro problema que no se como has solucionado, al bloquear la hoja me bloquea el botón "GUARDAR EN PDF"

Bueno con esto ya te soluciono unos cuantos problemas.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 08/11/2017 13:07:24
Ya lo veo que de una cosa se alargo la cosa hasta casi sin fin.
Echare un vistazo a las cosas que me comento e ire probando.
En cuanto logro algo le mantendre informado.
Un saludo y hasta pronto.
Gracias Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 08/11/2017 14:26:19
Bueno, acabo de hacer las pruebas...creo que va bien.
Mientras me mira usted un ultimo detalle, ire haciendo más pruebas.
He aplicado el Screenupdate por el tema del parpadeo (cuando aplica la vista de la filas escondidas) y va bien.
¿Se puede poner pasword a la proteccion para que no lo habra alguien por accidente y estropee las formulas?
He perdido algo de tiempo con el cargo extra, van todos excepto el cargo "Botella de cava" he revisado las formulas y estan bien pero no me coje el precio no entiendo porque.
Sobre el bloqueo de la pestaña "GUARDAR EN PDF" va bien, no se bloquea.
En la Range("D17:F14").ClearContents habia un error que lo he corregido y va muy bien.
Adjunto el archivo para su repaso y visto bueno.
Mientras tanto muchas gracias y le deseo una buena tarde.
Saludos,
Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 08/11/2017 19:51:38
Buenas tardes,
El problema de los cargos extras esta resuelto....tenia mal aplicada la formula de VLOOKUP.
El problema de PROTECCION me vuelve un poco loco, pero sigo probando hasta que me pueda hechar un cable.
Gracias de todas las formas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 09/11/2017 10:47:51
Un par de cosas:

Deberías desplazar las celdas G31 la columna H31 para que se pueda ver bien la celda F31 (ver mi ejemplo)

Accion: Desplazo G31 a H31 reviso permisos. Combino F31 y G31 y alineo a la derecha:

Para poner una contraseña en la macro a la hora de proteger es asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    If Target.Address = "$B$14" Or Target.Address = "$C$14" Then
 
       ActiveSheet.Unprotect "Piolino"
 
       If Range("B14") = Empty Or Range("C14") = Empty Then
          Rows("23:30").Select: Selection.EntireRow.Hidden = True   ' --- Ocultar
       Else
 
          Rows("23:30").Select: Selection.EntireRow.Hidden = True  ' --- Ocultar
          If Range("C14") > 0 And Range("C14") < 9 Then
             Rows("23:" & Range("C14") + 22).Select
             Selection.EntireRow.Hidden = False  ' --- Mostrar
          End If
       End If
       Range(Target.Address).Select
 
       ActiveSheet.Protect "Piolino", _
                           DrawingObjects:=False, _
                           Contents:=True, _
                           Scenarios:=True
    End If
    Application.ScreenUpdating = True
End Sub

La contraseña es: Piolino

Ya he descubierto porque bloqueaba el objeto (ver DrawingObjects a la hora de proteger tiene que estar a False)

Saludos.
\\//_
||*||
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 10/11/2017 10:11:24
Buenos dias Sr. Antoni Masana,
Ya he revisado la ficha, he retocado los detalles (la formula de los SUPLEMENTOS) y va todo muy bien.
Una cosa queria comentarle.
He mirado los detalles y el clear content funciona muy bien....lo que he visto es que la imagen de la habitación se queda colgada con la ultima opcion de la celda D17....utilizando la formula IFERROR en la bara de formulas para que no me enseñe nada si no hay datos en la celda D17 no se puede.
¿Cual seria la formula o la manera para que la foto se vea solo cuando en la celda D17 haya datos?
Muchas gracias por todo.
Saludos,
Adjunto la ficha que excepto el tema de la imagen quedar por resuelto.
Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 15/11/2017 08:57:25
Buenos dias Sr. Antoni,

Perdoname por ser tan pesao e insistente.
La verdad es que estoy muy lejos de entender muy bien el tema de los macros. Lo que se hasta ahora es gracias a su ayuda.
He perdido tiempo intentando mirar el tema del desplazamiento entre las celdas activas con la tecla "ENTER" ,desde la celda "C5" hasta la ultima (he logrado aldo) pero no me sale al 100%, (con el tabulador si que se desplaza en orden)
Para llamar a ejecutarse la dicha funccion he creado un nuevo modulo "CELDAS" para introducirla. Espero que me diga si para añadir una funccion en la misma macro para que funccione hay que crear un nuevo modulo....los videos y las consultas de como se hace, no me resulta muy claro.
La funccion que he encontrado es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Function SelectUnlockedCells()
 
Dim WorkRng As Range
Dim OutRng As Range
Dim Rng As Range
On Error Resume Next
Set WorkRng = Application.ActiveSheet.UsedRange
Application.ScreenUpdating = False
For Each Rng In WorkRng
    If Rng.Locked = False Then
        If OutRng.Count = "" Then
            Set OutRng = Rng
        Else
            Set OutRng = Union(OutRng, Rng)
        End If
    End If
Next
If OutRng.Count > 0 Then OutRng.Select
Application.ScreenUpdating = True
End Function

Gracias.

De hecho he hecho la prueba en un nuevo documento y va de fabula, pero al añadirlo en la macro que necesito no va.

Adjunto los documentos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 15/11/2017 18:57:29
Buenas Jose,

No entiendo cual es el problema y que es lo que no funciona.

El código que has adjuntado esta mal.

Primero no es una macro.

Una macro es un procedimiento que empieza por Sub y el nombre de la macro y termina por End Sub.
El Sub puede ir precedida de la palabra Public o Private que indica si el código es visible por el de otro modulo

Es una Función y esta mal

Una función es un procedimiento pero devuelve un valor, empieza por Function y el nombre de la función y termina por End Function.
El Sub puede ir precedida de la palabra Public o Private que indica si el código es visible por el de otro modulo
Una funcion es llamada desde otro procedimiento

Un ejemplo

1
2
3
4
5
6
7
Sub Macro1()
    MsgBox Suma(2, 3)
End Sub
 
Function Suma(a, b)
    Suma=a+b
End Function

Esto: Function SelectUnlockedCells() no es un función, ademas en alguna parte del código debería de haber SelectUnlockedCells = ? Donde los interrogantes es el valor devuelto.

Ademas lo que he descubierto es que recorre el rango B3:R138 y no se que hace, el código union().

Por otro lado la función puede estar en el mismo modulo1 e incluso el código del Modulo1 y el Celdas pueden estar en la misma Hoja1

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 15/11/2017 21:07:43
Gracias por la explicacion.
En realidad no se si hay un problema. Le explico:
Tecleando con el tabulador, el desplazamiento sobre LAS CELDAS A RELLENAR se hace en orden desde arriba a abajo y de la izquierda a derecha, empezando con la celda "C5:H5" hasta la ultima celda NO PROTEGIDA en orden.
Pues lo que pretendo es que se haga esto con la tecla "ENTER".

No pretenedo que me haga usted todo el trabajo.
Necesito solo un impulso sobre el camino a seguir, e ire practicando.
Lo que no me queda claro es donde hay que poner "el procedimiento" o cualquier otro en la macro que ya tengo.
Para lograr esto, debo de utilizar un procedimiento como este?

1
2
3
4
5
6
7
Private Sub SelectUnlockedCells()
 
ActiveCell.Offset(1, 1).Select
Range("A1").Select
ActiveCell.Offset(1, 2).Select
 
End Sub

¿Me puede decir si voy por buen camino?
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

macro para mostrar filas no funciona

Publicado por Antoni Masana (692 intervenciones) el 15/11/2017 21:50:24
Yo lo he probado y funciona igual con el Tabulador o Enter o Flecha Derecha y para ir hacia atrás el Shift + Tabulador o el Shift + Enter o Flecha Izquierda.

Es mas en las filas de la 23 a la 30 las que están ocultas las ignora al saltar.

No se que pretendes hacer con esta macro en la Celda A1 pero esta Macro copiada en ThisWorkbook pondra el cursor en la primera celda de edición al abrir el libro

1
2
3
Private Sub Workbook_Open()
    Sheets("Hoja1").Range("C5").Activate
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

macro para mostrar filas no funciona

Publicado por Jose (18 intervenciones) el 16/11/2017 08:48:47
Bueno ,

Cuando aprieto la tecla del "TABULADOR" el despazamiento del cursor entre las celdas es correcto, tal como lo indico en la "Private Sub" de bajo.
Empieza con el nombre y se desplaza en orden, de celda en celda para introducir los datos necesarios y vuelve a "C5"
En cambio con la tecla "ENTER" el cursor se situa en el "nombre" va a la "nº rsva" y me salta al "TIPO DE HABITACION" en vez de ir a la celda "Fecha de entrada" y seguir el proceso de las celdas marcadas en la "Private Sub".
He probado esto en el modulo "CELDAS":
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Workbook_Open()
 
    Sheets("Hoja1").Range("C5").Activate
    Sheets("hoja1").Range("c10:d10").Activate
    Sheets("hoja1").Range("b14").Activate
    Sheets("hoja1").Range("c14").Activate
    Sheets("hoja1").Range("e14").Activate
    Sheets("hoja1").Range("f14").Activate
    Sheets("hoja1").Range("g14").Activate
    Sheets("hoja1").Range("h14:i14").Activate
    Sheets("hoja1").Range("d17:f17").Activate
    Sheets("hoja1").Range("i23").Activate
    Sheets("hoja1").Range("i24").Activate
    Sheets("hoja1").Range("i25").Activate
    Sheets("hoja1").Range("i26").Activate
    Sheets("hoja1").Range("i27").Activate
    Sheets("hoja1").Range("i29").Activate
    Sheets("hoja1").Range("i30").Activate
    Sheets("hoja1").Range("d31:e31").Activate
    Sheets("hoja1").Range("g31").Activate
    Sheets("hoja1").Range("d39:i39").Activate
    Sheets("hoja1").Range("b55:d55").Activate
 
End Sub

Espero que me expresado bien para que me entienda.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad