............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Crear Hoja por cada registro en una tabla

Ver el tema anterior Ver el tema siguiente Ir abajo

Crear Hoja por cada registro en una tabla

Mensaje por BETTYCUES el Vie Oct 19, 2012 9:19 am

Hola

Tengo un ahoja excel con el nombre de una serie de alumnos. Me gustaria crear una hoja por cada linea. EL problema que tengo es que si hay dos alumnos con el mismo nombre, me da error, puesto que no puede haber dos hojas con el mismo nombre.

¿Como podria comprobar si existe el nombre de la hoja?

Mi codigo en Vba es el siguiente:
Código:

Sub Crear_hoja()
Worksheets.Item(1).Select



[a65536].Formula = "=COUNTA(R[-65535]C:R[-1]C)"
For i = 2 To [a65536].Value

Sheets.Add after:=Worksheets(Worksheets.Count)
Worksheets.Item(Worksheets.Count).Name = Worksheets.Item(1).Range("a" & i)
DoEvents
Next
Worksheets.Item(1).Select
[a10000].Clear

End Sub

Muchas gracias a todos y un saludo

BETTYCUES

Femenino Cantidad de envíos : 2
Edad : 33
Ciudad - Pais : españa
Version de Excel : 2010
Fecha de inscripción : 19/10/2012

Volver arriba Ir abajo

Re: Crear Hoja por cada registro en una tabla

Mensaje por icehell el Vie Oct 19, 2012 2:43 pm

Solución para recapacitar
Código:
Sub CreaHojaD()
Worksheets.Item(1).Select
    [a65536].Formula = "=COUNTA(R[-65535]C:R[-1]C)"
On Error GoTo HojaRepetida:
For i = 2 To [a65536].Value
    Sheets.Add After:=Worksheets(Worksheets.Count)
    Worksheets.Item(Worksheets.Count).Name = Worksheets.Item(1).Range("a" & i)
    DoEvents
    Next
Exit Sub
HojaRepetida: MsgBox "El alumno  " & Worksheets.Item(1).Range("a" & i) _
& " ya figura en el archivo", vbExclamation, "AVISO"
Sheets(Sheets.Count).Name = Worksheets.Item(1).Range("a" & i) & "-bis"
Worksheets.Item(1).Select
[a10000].Clear
End Sub
avatar
icehell

Masculino Cantidad de envíos : 64
Edad : 43
Ciudad - Pais : Arrecife
Version de Excel : 2010
Fecha de inscripción : 26/11/2010

http://icehellsoftware.260mb.org/

Volver arriba Ir abajo

Re: Crear Hoja por cada registro en una tabla

Mensaje por BETTYCUES el Lun Oct 22, 2012 6:56 am

Muchas gracias por la respuesta, pero sigo teniendo un pequeño problema.

La idea es que cuando haya dos o mas lineas con el mismo nombre, no me cree una hoja nueva, sino que me añada los datos a la hoja.
Al principio no me explique muy bien, ya lo siento.

Si alguien me puede ayudar se lo agradeceria.

Muchas gracias!!!

BETTYCUES

Femenino Cantidad de envíos : 2
Edad : 33
Ciudad - Pais : españa
Version de Excel : 2010
Fecha de inscripción : 19/10/2012

Volver arriba Ir abajo

Re: Crear Hoja por cada registro en una tabla

Mensaje por moises melgar el Sáb Nov 03, 2012 9:45 pm

Bienvenida BETTYCUES a Excelgali, algo tarde pero seguro, jajaja
Con gusto apoyare a su consulta
Adjunta tu libro, ya que no mencionas que datos se añaden a las Hojas que se repiten
debemos saber que clase de datos se deben agregar.
En este codigo Utilizo la funcion contar.si la cual el rango a contar aumenta de uno en uno (junto al bucle) y cuenta cuantos valores existen de celda (la que corresponda segun el bucle) del rango existente en A.
Al momento en que contar.si es mayor a 1 es por que el valor ya existia en el rango, luego busca la hoja creada con anterioridad y en su rango "A1" coloca cuantos valores existen de la misma.
ADJUNTO EJEMPLO
Código:
Sub CreaHojaD()
For x = 2 To Hoja1.Range("A" & Rows.Count).End(xlUp).Row
    If WorksheetFunction.CountIf(Hoja1.Range("A2:A" & x), Hoja1.Range("A" & x).Value) = 1 And Hoja1.Range("A" & x).Value <> "" Then
    Sheets.Add After:=Worksheets(Worksheets.Count)
    Worksheets(Worksheets.Count).Name = Hoja1.Range("a" & x).Value
    Else:
    Sheets(Hoja1.Range("A" & x).Value).Range("A1").Value = WorksheetFunction.CountIf(Hoja1.Range("A2:A" & x), Hoja1.Range("A" & x).Value)
    End If
Next x
End Sub
Archivos
Crear hojas dependiendo de valor columna.xlsm No tienes los permisos para descargar los archivos.(19 KB) Descargado 24 veces
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 531
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: Crear Hoja por cada registro en una tabla

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.