Sobre acomodar datos de un fichero pdf

14/12/2008 - 23:12 por Anonimo | Informe spam
Excel 2007

Un saludo, y gracias de antemano.

Tengo una serie de datos traidos de un fichero pdf, y copio los datos en una
hoja, a partir de "a1". Quedando como sigue:

REG. IDENTIFICADOR RAZON SOCIAL/NOMBRE DIRECCION C.P. POBLACION TIPO
NUM.PROV.APREMIO PERIODO IMPORTE
0111 10 39105815637 ABANDOIBARRA CASTRO URDI CL JUAN DE LA COSA 1 39700
CASTRO URDIA 03 39 2008 011727795 0108 0108 1.109,35
0111 10 39104736412 ABSTRACTA DISEÑO Y COMUN CL ARRABAL 25 39003 SANTANDER
02 39 2008 013594239 0308 0308 1.476,89
0111 10 39102287867 ADMINISTRADORA PUBS DE C AV MAURA 1 39005 SANTANDER 03
39 2008 011650805 0108 0108 2.057,10
0111 10 39102422152 AGENJO SAN JOSE PEDRO CL EMILIO PINO 6 39002 SANTANDER
03 39 2008 011652724 0108 0108 336,24
0111 10 39004642040 AIZPEOLEA ITURBE JUAN JO CL LA PAZ 14 39350 HINOJEDO 03
39 2008 012635353 0208 0208 819,73
0111 10 39103653547 AL MADINA S.C. CL SANTA LUCIA 46 39003 SANTANDER 03 39
2008 011668282 0108 0108 112,20
0111 10 39105440569 ALBA CARRILLO FRANCISCO CL PLAYA DE MIOÑO 10 39706 MIOÑO
03 39 2008 012715377 0208 0208 557,66
0111 10 39104943647 ALBAñILERIA JUAN ORLANDO CL TRES DE NOVIEMBRE 39010
SANTANDER 03 39 2008 012698809 0208 0208 3.958,15
0111 10 39105045600 ALCANTARILLA PEÑA SONIA CL JUAN DE HERRERA 4 39540 SAN
VICENTE 03 39 2008 012701536 0208 0208 340,01
0111 10 39105772490 ALIFERSAN CANTABRIA, S.L CL MENENDEZ PELAYO 8 39600
MALIAÑO 03 39 2008 011725573 0108 0108 477,90
0111 10 39105772490 ALIFERSAN CANTABRIA, S.L CL MENENDEZ PELAYO 8 39600
MALIAÑO 02 39 2008 012728919 0208 0208 984,58
0111 10 39106186459 ALONSO ORTEGA JOSE LUIS CL RESPUELA 4 39100 SANTA CRUZ D
03 39 2008 012753773 0208 0208 2.306,90
0111 10 39103146117 ALQUILERES SAN CAMILO, S AV BURGOS 27 39600 MURIEDAS CA
03 39 2008 011661212 0108 0108 3.163,40
0111 10 39105285369 ALTAMIRA TELEVISION S.L. LG URBANIZACION LA Z 39600
MURIEDAS CA 03 39 2008 011707890 0108 0108 388,92
0111 10 39105843121 ARAUCO ADAN PEDRO BO LOS URROS 21 39716 HORNEDO 03 39
2008 011728607 0108 0108 1.377,76
0111 10 39105289716 ARCE GARCIA JOSE ANTONIO CL DEL MONTE 20 39006 SANTANDER
03 39 2008 011708294 0108 0108 676,67
0111 10 39102882702 ARCE RECIO LUISA MARIA PL LA CONSTITUCION, 39600 MALIAÑO
03 39 2008 011658582 0108 0108 309,35
0111 10 39105481692 ARCETRUKS SOCIEDAD LIMIT CL POLIGONO INDUSTRI 39500
CABEZON DE L 03 39 2008 011714358 0108 0108 1.485,13
0111 10 39101019490 ASOCIACION GITANA DE EMP CL CARDENAL HERRERA 39011
SANTANDER 02 39 2007 010080133 1006 1006 12.255,42
0111 10 39101019490 ASOCIACION GITANA DE EMP CL CARDENAL HERRERA 39011
SANTANDER 02 39 2007 010787223 1106 1106 10.657,36
0111 10 39101019490 ASOCIACION GITANA DE EMP CL CARDENAL HERRERA 39011
SANTANDER 02 39 2007 011015373 1206 1206 10.628,81
0111 10 39101019490 ASOCIACION GITANA DE EMP CL CARDENAL HERRERA 39011
SANTANDER 02 39 2008 011639586 0108 0108 5.068,33
0111 10 39101019490 ASOCIACION GITANA DE EMP CL CARDENAL HERRERA 39011
SANTANDER 02 39 2008 012644447 0208 0208 2.618,51
0111 10 39104047005 ASTUR CANTABRA DE CONTRA BO LA COTERONA 39520 COMILLAS
03 39 2008 011674447 0108 0108 480,35


Una vez tengo los datos importados en la Hoja1, separo los datos en columnas
a traves de espacios. Entonces me quedan los datos separados en columnas.
Algunos datos ocupan 11 columnas, otros 22, otros 23, y asi dependiendo de
cada una de los 1600 datos aproximadamente.

Lo que yo quiero es utilizar los datos como en una base de datos, es decir
que en la columna A,B,C,D,E,F,G

REG. IDENTIFICADOR RAZON SOCIAL/NOMBRE DIRECCION C.P. POBLACION TIPO NUM.
PROV.APREMIO PERIODO IMPORTE

A B C
D E F G H
I JyK L



He intentado por todos mis medios y gracias a las enseñanzas de Hector
Miguel intentarlo yo solo, pero en fin, ya creo que es imposible que solo
pueda resolverlo.

Otra de los dudas que me surgen es como saber si hacer un bucle cuantas
columnas tienen datos en cada una de las filas del rango total

Se hacerlo asi:

Public Sub DATOS()

'RANGO DE DATOS ES DE A1:W1637

Application.ScreenUpdating = False

Set rang = Sheets("datos").Range("a1:w1603")
ultfila = Cells(Rows.Count, "A").End(xlUp).Row

ulticolumna = Cells(rang.Rows.Count,
rang.Columns.Count).End(xlToLeft).Column

For Each ran In rang

ulticolm = Cells((Range(ran.Address).Row),
rang.Columns.Count).End(xlToLeft).Column
Cells((Range(ran.Address).Row), 30) = ulticolm

Next ran


Debug.Print matri(2)
Application.ScreenUpdating = True



End Sub

Bueno, a ver si algun alma caritativa me hecha una mano. Gracias
 

Leer las respuestas

#1 Héctor Miguel
15/12/2008 - 03:59 | Informe spam
hola, !

en los datos que expones no se puede apreciar algun "patron" que sirva de ayuda (a excel) para separar "correctamente" (p.e.)
- como determinar donde termina razon social/nombre y comienza la direccion ?
- algunas direcciones traen numero (otras no) -???-
- como saber si el "10" (primero) es parte del "REG." o del "IDENTIFICADOR" ?
- igualmente, cual seria el contenido esperado de los campos: "TIPO NUM.PROV.APREMIO PERIODO" ?
- puedes acercar (o reducir) las posibles longitudes (o patrones) de cada separacion ?

saludos,
hector.

Preguntas similares