Instrucciones para desactivar la vista protegida en Office 2010.

Para quitar la vista protegida, hay que ir a Archivo – Opciones – Centro de confianza – Configuración del centro de confianza – Vista protegida y desactivar la protección que deseemos (por lo regular, archivos que vengan de Internet y de Outlook).

Esto nos quita un nivel de seguridad, por lo que hay que tener cuidado al abrir los archivos.

Aquí está un artículo que lo describe en inglés, con imágenes.

http://rydberg.biology.colostate.edu/sites/bioit-faq/2010/09/27/office-2010-enable-editing-settings/

 

Cómo elegir la última celda con valores en Excel.

Esta pregunta me la mandó José Luis González, y me dijo que estaba bien compartirla:

Tengo un documento en Excel que es nuestro score card, y lo que me pidieron hacer es que en una celda determinada, aparezca el ultimo valor escrito en la misma comuna, te mando un ejemplo:

Ejemplo

Imagínate que son la misma columna solo que Q1 es una semana y quiero que parezca en total lo ultimo escrito.

Q2 es otra semana, pero en el mismo renglón y como ya escribí otro valor el otra celda ahora aparece el 3 y así sucesivamente….

En pocas palabras necesito que en la celda de total aparezca el valor de la ultima celda utilizada…

 Solución propuesta:

Se le dice: “Si d2 no está en blanco, entonces pon ese valor, y si no, si c2 no está en blanco, pon ese valor, y si no, si b2 no está en blanco, entonces pon ese valor, y si no, entonces pon el valor de a2.”

La fórmula es así para E2:

En inglés:            =IF(D2<>”",D2,IF(C2<>”",C2,IF(B2<>”",B2,A2)))

En español:        =SI(D2<>”",D2,SI(C2<>”",C2,SI(B2<>”",B2,A2)))

Cómo manejar Outlook 2010

Un muy buen artículo, en inglés. Vienen muchos de los tips que vemos en el curso de Outlook de Auval. En cuanto lo vea en español lo incluiré aquí también.

http://office.microsoft.com/en-us/outlook-help/best-practices-for-outlook-2010-HA102459562.aspx

 

Llegaron las vacas gordas

A Enero de 2012, y después de la recesión del 2009, llevamos ocho trimestres con crecimiento. Los invito a ver mi columna sobre este tema en Empresource, la revista digital de negocios.

http://www.empresource.com/magazine/articulos/236_vacas-gordas–vacas-flacas.html

Cómo ordenar una lista

Esta es una pregunta que me surgió al estar diseñando una lista reordenable por el usuario. Es un tema básico, pero como me tardé en recordar cómo se hacía, anexo los pasos.

 

ID

Texto

Sig

Ant

1

a

2

-1

2

b

3

1

3

c

4

2

4

d

5

3

5

e

6

4

6

f

7

5

7

g

8

6

8

h

9

7

9

i

10

8

10

j

1000

9

Esta es una lista.

 

El primer registro tendrá esta forma.

ID

Texto

Sig

Ant

1

a

1000

-1

 

Para insertar un registro después de un registro “base”, haremos lo siguiente:

 

base.sig = insertado.id

insertado.sig = base.sig

 

base+ 1.ant = insertado.id

insertado.ant = base + 1.ant

 

Para borrar un registro, haremos lo siguiente:

 

borrado – 1.sig = borrado.sig

borrado + 1.ant = borrado.ant

Y luego borramos el registro.

 

Para mover un registro para que quede después de un registro “base”, haremos lo siguiente:

 

base.sig = movido.id

movido.sig = base.sig

movido – 1.sig = movido.sig

 

base + 1.ant = movido + 1.ant

movido.ant = base.id

movido + 1.ant = movido.ant

 

El desempeño y la regresión a la media

En el libro “Thinking fast and slow”, Daniel Kahneman, ganador del premio nobel, relata que al decir que el desempeño mejora más con el premio que con el castigo, un oficial del ejército le dijo que eso era falso. Él había observado cómo cuando alababa a alguien por un excelente trabajo, el siguiente trabajo era de menor calidad, y cuando regañaba a alguien por un desempeño mediocre, el siguiente intento era mejor.

La explicación de Daniel es que el desempeño tiende al promedio. Por eso, un desempeño excepcional será seguido por un desempeño más modesto, y un mal desempeño será sucedido por otro mejor. Esto es independiente del regaño.

Es importante que todas las áreas de la empresa tomen en cuenta este principio. La mejora no se da de la noche a la mañana, ni interrumpidamente. El desempeño mejora dos pasitos adelante y un pasito para atrás. Sin embargo, la motivación se construye reforzando lo positivo más que atacando lo negativo. La situación de crisis terminará próximamente, y las empresas que hayan construido el éxito en vez de atacar los fracasos estarán mejor posicionadas para retener una fuerza de trabajo capaz, motivada y leal.

¿Qué celular debo elegir?

Hoy en día, hay muchas opciones a la hora de elegir un teléfono celular. ¿Cómo podemos elegir el que más nos convenga?

Los teléfonos celulares han pasado de ser un teléfono a ser una minicomputadora, un asistente personal, GPS, beeper y – de paso – un teléfono. Los teléfonos son capaces de ejecutar aplicaciones para una infinidad de tareas: registrar los tiempos y rutas de los deportistas al correr, tocar música, jugar, leer correo y una infinidad de tareas.

Los desarrolladores de aplicaciones muchas veces ofrecen aplicaciones gratis o de prueba, con tal de conseguir clientes para otros productos o servicios extendidos, y suelen hacer sus programas para los teléfonos que tienen más mercado potencial. Dicho en términos claros: los que más clientes tienen y más clientes están adquiriendo, son los teléfonos que más aplicaciones van a tener.

Dicho esto, actualmente hay dos teléfonos (o sistemas operativos, mejor dicho) que destacan del resto: el iPhone y los teléfonos con Android.

El iPhone maneja un sistema operativo llamado iOS, es de Apple, y Apple no permite que nadie más que ellos usen este sistema operativo.

El Android es el sistema operativo de celulares de Google. Google compró Motorola, y permite que muchos fabricantes de celulares usen su sistema operativo. Así encontramos teléfonos de Samsung, HTC y muchos otros fabricantes que corren el sistema Android.

Ahora bien, aunque cualquier iPhone usa el mismo sistema operativo, no todos los celulares de una marca particular usan Android. Hay que revisarlo.

Antes de la aparición del iPhone y Android, había otros dos grandes ganadores: Nokia, con su sistema Symbian, y BlackBerry, con su sistema propietario. Estos dos gigantes han ido perdiendo terreno a pasos agigantados: ambos tuvieron que despedir gente en 2011 y Nokia cambió de presidente y se alió con Microsoft para usar Windows Mobile, para competir. Con esto abandonó el sistema Symbian. ¿Qué significa esto? Que poca gente va a desarrollar aplicaciones nuevas para un sistema operativo descontinuado. Por su parte, BlackBerry le agrada a los departamentos de sistemas por el control que pueden tener sobre el teléfono, lo que a los usuarios finales no les parece  atractivo en lo absoluto. En 2009 tenía el 50% del mercado de los teléfonos inteligentes en Estados Unidos. En 2012, tiene el 9%, de acuerdo con este artículo del New York Times.

Por eso, mi recomendación es que si van a cambiar de celular en 2012, elijan un iPhone o un teléfono con Android, para así disfrutar del mayor número posible de aplicaciones.

Cómo moverse con el ratón en Excel

En este video se muestra cómo identificar hacer varias acciones usando el ratón en Excel.

Mis clientes sonsacan a mis empleados.

La primera vez que escuché “mis clientes sonsacan a mis empleados” me pareció que era una excusa. Los empleados seguramente estaban enojados, y los clientes no eran los que los “sonsacaban”. Luego me pasó. Un cliente me llamó y me dijo que quería un curso, y comentó que lo quería más barato, así que qué tal si lo hacía en sábado sin informarle a mi patrón: un dinerito extra para mí, un dinerito extra para él, y todos felices. Le pregunté a algunos amigos, y me confirmaron que esta es una práctica común.

¿Qué se puede hacer al respecto? De estas mismas pláticas, recopilé estos tips:

Con los empleados:
a) Tener un buen sistema de control de inventarios, si se trata de un producto.
b) Indicar en su contrato que tomar trabajos “por fuera” es causa de despido.
c) Probar a los empleados mediante compradores sorpresa, e informarles de esto a los empleados.
d) Incluir cláusulas de no competencia en el contrato de trabajo, estipulando que si el empleado decide poner un negocio que compita con el del patrón hasta cierto tiempo después de haber trabajado en su negocio, deberá pagar “colegiatura” por usarlo como escuela.
e) Instalar cámaras de seguridad.
f) Controlar los equipos en fin de semana (en el caso de equipo de fumigación, por ejemplo).

Con los clientes:
a) Indicar que si el cliente no recibe un ticket de compra, su compra es gratis.
b) Colocar en forma visible un teléfono local o gratuito para quejas, y tener a alguien que responda siempre.

Lo mejor, sin embargo, es contratar gente de confianza que se sienta a gusto trabajando con nosotros. Implantadas de la forma equivocada, varias de estas medidas podrán ofender a la gente, y fomentarán la misma conducta que tratan de evitar.

Cómo extraer todos los correos para mandar tarjetas de Año Nuevo.

Quería mandar un correo de “Feliz 2012″ a todas las personas que me mandaron un correo este año. Para eso necesitaba una lista, así que modifiqué ligeramente el código de dos sitios muy útiles que menciono a continuación. Con eso obtuve un archivo de texto que pude abrir en Excel para quitar a todos los amables spameros que me han mandado correo no solicitado, y luego casi todos los “no-reply”, “admin”, “reply”, “info”, “automated”. Pero bueno, lo importante era tener la lista.

De este lugar tomé el código:

http://omaralzabir.com/get_email_address_of_all_users_from_all_mails_in_outlook_folder/

De este saqué vbNewLine:

http://www.nsbasic.com/desktop/info/Specifications.html

Se oprime Alt-F11 y en el explorador de proyectos (que aparece oprimiendo Ctrl-R) se pega el código, en “este proyecto de Outlook”.

Es importante especificar una ruta y nombre de archivo válidos en la instrucción Const de la primera línea.

 

Const c_archivo = "F:\Users\armando\Desktop\email addresses 2.txt"

Sub GetALLEmailAddresses()
    Dim objFolder1 As MAPIFolder
    Dim strEmail1 As String
    Dim strEmails1 As String
    Dim objItem As Object
    Dim writeText As Boolean

    Set objFolder1 = Application.GetNamespace("Mapi").PickFolder
    strEmails1 = GetMessages(objFolder1, True)
    'strEmails1 = GetMessageEmails(objFolder1, True)
    Debug.Print strEmails1
    writeText = SaveTextToFile(c_archivo, strEmails1, True)
End Sub

'this is verbatem from http://www.freevbcode.com/ShowCode.Asp, it saves the files to a text file
Public Function SaveTextToFile(FileFullPath As String, _
    sText As String, Optional Overwrite As Boolean = False) As _
    Boolean
    'Purpose: Save Text to a file
    'Parameters:
    '- FileFullPath - Directory/FileName to save file to
    '- sText - Text to write to file
    '- Overwrite (optional): If true, if the file exists, it
    'is overwritten. If false,
    'contents are appended to file
    'if the file exists
    'Returns: True if successful, false otherwise
    'Example:
    'SaveTextToFile "C:\My Documents\MyFile.txt", "Hello There"
    On Error GoTo ErrorHandler
    Dim iFileNumber As Integer
    iFileNumber = FreeFile
    If Overwrite Then
        Open FileFullPath For Output As #iFileNumber
    Else
        Open FileFullPath For Append As #iFileNumber
    End If
    Print #iFileNumber, sText
    SaveTextToFile = True
ErrorHandler:
    Close #iFileNumber
End Function

'This is the GetMessages that takes a folder and returns a list of the "name, e=mail, subject"s
Public Function GetMessages(oFolder As MAPIFolder, ByVal bRecursive As Boolean) As String
    Dim objFolder As Outlook.MAPIFolder
    Dim strEmail As String
    Dim strEmails As String
    Dim strName As String
    Dim strSubject As String
    Dim strAll As String
    Dim strItemAll As String
    Dim objItem As Object
    Dim objFolders As Outlook.Folders
    Set objFolders = oFolder.Folders
    For Each objFolder In objFolders
        For Each objItem In objFolder.Items
            If objItem.Class = olMail Then
                strEmail = objItem.SenderEmailAddress
                strName = objItem.SenderName
                strSubject = objItem.Subject
                ' ALFC I only want the emails.
                'strItemAll = strName + "," + strEmail + "," + strSubject
                strItemAll = strName & "|" & strEmail & vbNewLine
                strAll = strAll & vbNewLine & strItemAll
            End If
        Next
        If bRecursive Then
            ' Might want to compare this to strEmails instead of just appending.
            strAll = strAll + GetMessages(objFolder, bRecursive)
        End If
    Next
    GetMessages = strAll
End Function

'This is the the function that returns a list of ";" delimited e-mails with no duplicates.
Public Function getMessageEmails(oFolder As MAPIFolder, ByVal bRecursive As Boolean) As String
    Dim objFolder As Outlook.MAPIFolder
    Dim strEmail As String
    Dim strEmails As String
    Dim objItem As Object
    Dim objFolders As Outlook.Folders
    Set objFolders = oFolder.Folders
    For Each objFolder In objFolders
        For Each objItem In objFolder.Items
            If objItem.Class = olMail Then
                strEmail = objItem.SenderEmailAddress
                If InStr(strEmails, strEmail) = 0 Then strEmails = strEmails + strEmail + ";"""
            End If
        Next
        If bRecursive Then
            ' Might want to compare this to strEmails instead of just appending.
            strEmails = strEmails + getMessageEmails(objFolder, bRecursive)
        End If
    Next
    getMessageEmails = strEmails
End Function