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.
 

Leer las respuestas

#1 Héctor Miguel
10/02/2008 - 23:38 | Informe spam
hola, Ernesto ! (en aquella ocasion consultaste como "Hernando" ?)

1) si la hoja que recibe debe estar protegida, (re)protegela en el evento '_open' de tu libro +/- como sigue:

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

2) copia/pega las sigientes instrucciones EN el modulo de codigo de "esa" hoja...

Private Sub Worksheet_Calculate()
Dim Celda As Range
Application.EnableEvents = False
On Error GoTo Salida
For Each Celda In Cells.SpecialCells(xlCellTypeFormulas)
If InStr(Celda.Formula, "TomarClientes") _
Then Celda.WrapText = False: Celda.WrapText = True
Next
Salida:
Application.EnableEvents = True
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la consulta original __
... 'recoger todos los nombres que ponía en una fila de una hoja'
... pasando... estos nombres... a otra linea de otra hoja (resumen)... 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
... en aquella epoca no se incluian muchos nombres... 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 asi la línea de la hoja (resumen) donde los traslada... solo se ven los que permite... 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 quedo en el ultimo 'autoajustar'
... de... consultado esto antes, y algo de que no se podia hacer me ronda en la memoria, pero no lo recuerdo
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...

Preguntas similares