repetir un campo un número de veces

30/03/2007 - 15:14 por Susana | Informe spam
Hola,

Tengo una base de datos con nombres de calles y el numero inicial y final.
CALLE Desde Hasta
Abedul 1 43

Quiero generar una base de datos que me repita el nombre de la calle tantas
veces como números tenga la calle (en este caso 1,3,543)

Alguien tiene alguna idea?

Gracias,

Susana

Preguntas similare

Leer las respuestas

#6 Susana
01/04/2007 - 11:50 | Informe spam
Hola Héctor,

Me da error cuando la calle tiene sólo un número o dos. No tengo celdas
vacías y las que no tenían número (0) no las tengo incluidas.

CALLE DESDE HASTA
Acero 1 3
Abedul 2 4
Manzano 1 1

Si elimino estos casos, la macro funciona perfectamente. De todas formas no
se para justo cuando llega a estos casos, si no en el anterior que si que
contiene más de 2 números.

Con esto ya me apaño, las que no me lee no pasa nada ya que las puedo meter
despúes. No te quiero incordiar más, esto ha sido ya de mucha ayuda. Muchas
gracias.

Saludos,

Susana


"Héctor Miguel" escribió:

hola, Susana !

> ... se para despues de tres calles y me da un error:
> "Se ha producido el error 1004 en tiempo de ejecucion:
> Error en el metodo de AutoFill de la clase Range"
> Y me se#ala:
> .Offset(, 1).Resize(2).AutoFill _
>> Destination:=.Offset(, 1).Resize(n)
> Sabes que puede ser? El caso es que hasta ese punto lo hace bien.

- cual es el rango de numeros [desde y hasta] donde se presenta la falla ?
- se trata de celdas en blanco, vacias, ???

comentas algun detalle mas... 'significativo' ?
saludos,
hector.



Respuesta Responder a este mensaje
#7 Susana
01/04/2007 - 12:02 | Informe spam
Hola Francisco,

Muchas gracias por el código. Lo he probado y funciona bien. Lo único que no
me diferencia entre pares y nones. Creo que modificando la formula de contar
para que no me vaya sumando un número si no dos funcione.

Gracias por tu ayuda.

Saludos,

Susana

"Francisco Parrilla" escribió:

Prueba este codigo tal cual en un libro nuevo, s decir lo copias y pegas en un modulo normal como se muestra

Nota:
Para esto en la hoja2 pon un encabezado en A1 que diga "CALLES" si no lo haces marcara error.

Saludos


'Ojo esto dejalo fuera de las sub rutinas
Dim micalle, ini, fin
Dim filasH2, filasH1

Sub calles()
Sheets(1).Select
Range("A2").Select
i = 2
ActiveSheet.UsedRange.Select
filasH1 = Selection.Rows.Count
Do Until i > filasH1
Cells(i, 1).Select
micalle = ActiveCell.Value
ini = ActiveCell.Offset(0, 1).Value
fin = ActiveCell.Offset(0, 2).Value
Call numeracion
Sheets(1).Select
i = i + 1
Loop
End Sub


Sub numeracion()
Sheets(2).Select
For i = ini To fin
ActiveSheet.UsedRange.Select
filasH2 = Selection.Rows.Count
Cells(filasH2 + 1, 1).Select
ActiveCell.Value = micalle
ActiveCell.Offset(0, 1).Value = i
Next i
End Sub







"Susana" escribió en el mensaje news:
> Hola,
>
> Tengo una base de datos con nombres de calles y el numero inicial y final.
> CALLE Desde Hasta
> Abedul 1 43
>
> Quiero generar una base de datos que me repita el nombre de la calle tantas
> veces como números tenga la calle (en este caso 1,3,543)
>
> Alguien tiene alguna idea?
>
> Gracias,
>
> Susana

Respuesta Responder a este mensaje
#8 Francisco Parrilla
01/04/2007 - 12:35 | Informe spam
Podrias colocar aqui los numeros donde indicas que no distingue, asi al
menos podria darme una mejor idea a que te refieres.

saludos

Francisco Parrilla
Operador de Sistemas
Comunidad:
http://groups.msn.com/ExcelVbaMacrosOffice
Ayuda y Soporte:
http://support.microsoft.com/search/?adv=1



"Susana" escribió en el mensaje
news:
Hola Francisco,

Muchas gracias por el código. Lo he probado y funciona bien. Lo único que


no
me diferencia entre pares y nones. Creo que modificando la formula de


contar
para que no me vaya sumando un número si no dos funcione.

Gracias por tu ayuda.

Saludos,

Susana

"Francisco Parrilla" escribió:

> Prueba este codigo tal cual en un libro nuevo, s decir lo copias y pegas


en un modulo normal como se muestra
>
> Nota:
> Para esto en la hoja2 pon un encabezado en A1 que diga "CALLES" si no lo


haces marcara error.
>
> Saludos
>
>
> 'Ojo esto dejalo fuera de las sub rutinas
> Dim micalle, ini, fin
> Dim filasH2, filasH1
>
> Sub calles()
> Sheets(1).Select
> Range("A2").Select
> i = 2
> ActiveSheet.UsedRange.Select
> filasH1 = Selection.Rows.Count
> Do Until i > filasH1
> Cells(i, 1).Select
> micalle = ActiveCell.Value
> ini = ActiveCell.Offset(0, 1).Value
> fin = ActiveCell.Offset(0, 2).Value
> Call numeracion
> Sheets(1).Select
> i = i + 1
> Loop
> End Sub
>
>
> Sub numeracion()
> Sheets(2).Select
> For i = ini To fin
> ActiveSheet.UsedRange.Select
> filasH2 = Selection.Rows.Count
> Cells(filasH2 + 1, 1).Select
> ActiveCell.Value = micalle
> ActiveCell.Offset(0, 1).Value = i
> Next i
> End Sub
>
>
>
>
>
>
>
> "Susana" escribió en el mensaje


news:
> > Hola,
> >
> > Tengo una base de datos con nombres de calles y el numero inicial y


final.
> > CALLE Desde Hasta
> > Abedul 1 43
> >
> > Quiero generar una base de datos que me repita el nombre de la calle


tantas
> > veces como números tenga la calle (en este caso 1,3,543)
> >
> > Alguien tiene alguna idea?
> >
> > Gracias,
> >
> > Susana
>
Respuesta Responder a este mensaje
#9 Héctor Miguel
02/04/2007 - 02:48 | Informe spam
hola, Susana !

Me da error cuando la calle tiene solo un numero o dos...
CALLE DESDE HASTA
Acero 1 3
Abedul 2 4
Manzano 1 1
Si elimino estos casos, la macro funciona perfectamente...



'suena' logico [y es de los 'detalles' que se quedan 'en el tintero'] :D
- cuando no hay mas de un numero, no tiene sentido incrementar la 'secuencia' [sean pares o nones]
- cuando no hay mas de dos numeros, no tiene sentido hacerle un 'auto-relleno' :))

prueba con las siguientes 'adaptaciones':

Sub Genera_domicilios()
Dim Fila As Long, n As Integer
For Fila = 2 To Range("a65536").End(xlUp).Row
n = (Range("c" & Fila) - Range("b" & Fila)) / 2 + 1
With Worksheets("hoja2").Range("a65536").End(xlUp).Offset(1)
.Offset(, 1) = Range("b" & Fila)
If n > 1 Then .Offset(1, 1) = Range("b" & Fila) + 2
If n > 2 Then .Offset(, 1).Resize(2).AutoFill .Offset(, 1).Resize(n)
.Resize(n) = Range("a" & Fila)
End With
Next
End Sub

[obviamente] si tampoco existe un numero 'inicial'... apareceran tambien 'errores' :-((

saludos,
hector.
Respuesta Responder a este mensaje
#10 Susana
03/04/2007 - 15:46 | Informe spam
Hola Héctor!
Pues ha funcionado bien! no me ha dado error pero me he quedado sin hoja de
cálculo jaja! muy bueno, muy bueno. Mil gracias.

Un saludo,

Susana

"Héctor Miguel" escribió:

hola, Susana !

> Me da error cuando la calle tiene solo un numero o dos...
> CALLE DESDE HASTA
> Acero 1 3
> Abedul 2 4
> Manzano 1 1
> Si elimino estos casos, la macro funciona perfectamente...

'suena' logico [y es de los 'detalles' que se quedan 'en el tintero'] :D
- cuando no hay mas de un numero, no tiene sentido incrementar la 'secuencia' [sean pares o nones]
- cuando no hay mas de dos numeros, no tiene sentido hacerle un 'auto-relleno' :))

prueba con las siguientes 'adaptaciones':

Sub Genera_domicilios()
Dim Fila As Long, n As Integer
For Fila = 2 To Range("a65536").End(xlUp).Row
n = (Range("c" & Fila) - Range("b" & Fila)) / 2 + 1
With Worksheets("hoja2").Range("a65536").End(xlUp).Offset(1)
.Offset(, 1) = Range("b" & Fila)
If n > 1 Then .Offset(1, 1) = Range("b" & Fila) + 2
If n > 2 Then .Offset(, 1).Resize(2).AutoFill .Offset(, 1).Resize(n)
.Resize(n) = Range("a" & Fila)
End With
Next
End Sub

[obviamente] si tampoco existe un numero 'inicial'... apareceran tambien 'errores' :-((

saludos,
hector.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida