Como colocar un alto de fila especifico

Hola DAM

Tu en un ejemplo anterior me diste esta instrucción

h1.Range("D100:D116").Copy
h2.Range("A" & u).PasteSpecial Paste:=xlPasteValues, Transpose:=True
u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1

Para trasladar unos datos de la hoja 1 a la hoja 2

Funciona correctamente el código pero quisiera ahora un código que le especificara a esa fila en donde estoy colocando los datos, un alto de fila especifico. El Alto de fila por defecto que tiene excel es de 15 pero quisiera que despues de colocar los datos en esa fila, me aumentara el alto de fila a 30, 45, 60 etc.

Por ejemplo me podrias regalar la instrucción para 2 ejemplos, con un alto de fila de 30 y un alto de fila de 45 por ejemplo

Gracias

Espero tu respuesta

2 respuestas

Respuesta
1

Tendrías que poner esto para incrementar la fila destino a 30

h2.Rows(u).RowHeight = 30
h1.Range("D100:D116").Copy
h2.Range("A" & u).PasteSpecial Paste:=xlPasteValues, Transpose:=True
u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1

Pero no entendí cuándo quieres que aumente a 30 ó cuando quieres que aumente a 45.

Si solamente quieres probar con diferentes alturas, cambia el 30 por 45 o 60.

¡Gracias!

Excelente muchísimas gracias eso era lo que quería!

Hola DAM 

Que pena molestarte pero no me funcionó

Te voy a mandar nuevamente la MACRO

If grabar Then
h2.Rows(u).RowHeight = 30
h1.Range("D100:D116").Copy
h2.Range("A" & u).PasteSpecial Paste:=xlPasteValues, Transpose:=True
u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
With h2.Sort
.SortFields.Clear
.SortFields.Add Key:=h2.Range("B2:B" & u), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=h2.Range("C2:C" & u), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange h2.Range("A1:Q" & u)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
h1.Range("D8:D24").ClearContents
h1.Range("D6:D6").ClearContents
h1.Range("D6").Select
End If
MsgBox "FIN DE LA OPERACIÓN"
Sheets("AGENDA").Protect Password:="0976342842"

ActiveWorkbook.Save

End Sub

Puedes poner la macro completa.

Aqui te va.

Sub GrabarCita30()
'
' GrabarCita30 Macro
'

MCR30min
Sheets("AGENDA").Unprotect Password:="0976342842"

Dim fec As Date
'
Application.ScreenUpdating = False
Set h1 = Sheets("INGRESAR_CITA")
Set h2 = Sheets("AGENDA")
'
u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
fec = h1.[D22]
ho1 = h1.[D23]
ho2 = h1.[D24]
grabar = False
'
Set r = h2.Columns("B")
Set b = r.Find(fec)
If b Is Nothing Then
grabar = True
Else
grabar = True
ncell = b.Address
Do
f = b.Row
w1 = h2.Cells(b.Row, "C")
w2 = h2.Cells(b.Row, "D")
If ho1 >= h2.Cells(b.Row, "C") And ho2 <= h2.Cells(b.Row, "D") Then
res = MsgBox("Ya existe un paciente en ese horario" & vbCr & vbCr & _
"Presiona ''SI'' para registrar la nueva cita y borrar la anterior" & vbCr & _
"Presiona ''NO'' para mantener la anterior cita y grabar la nueva" & vbCr & _
"Presiona ''CANCELAR'' para no realizar ningún cambio", _
vbYesNoCancel, "REGISTRAR CITA")
'
Select Case res
Case vbYes
grabar = True
u = b.Row
Case vbNo
grabar = True
Case vbCancel
grabar = False
End Select
Exit Do
End If
Set b = r.FindNext(b)
Loop While Not b Is Nothing And b.Address <> ncell
End If
'
If grabar Then
h1.Range("D100:D116").Copy
h2.Range("A" & u).PasteSpecial Paste:=xlPasteValues, Transpose:=True
h2.Rows(u).RowHeight = h2.Rows(u).RowHeight * 2
u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
With h2.Sort
.SortFields.Clear
.SortFields.Add Key:=h2.Range("B2:B" & u), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=h2.Range("C2:C" & u), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange h2.Range("A1:Q" & u)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
h1.Range("D8:D24").ClearContents
h1.Range("D6:D6").ClearContents
h1.Range("D6").Select
End If
MsgBox "FIN DE LA OPERACIÓN"
Sheets("AGENDA").Protect Password:="0976342842"

ActiveWorkbook.Save

End Sub

Si funciona, te hace más alta la fila, pero lo que pasa es que después se ordenan los datos, por ejemplo, si la fila que se hizo más alta es la 25, pero después de ordenar los datos, que estaba en la fila 25 ahora quedó en la fila 16, la fila 16 queda con la misma altura, pero la fila 25 conserva la altura modificada, ¿me explico?

Si quieres más alta las filas te recomiendo que las hagas más altas en la hoja, ya que la macro si hace más alta la fila en donde pone los datos, pero luego los datos son ordenado, más no las filas.

Además le hiciste algunos cambios a la macro que no entiendo, la fecha y las horas de la cita están en la D22 pero estás copiando la D100

Revisa bien la hoja2 para que veas que si te está haciendo más alta la fila

DAM una pregunta

Será que a través de la función INICIO - FORMATO CONDICIONAL en excel hay alguna regla que se pueda poner que si determinada celda de una fila tiene un determinado valor, la altura de fila sea mayor?

Sé que le puedo poner color a toda una fila o cambiar letra de acuerdo a reglas pero no se si aplica también para ALTO DE FILA, si es así, enseñame como

No se puede cambiar el alto de la fila con el formato condicional

Respuesta
1

Sub Macro1()
    Rows("1:1").RowHeight = 30
    Rows("2:2").RowHeight = 45
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas