Foros


Inicio » Excel

Página: 1 2

Mensaje Autor

Arriba
03/Sep/05 16:02
SeparaNombres

Hola!!
Es la primera vez que ingreso a esta pagina y todas sus sugerencias son muy buenas, asi que ahora tengo una pregunta sobre la macro siguiente que proporciono ByPACO, ya que al momento de ejecutarla me marca error en ActiveCell.Offset(-1, -3).Range("A1").Select, no se que estoy haciendo mal, me pueden ayudar.


Sub SeparaNombres()
' Separa Nombres con división "/" en columnas con encabezado
' Macro recorded 02/10/2004 ByPaco
' Posicionarse en la primera celda a separar

If Cells(ActiveCell.Row, ActiveCell.Column).Value = Empty Then GoTo fin
ActiveCell.EntireColumn.Insert
ActiveCell.EntireColumn.Insert
ActiveCell.EntireColumn.Insert
Cells(ActiveCell.Row, ActiveCell.Column + 3).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Cells(ActiveCell.Row, ActiveCell.Column - 3), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=True, OtherChar _
:="/", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1))
Selection.EntireColumn.Delete
ActiveCell.Offset(-1, -3).Range("A1").Select
ActiveCell.FormulaR1C1 = "Ap.Paterno"
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "Ap.Materno"
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "Nombre(s)"
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
fin:
End Sub
 
Perfil

bnhs
Soldado

Mensajes: 3
Ingresó: Julio 04, 2005
Ubicación:

No Conectado

Agregar como amigo

Arriba
04/Sep/05 1:09
Re: SeparaNombres

El codigo en donde dices que se genera el error es:
ActiveCell.Offset(-1, -3).Range("A1").Select
Lo que en "español" significa:
Seleccionar la celda que se encuentra 1 fila arriba y 3 columnas a la izquierda de la celda activa.
Esto te producira error cuando dicha celda no exista, por ejemplo que estes en la columna A, B o C obviamente no hay una celda 3 columnas a la izquierda de estas, o si estas en la fila 1, porque tampoco habra una celda arriba de la fila 1.

Es necesario corregir la macro, o bien ejecutarla en las mismas condiciones para la que fue creada.
 
Saludos. Si quieres triunfar primero debes vencer tus miedos.
 
Perfil

Edreher
Soldado

Mensajes: 22
Ingresó: Mayo 18, 2004
Ubicación:

No Conectado

Agregar como amigo

Arriba
04/Sep/05 10:53
Re: SeparaNombres

Gracias por tu respuesta Edreher, quedo solucionada mi duda
 
Perfil

bnhs
Soldado

Mensajes: 3
Ingresó: Julio 04, 2005
Ubicación:

No Conectado

Agregar como amigo

Arriba
05/Sep/05 10:03

Aunque no entiendo el error porque la macro en la linea que dice:
Cells(ActiveCell.Row, ActiveCell.Column + 3).Select
significa que te posiciona tres columnas a la derecha de tu celda seleccionada.
¿Que pasó?
 
«Antes que cambien los reinos, los hombres deberán cambiar» ═╬═
 
Perfil

ByPaco
Teniente Coronel

Mensajes: 2132
Ingresó: Junio 05, 2004
Ubicación:

Conectado

Agregar como amigo

Arriba
05/Sep/05 14:24
Re: SeparaNombres

paco puedes poner de nuevo el codigo de esa macro, estoy en variabilidad y me ayudaria mucho

saludos
 
Visiten mi espacio elnidodelseguro.com .mx
 
Perfil

lcgabrielaranda
Mayor

Mensajes: 1191
Ingresó: Mayo 18, 2004
Ubicación:

No Conectado

Agregar como amigo

Arriba
05/Sep/05 18:51
Re: SeparaNombres

Claro que si Gabriel (Saludos) con mucho gusto, es esta nueva versión corregida y aumentada :D se soluciona el error que le causaba a Blanca por no tener vacia la primera fila, además agregué la opción de cambiar el nombre de los encabezados:
[code:1:0beedd23d6]Sub SeparaNombres()
' Separa Nombres con división "/" en columnas con encabezado
' Macro recorded 05/09/2005 ByPaco
' Posicionarse en la primera celda a separar

If Cells(ActiveCell.Row, ActiveCell.Column).Value = Empty Then GoTo fin
ActiveCell.EntireColumn.Insert
ActiveCell.EntireColumn.Insert
ActiveCell.EntireColumn.Insert
Cells(ActiveCell.Row, ActiveCell.Column + 3).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Cells(ActiveCell.Row, ActiveCell.Column - 3), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="/", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1))
Selection.EntireColumn.Delete
'si causa error por no tener vacia la celda superior, inserta una
On Error GoTo Ins
ActiveCell.Offset(-1, 0).Range("A1").Select
Ins:
If Err = 1004 Then
Selection.End(xlUp).Select
Selection.EntireRow.Insert
Cells(ActiveCell.Row, ActiveCell.Column).Select
End If
On Error Resume Next
ActiveCell.Offset(0, -3).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("Primer encabezado, normalmente apellido paterno", "Encabezado", "Ap.Paterno")
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("Segundo encabezado, normalmente apellido materno", "Encabezado", "Ap.Materno")
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("Tercer encabezado, normalmente nombre(s)", "Encabezado", "Nombre(s)")
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
fin:
End Sub
[/code:1:0beedd23d6]
Espero y les funcione a todos, si no avisenme y trataré de corregirlo lo más pronto posible
 
«Antes que cambien los reinos, los hombres deberán cambiar» ═╬═
 
Perfil

ByPaco
Teniente Coronel

Mensajes: 2132
Ingresó: Junio 05, 2004
Ubicación:

Conectado

Agregar como amigo

Arriba
06/Sep/05 10:24

gracias paco

saludos
 
Visiten mi espacio elnidodelseguro.com .mx
 
Perfil

lcgabrielaranda
Mayor

Mensajes: 1191
Ingresó: Mayo 18, 2004
Ubicación:

No Conectado

Agregar como amigo

Arriba
06/Sep/05 10:49

OYE POR OTRO LADO COMO LE HACES PARA PONER EL CODIGO O CUALQUIER COSA Y NO TE SALGA TODO CHUECO

SALUDOS
 
Visiten mi espacio elnidodelseguro.com .mx
 
Perfil

lcgabrielaranda
Mayor

Mensajes: 1191
Ingresó: Mayo 18, 2004
Ubicación:

No Conectado

Agregar como amigo

Arriba
06/Sep/05 10:58

Hola gabriel, cuando le das responder a un mensaje, te aparecen varias herramientas en la parte superior de donde escribes, y una de ellas se llama Code. Selecciono el código y le doy Code

Para más información haz click en la flecha :arrow:
 
«Antes que cambien los reinos, los hombres deberán cambiar» ═╬═
 
Perfil

ByPaco
Teniente Coronel

Mensajes: 2132
Ingresó: Junio 05, 2004
Ubicación:

Conectado

Agregar como amigo

Arriba
06/Sep/05 15:26
Re: SeparaNombres

Gracias Paco.

Saludos!
 
Perfil

bnhs
Soldado

Mensajes: 3
Ingresó: Julio 04, 2005
Ubicación:

No Conectado

Agregar como amigo


Página: 1 2