Windows 7 - Completar columna con texto al llenar con X otras columnas.

Asked By borce on 12-Aug-12 06:19 AM
? Hola !
Buenos d?as,

Llevo unos d?as rompi?ndome la cabeza y revisando decenas de
p?ginas (adem?s de tirando de google todo lo que puedo) y no he
sido capaz de adaptar las soluciones a mi caso concreto.

Ver?n, tengo un documento con el que trabajamos en Excel 2007, y entre
otras muchas macros, estamos intentado sacar una que nos permita autocompletar
una columna con el texto que encabeza otras columnas del mismo libro / misma
hoja.

Croquis:

A - B - C - P - Q - R

Apellido    Nombre    Pais    Telefono    Email    CONTROL
Perez - Paco - Andorra - X - "" - Telefono
De Cabeza - Dolores - Mongolia - "" - X - Email
Este Excel - Meda - Vaticano - X - X - Telefono/Email

Los guiones marcan el paso de una celda a otra. Los "" que figuran
ser?an celdas vac?as.

Lo que buscamos es que cada vez que se ingrese el valor "X" en la
columnas correspondientes a Telefono o Email, nos complete en la columna de
control con el texto que encabeza la columna donde hemos ingresado la X.

Espero haber sido suficientemente claro y que me pod?is ayudar.

Gracias de ante mano, un saludo.


PD: Se que la funci?n =SI() ser?a v?lida para este caso.
pero por desgracia una de las macros que lleva este documento limpia todas las
celdas del rango afectado a diario para evitar duplicidad de datos.

No?




Emilio replied to borce on 12-Aug-12 06:41 AM
--------------------------------------------------------------------------
?Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvi? o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
Si te he entendido bien resulta muy simple, sin embargo un poco "lesivo"
para la eficiencia del libro:

Private Sub Worksheet_Change(ByVal Target As Range)
If LCase(Target.Value) = "x" Then Target.Value = Target.End(xlUp)
End Sub

eso vigilar? todos los cambios en todas las celdas, ...

podr?as limitar el rango a "vigilar" mediante intersect

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
noticias:fICdnUiCPb63HrrN4p2dnAA@giganews.com...

? Hola !
Buenos d?as,

Llevo unos d?as rompi?ndome la cabeza y revisando decenas de
p?ginas (adem?s de tirando de google todo lo que puedo) y no he
sido capaz de adaptar las soluciones a mi caso concreto.

Ver?n, tengo un documento con el que trabajamos en Excel 2007, y entre
otras muchas macros, estamos intentado sacar una que nos permita
autocompletar
una columna con el texto que encabeza otras columnas del mismo libro / misma
hoja.

Croquis:

A - B - C - P - Q - R

Apellido    Nombre    Pais    Telefono    Email    CONTROL
Perez - Paco - Andorra - X - "" - Telefono
De Cabeza - Dolores - Mongolia - "" - X - Email
Este Excel - Meda - Vaticano - X - X - Telefono/Email

Los guiones marcan el paso de una celda a otra. Los "" que figuran
ser?an celdas vac?as.

Lo que buscamos es que cada vez que se ingrese el valor "X" en la
columnas correspondientes a Telefono o Email, nos complete en la columna de
control con el texto que encabeza la columna donde hemos ingresado la X.

Espero haber sido suficientemente claro y que me pod?is ayudar.

Gracias de ante mano, un saludo.


PD: Se que la funci?n =SI() ser?a v?lida para este caso.
pero por desgracia una de las macros que lleva este documento limpia todas
las
celdas del rango afectado a diario para evitar duplicidad de datos.

No?
Emilio replied to Emilio on 12-Aug-12 07:18 AM
--------------------------------------------------------------------------
?Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvi? o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!

en concreto as?:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, ActiveSheet.Range("A1:F20")) Is Nothing Then
If LCase(Target.Value) = "x" Then Target.Value = Target.End(xlUp)
End If
End Sub
eso limitar? el rango supervisado a A1:F20

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
noticias:k0819d$liv$1@speranza.aioe.org...

--------------------------------------------------------------------------
?Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvi? o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
Si te he entendido bien resulta muy simple, sin embargo un poco "lesivo"
para la eficiencia del libro:

Private Sub Worksheet_Change(ByVal Target As Range)
If LCase(Target.Value) = "x" Then Target.Value = Target.End(xlUp)
End Sub

eso vigilar? todos los cambios en todas las celdas, ...

podr?as limitar el rango a "vigilar" mediante intersect

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
noticias:fICdnUiCPb63HrrN4p2dnAA@giganews.com...

? Hola !
Buenos d?as,

Llevo unos d?as rompi?ndome la cabeza y revisando decenas de
p?ginas (adem?s de tirando de google todo lo que puedo) y no he
sido capaz de adaptar las soluciones a mi caso concreto.

Ver?n, tengo un documento con el que trabajamos en Excel 2007, y entre
otras muchas macros, estamos intentado sacar una que nos permita
autocompletar
una columna con el texto que encabeza otras columnas del mismo libro / misma
hoja.

Croquis:

A - B - C - P - Q - R

Apellido    Nombre    Pais    Telefono    Email    CONTROL
Perez - Paco - Andorra - X - "" - Telefono
De Cabeza - Dolores - Mongolia - "" - X - Email
Este Excel - Meda - Vaticano - X - X - Telefono/Email

Los guiones marcan el paso de una celda a otra. Los "" que figuran
ser?an celdas vac?as.

Lo que buscamos es que cada vez que se ingrese el valor "X" en la
columnas correspondientes a Telefono o Email, nos complete en la columna de
control con el texto que encabeza la columna donde hemos ingresado la X.

Espero haber sido suficientemente claro y que me pod?is ayudar.

Gracias de ante mano, un saludo.


PD: Se que la funci?n =SI() ser?a v?lida para este caso.
pero por desgracia una de las macros que lleva este documento limpia todas
las
celdas del rango afectado a diario para evitar duplicidad de datos.

No?