Foros del Web » Soporte técnico » Ofimática »

Macros & VBA: ActiveSheet.HPageBreaks

Estas en el tema de Macros & VBA: ActiveSheet.HPageBreaks en el foro de Ofimática en Foros del Web. Como hacer un Set ActiveSheet.HPageBreaks(1).Location = y que me localize luego de una fila vacia, se puede eso :S ? osea en realidad el problema ...
  #1 (permalink)  
Antiguo 30/07/2008, 10:20
 
Fecha de Ingreso: julio-2008
Mensajes: 17
Antigüedad: 15 años, 9 meses
Puntos: 0
Macros & VBA: ActiveSheet.HPageBreaks

Como hacer un Set ActiveSheet.HPageBreaks(1).Location =

y que me localize luego de una fila vacia, se puede eso :S ?


osea en realidad el problema que tengo es, que en una hoja de excel, tengo varios clientes, y cada cliente tiene sus datos. cuando voy a imprimir me imprime tantos clientes como de la hoja, y lo que kiero es que me imprima de cliente en cliente, osea una hoja para cada cliente.


entre cliente y cliente hay una fila vacia. como puedo hacer :S?


Gracias ! muy amables
  #2 (permalink)  
Antiguo 30/07/2008, 12:21
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Macros & VBA: ActiveSheet.HPageBreaks

Prueba con el siguiente código, siguiendo las instrucciones que allí se indican.

Código:
Sub InsertaSaltoDePagina()
'---------------------------------
' a) Se supone que la fila 1 contiene los encabezados del informe
' b) Seleccionar una columna en la que las únicas celdas vacías sean las
'    de separación entre Clientes
'---------------------------------
Dim Celda As Range
  Set Celda = Cells(1, ActiveCell.Column).End(xlDown).End(xlDown)
Do
  ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Celda.EntireRow
  Set Celda = Celda.End(xlDown).End(xlDown)
Loop While Celda.Row < 65536
  Set Celda = Nothing
End Sub
Saludos, Cacho.

Última edición por mrocf; 30/07/2008 a las 12:26
  #3 (permalink)  
Antiguo 31/07/2008, 05:33
 
Fecha de Ingreso: julio-2008
Mensajes: 17
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

Gracias! se nota que tienes bastantee conocimiento sobre el tema.

el codigo que me pasastes anda de maravilla lo unico k me deja el ultimo valor afuera de cada cliente, osea termina la hoja una fila antes y pierdo un dato :S

y

Como puedo dejar las filas 1 y 2 fijas y no solo la 1? tns idea =/


Muy amable Profesor :)

Última edición por baskjzz; 31/07/2008 a las 05:39
  #4 (permalink)  
Antiguo 31/07/2008, 06:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

Puedes cambiar donde dice Cells(1...) por Cells(2...).

Para lo segundo puedes sumar + 1 donde dice Celda.EntireRow.

Espero que te funcione.

Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 31/07/2008, 11:26
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

Mmmmmm….
Ojala te funcione la propuesta de David el Grande.

Pero la única razón por la que el código no funcione perfecto es que tu “frase principal” no sea cierta: “- entre cliente y cliente hay una fila vacia.

De modo que vas a tener que hacerme llegar por correo un pequeño extracto (me refiero a la info de los primeros 3 Clientes) de tu planilla para que la vea.

Saludos, Cacho.
  #6 (permalink)  
Antiguo 01/08/2008, 07:53
 
Fecha de Ingreso: julio-2008
Mensajes: 17
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

no hace lo que pido con la sugerencia del amigo David :)

igualmente muy amable por molestarte a responderme.

Saludos
  #7 (permalink)  
Antiguo 01/08/2008, 10:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

¿Podrías poner una captura de pantalla de cómo está exactamente tu libro y qué es lo que quieres que haga la macro?. Porque no estoy entendiendo muy bien.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 01/08/2008, 11:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

Bueno, me tomo el atrevimiento de modificar el código de mrocf:
Código PHP:
Sub InsertaSaltoDePagina()
Dim Celda As Range
Set Celda 
Cells(ActiveCell.RowActiveCell.Column).End(xlDown)
Do
  
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(Celda.Row 21)
  
Set Celda Celda.End(xlDown).End(xlDown)
Loop While Celda.Row 65536
  Set Celda 
Nothing
End Sub 
En este caso debes seleccionar el primer dato del primer cliente de cualquiera de las columnas. (Por ejemplo, la columna de fecha).

Espero que te ayude. Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 01/08/2008, 15:13
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

Hola! David.

Ja ja ja

Parece que el amigo Sebastián te envió también a tí la info para que le ajustásemos el código: coincido con tu ajuste.

Saludos, Cacho.
  #10 (permalink)  
Antiguo 01/08/2008, 15:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

Jaja, parece que así es

Bueno, esperamos que le sea de utilidad...

Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 04/08/2008, 05:35
 
Fecha de Ingreso: julio-2008
Mensajes: 17
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

exelente xD


Gracias por su amable ayuda :)


solo que en un determinado lugar me pone lo siguiente


http://www.subirimagenes.com/imagen-screenshot-884171.html][IMG]http://s2.subirimagenes.com/imagen/previo/thump_884171screenshot.png
  #12 (permalink)  
Antiguo 04/08/2008, 06:54
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

Intenta con:

Código:
Sub InsertaSaltoDePagina()
'''''''''''''''''''
' Seleccionar la columna en la que se encuentra el texto "Total"
' Luego de ello, ejecutar la presente macro
'''''''''''''''''''
Dim Celda As Range
Set Celda = ActiveCell.End(xlDown).End(xlDown)
Do
  ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(Celda.Row + 1, 1)
  Set Celda = Celda.End(xlDown)
Loop While Celda.Row < 65536
  Set Celda = Nothing
End Sub
Pero advierte que -previamente- debes seleccionar la columna en la que se encuentran los textos: "Total".
Suerte, Cacho.
  #13 (permalink)  
Antiguo 04/08/2008, 07:58
 
Fecha de Ingreso: julio-2008
Mensajes: 17
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

en cuanto a esa posible solucion me da esto :

http://www.subirimagenes.com/imagen-asd-884733.html


sii, ya see los estoy volviendo locoos

jaja,

Si tienen idea como hacer , buenisimo :) sinoo, investigare yo jaja


Gracias gente.

Saludos



Cita:
Iniciado por mrocf Ver Mensaje
Intenta con:

Código:
Sub InsertaSaltoDePagina()
'''''''''''''''''''
' Seleccionar la columna en la que se encuentra el texto "Total"
' Luego de ello, ejecutar la presente macro
'''''''''''''''''''
Dim Celda As Range
Set Celda = ActiveCell.End(xlDown).End(xlDown)
Do
  ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(Celda.Row + 1, 1)
  Set Celda = Celda.End(xlDown)
Loop While Celda.Row < 65536
  Set Celda = Nothing
End Sub
Pero advierte que -previamente- debes seleccionar la columna en la que se encuentran los textos: "Total".
Suerte, Cacho.
  #14 (permalink)  
Antiguo 04/08/2008, 08:37
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

En realidad, esta pérdida de tiempo y recursos deviene de no haber contado nunca con tu planilla real.
Ello es lo que ha impedido que "se vea" lo que tú no estás viendo, es decir: no es cierto que entre Cliente y Cliente tengas una celda vacía sino que -probablemente- esas celdas deben tener caracteres "espacio".

En fin, probemos un nuevo método: buscar el texto "Total" en la columna que seleccionarás:

Código:
Sub InsertaSaltoDePagina()
'''''''''''''''''''
' Seleccionar la columna en la que se encuentra el texto "Total"
' Luego de ello, ejecutar la presente macro
'''''''''''''''''''
Dim Celda As Range
Set Celda = ActiveCell.EntireColumn.Find(What:="Total", LookIn:=xlValues)
  FirstCell = Celda.Address
Do
  ActiveSheet.HPageBreaks.Add Before:=Cells(Celda.Row + 1, 1)
  Set Celda = Celda.EntireColumn.FindNext(Celda)
Loop Until Celda.Address = FirstCell
  Set Celda = Nothing
End Sub

Suerte (ja ja ja )

Última edición por mrocf; 04/08/2008 a las 08:49
  #15 (permalink)  
Antiguo 04/08/2008, 08:56
 
Fecha de Ingreso: julio-2008
Mensajes: 17
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

exelentee ! hacee lo que quieroo :):)


cuando termina la planilla me da el siguiente error :

http://www.subirimagenes.com/imagen-sef-884942.html


ja ja ja , no quiero molestarlos mass xD

Gracias x todo, y todo el tiempo qe se tomaron con mi trabajo.

NOTA_: disculpen si no eh enviado la planilla de excel, al principio, es que no podia publicarla =/

Saludos Sebastián.
  #16 (permalink)  
Antiguo 04/08/2008, 10:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

Si hace lo que quieres solo coloca:
Código PHP:
On Error Resume Next 
O simplemente quita esa línea.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #17 (permalink)  
Antiguo 04/08/2008, 10:48
 
Fecha de Ingreso: julio-2008
Mensajes: 17
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Macros & VBA: ActiveSheet.HPageBreaks

impecable, ahora la macro funciona de maravilla :)


lo unico, que la primer fila no kda fija =/, pro igual.

Gracias gente =) , han sido muy amables.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:41.