Excel - Modificar el comportamiento VBA de alineación en función de la columna

 
Vista:
sin imagen de perfil
Val: 179
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Modificar el comportamiento VBA de alineación en función de la columna

Publicado por Quico (106 intervenciones) el 01/12/2020 14:05:53
Tengo una macro me sirve para combinar varia celdas (With Selection) y a la que le indico que su contenido se alinee en el centro (.HorizontalAlignment = xlCenter /.VerticalAlignment = xlCenter)


1
2
3
4
5
6
7
8
9
10
11
12
13
'Combinar celdas seleccionadas
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge

El problema es que necesitaría que esa alineación fuera a la izquierda siempre que la selección (With SElection) sea en la columna D.

Es decir, que si combinamos celdas ubicadas en la columna D, tenga una excepción y alinee a la izquierda: .HorizontalAlignment = xlLeft dentro de la misma macro.

¿Alguien sabría que debo añadir a la macro que he pegado?
Gracias
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
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Modificar el comportamiento VBA de alineación en función de la columna

Publicado por Antoni Masana (2479 intervenciones) el 02/12/2020 15:16:36
A falta de mas información

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'Combinar celdas seleccionadas
With Selection
    If .Column = 4 Then      ' --- La columna D es la 4
        .HorizontalAlignment = xlLeft
    Else
        .HorizontalAlignment = xlCenter
    End If
    .VerticalAlignment = xlCenter
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
End With
Selection.Merge

Otra forma de hacer lo mismo

1
2
3
4
5
6
7
8
9
10
11
12
13
'Combinar celdas seleccionadas
With Selection
    .HorizontalAlignment = Iif(.Column = 4, xlLeft, xlCenter)
    .VerticalAlignment = xlCenter
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
End With
Selection.Merge

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
sin imagen de perfil
Val: 179
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Modificar el comportamiento VBA de alineación en función de la columna

Publicado por Quico (106 intervenciones) el 02/12/2020 22:59:06
Muchas gracias. Miraré de probarla mañana o eso y te digo.
Pensaba que había expuesto bien lo que necesitaba :-(

En resumen:
1. la macro actual combina las celdas que yo seleccione, y entonces el texto interior (Números) se centran dentro de las celdas combinadas.
2.Pero necesito una excepción para cuando las combinaciones se den en la columna D.
Ya que ahí necesito que el centrado horizontal se alineen a la izquierda.
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
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Modificar el comportamiento VBA de alineación en función de la columna

Publicado por Antoni Masana (2479 intervenciones) el 02/12/2020 23:19:26
Si no te funciona o no sale lo que quieres sube un ejemplo.

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