Un 'arreglo' para Hector Miguel

10/02/2008 - 16:55 por Ernesto | Informe spam
Hola Hector Miguel

No se si recordaras con la cantidad de mensajes que contestas, que hace ya
tiempo me solucionaste (esto entre otras cosas) 'recoger todos los nombres
que ponía en una fila de una
hoja', hoja donde previamente se recogian todos los datos (BD), pasando
todos estos
nombres, automaticamente, a otra linea de otra hoja (resumen) del mismo
libro, con esta macro.

Function TomarClientes(Clientes As Range, Claves As Range, Clave) As String
Dim Celda As Range, Fila As Long: TomarClientes = "": Fila = 1
For Each Celda In Claves
If Celda = Clave Then
If TomarClientes <> "" Then TomarClientes = TomarClientes & ", "
TomarClientes = TomarClientes & Clientes.Cells(Fila)
End If: Fila = Fila + 1
Next
End Function

Funciona de maravilla, pero, siempre surge un pero, en aquella epoca no se
incluian muchos
nombres (nombre y dos apellidos) en la linea de la hoja 'BD', cuya linea por
su formato,
se abre todo lo necesario segun la cantidad de nombres que vas incorporando,
admite muchos, no así la línea de la hoja(resumen) donde los traslada, en la
que solo se ven
los que permite la linea segun su altura que tenga de formato la linea.
La hoja esta protegida y el usuario para ver todos tendria que saber la
'clave', desproteger,
ir a esa linea y formatearla como 'autoajustar', pero aun asi cuando la
informacion
'desaparece' (se borra en BD), queda abierta en la 'altura' que quedó en el
último 'autoajustar'

Tengo dudas de habertelo consultado esto antes, y algo de que no se podia
hacer me ronda en la memoria,
pero no lo recuerdo, no obstan te lo vuelvo a plantear y tu me indicas.
Me gustaría, por no dejar la hoja 'abierta' que con otra macro se pudiera
hacer, que la linea
donde 'recibe' la informacion, funcionara como la linea donde se incluye,
que va abriendose
segun se incorporan datos y que al borrar los datos queda con una altura
determinada y
todas las lineas que reciben esta informacion, igual.

Te reitero mi agradecimiento por tus aportaciones al foro y recibe un
cordial saludo.

Preguntas similare

Leer las respuestas

#6 Ernesto
13/02/2008 - 22:51 | Informe spam
hola Héctor Miguel
He siguido todos tus pasos, no una sino varias veces, cerrando la hoja y
volviendola a abrir. He cambiado las macros, de una a otra hoja, por si no
te entendía bien, he leido el 'mini-curso' de macros de
http://office.microsoft.com/trainin...1506203082 ,
por si confundia algun concepto y nada. Siguen si abrirse, en la
Hoja1(resumen), las lineas receptoras de los nombres de los alumnos que yo
incluyo en la Hoja2(BD).
Yo creo que tengo las macros tal cual tu me has indicado, logicamente no
tengo la total certeza, ya que no funcionan.
Solo me queda, si te parece bien, abusando de tu amabilidad, enviarte el
libro para que comprobaras la ubicación que yo le he dado a las macros.
Gracias otra vez y recibe un cordial saludo.

"Héctor Miguel" escribió en el mensaje
news:
hola, Ernesto !

1) los codigos que hemos visto en esta consulta, deben estar cada uno en
su cada tipo de modulo:
a) Private Sub Workbook_Open() <= en el modulo de codigo del objeto
ThisWorkbook
b) Private Sub Worksheet_Calculate() <= en el modulo de codigo de "la
hoja" donde usas la funcion
c) el de la Function TomarClientes(Clientes ... (obviamente) en un
modulo de codigo estandar/general/normal

2) en el workbook_open se debe hacer referencia a la hoja y la clave
"correctas"... o sea:
cambia el nombre de la hoja e indica la clave que le asignaste (a las
reales)
Private Sub Workbook_Open()
Worksheets("pon aqui el nombre de tu hoja").Protect _
PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
UserInterfaceOnly:=True
End Sub

OJO: solo por codigo se puede establecer que la proteccion de la hoja
dejara "libre accion a las macros"
(la parte con el argumento: UserInterfaceOnly:=True)

3) hay dos formas de ejecutar este procedmiento (workbook_open):

a) automaticamente al abrir el libro (CON su permiso de usar las
macros)
para pruebas deberas cerrar y re-abrir el libro o...

b) pulsar la tecla {F5} cuando el cursor esta dentro del procedimiento
(en el editor de vba)

si algo de lo anterior no se ajusta a los procedimientos que sigues...
comentas cualquier detalle adicional ?
saludos,
hector.

Respuesta Responder a este mensaje
#7 Héctor Miguel
13/02/2008 - 23:25 | Informe spam
hola, Ernesto !

He siguido todos los pasos, no una sino varias veces, cerrando la hoja y volviendola a abrir.
He cambiado las macros, de una a otra hoja, por si no te entendia bien
he leido el 'mini-curso' de macros de http://office.microsoft.com/trainin...1506203082
por si confundia algun concepto y nada.
Siguen si abrirse, en la Hoja1 (resumen), las lineas receptoras de los nombres de los alumnos que yo incluyo en la Hoja2(BD).
Yo creo que tengo las macros tal cual tu me has indicado, logicamente no tengo la total certeza, ya que no funcionan.
Solo me queda, si te parece bien, abusando de tu amabilidad, enviarte el libro
para que comprobaras la ubicacion que yo le he dado a las macros...



ya sabes a donde enviarlo... (solo quita de la direccion que aparece el "NO...SPAM...PLS")
ANTES de que lo envies... por casualidad, las celdas donde usas la funcion personalizada... son celdas "combinadas" ???

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida