Excel - Insertar código VB en hojas de Excel

 
Vista:
sin imagen de perfil

Insertar código VB en hojas de Excel

Publicado por TinoS (14 intervenciones) el 27/08/2014 12:56:29
Buenos días.

Quiero hacer esto en una hoja de cálculo pero con código de Visual Basic, pues creo que irá mucho más rápido en cuanto a carga y funcionamiento.

Lo que quiero hacer es esto:

Tengo tres columnas en las que tengo:

en la columna A: EL NOMBRE,
en la columna B: PRIMER APELLIDOS y
en la columna C: SEGUNDO APELLIDO.

y quiero que en la columna D, me aparezca EL NOMBRE + PRIMERO APELLIDO + SEGUNDO APELLIDO.

Ahora lo tengo hecho con fórmulas así en cada celda de la columna D:

=SI(ESBLANCO($A1);" ";CONCATENAR($A1;$B1;$C1)) (Lo que hace es que comprueba si la celda A1 está rellena o no. Si lo está que ponga el nombre completo y seguido en la columna D y, si no lo está, lo queda en blanco y así toda la columna D hasta 1000 celdas).

Esto funciona correctamente, pero el problema es que hay otras muchas condiciones y la hoja se vuelve lenta al abrirla y navegar por ella y, supongo, que si esto lo hago insertando una función de visual basic, todo irá más rápido. El problema es que no sé como. Si me podéis ayudar un poquito.

Gracias de antemano por vuestra ayuda.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Insertar código VB en hojas de Excel

Publicado por juan (62 intervenciones) el 27/08/2014 13:34:46
es simple usa la grabadora de macros del excel ,yo lo hice y genero el siguiente codigo

Sub prueba()
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC1),"" "",CONCATENATE(RC1,RC2,RC3))"
activetecell.Offset(1, 0).Select
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Insertar código VB en hojas de Excel

Publicado por TinoS (14 intervenciones) el 27/08/2014 13:57:35
Gracias Juan por tu ayuda.

Pero ¿dónde inserto ese código?

y ¿tengo que ponerlo en cada celda de la columna D?

o ¿tengo que asignarle a un botón?

Gracias de nuevo.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insertar código VB en hojas de Excel

Publicado por Jonathan legarda (68 intervenciones) el 27/08/2014 14:58:46
usar la grabadora de macros en este caso es incorrecto
en mi opinion personal, es mejor que lo sigas haciendo con formulas, en cuanto a la lentitud del archivo es muy extraño ya que yo e hecho trabajos que tienen mucho codigo vba y cada libro mas de 499 formulas por las celdas y nunca ha estado lento.
1. dime cuanto pesa tu archivo de excel
2. no te entiendo bien pero dale clic derecho en el nombre de la hoja en la parte superior
y dale clic en ver codigo en lo que aparece pon esto

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim nombres, apellidos, nombreCompleto As String

fila = Target.Row
columna = Target.Column

If Cells(fila, 1).Value <> Empty Then


nombres = Cells(fila, 1).Value
apellidos = Cells(fila, 2).Value
nombreCompleto = nombres & " " & apellidos
Cells(fila, 3).Value = nombreCompleto
End If


End Sub

cada vez que haya un cambio en una fila ejecuta este codigo
Cells(fila, 1) donde fila es la coordenada de la fila donde esta el focus y el 1 es la columna donde esta el nombre o sea la A


pero esto no es recomendado mejor dime cuanto pesa tu archivo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Insertar código VB en hojas de Excel

Publicado por TinoS (14 intervenciones) el 27/08/2014 22:04:11
Buenas tardes.

Ante todo gracias de nuevo por vuestra amabilidad y paciencia.

Discúlpame Jonathan, yo la pregunta la he hecho con la intención de ver cómo se inserta un código en excel para que al ejecutarlo pueda ver cómo toman los valores las distintas celdas de una columna, simplemente aplicando una función, que es lo que no se como aplicar, por eso he puesto ese ejemplo de las cuatro columnas.

Jonathan, el fichero al que pretendo aplicar esos conocimientos, si llego a adquirirlos, es a un fichero que está guardado en formato XLSB (formato binario), pesa 10.940 Kb. El ordenador tarda en cargarle 3 minutos y creo que es una pasada y te puedo asegurar que no son malos ordenadores.

El libro contiene 20 hojas perfectamente diseñadas con todo tipo de lujos para lo que es cada una. Una hoja/pestaña es menú desde la que con vinculos voy al resto de las pestañas/hojas, otras tres hojas/pestañas son para meter datos y el resto de hojas, que son automáticas en su confección, están diseñadas para la obtención de informes, gráficos y otros tipos de explotación.

En tres de esas hojas/pestaña hay más de 1100 formulas, EN CADA UNA, del tipo =SUMAR.SI.CONJUNTO(RANGO1;RANGO2;A1;EF;3) y en las restantes 13 hojas, con algunas menos fórmulas, más de lo mismo. Hay 47 rangos de datos, 20 áreas de impresión, 8 macros y te puedo asegurar que el libro funciona como un reloj en lo que es el resultado final, pero el problema por el que pregunto lo del código es ese, la lentitud al abrir y por eso quisiera probar a ver si con código agilizo esto.

Lo que quiero hacer es eso, probar y si no mejora, dejarlo como está. Hay que tener en cuenta que este libro, necesariamente hay que abrirlo y cerrarlo varias veces cada día.

Gracias de nuevo por vuestra atención y ayuda y un saludo.

PD. NO he tenido tiempo de aplicar tu código. Cuando lo haga te dijo algo. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insertar código VB en hojas de Excel

Publicado por Jonathan legarda (68 intervenciones) el 27/08/2014 22:36:18
lo decia por que en ocaciones se corrompen estos archivos llegando a pesar hasta 200 MB lo cual relentiza el libro oviamente, pero veo que no es el caso
pero es normal que si se demore un poco por el tamaño
intente con el codigo, digamos que es lo mas sencillo ya que hay otras formas. quedo atento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Insertar código VB en hojas de Excel

Publicado por juan (62 intervenciones) el 28/08/2014 00:59:49
el codigo es de una macro para esto pones alt + f11 luego click derecho en microsof excel objetos insertar / modulos te aparecera una pantalla en blanco a la derecha alli pegas el codigo que te di , para mejor ilustracion enviame una porcion de la data basta que sea unas 20 lineas de datos si deseas mejor con la formula que utiizas con el grabador de macros de excel hace la traduccion al codigo macro , lo bueno de las macros es que puede procesar datos y manejar solo una rutina que se encargara de colocar el resultado lo que resulta en cero formulas

saludos

jpp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar