Crear una base de datos

23/03/2009 - 18:29 por José Rafael | Informe spam
Necesito crear una base de datos en la hoja "Base" de un libro excel llamado
"Carpinterias", cuya hoja1 contiene en la columna A:A la lista de nombres de
pueblos que corresponde exactamente a las hojas o pestañas restantes del
libro.
Al abrir cada hoja o pestaña (que corresponde al nombre del pueblo), el dato
de la carpinteria o carpinterias se encuentran en las cuatro primeras filas
de cada columna, es decir: A1=Nombre; A2=Dirección; A3=Población; A4=
teléfono.
Si hubiera mas de una carpinteria en ese pueblo (hoja) la siguiente
carpinteria estaría en la columna B y así sucesivamente, la tercera en la
columna C, etc...
Sería de agradecer un código que vaya recorriendo todas las hojas y
escribiendo en la hoja "Base" (x filas en horizontal) los 4 datos que
figuran en las cuatro primeras filas de cada columna empezando por la
columna A y "recorriera" la siguiente columna B por si hubiera mas datos y
asi sucesivamente hasta que no encontrara mas datos y entonces pasara a la
siguiente hoja.
El objetivo es tener los datos agrupados en una sola hoja llamada "Base".
Ideal es tener un botón asociado al código VBA, en la hoja "Base" que ponga
en marcha la macro.
Tengo 5 libros distintos por provincias y de ellos, hay libros que pueden
tener 100 o mas hojas y en cada una de ellas al menos una carpinteria
(columna A, cuatro primeras filas).
Saludos
José Rafael de Valencia (España)

Preguntas similare

Leer las respuestas

#1 pepe
23/03/2009 - 19:16 | Informe spam
Creo que te complicas. el planteamiento de la solución es incorrecta (o eso
creo). Lee la respuesta que le he dado a la consulta 'todas las hojas de un
libro'.


"José Rafael" escribió en el mensaje de noticias
news:
Necesito crear una base de datos en la hoja "Base" de un libro excel
llamado "Carpinterias", cuya hoja1 contiene en la columna A:A la lista de
nombres de pueblos que corresponde exactamente a las hojas o pestañas
restantes del libro.
Al abrir cada hoja o pestaña (que corresponde al nombre del pueblo), el
dato de la carpinteria o carpinterias se encuentran en las cuatro primeras
filas de cada columna, es decir: A1=Nombre; A2=Dirección; A3=Población;
A4= teléfono.
Si hubiera mas de una carpinteria en ese pueblo (hoja) la siguiente
carpinteria estaría en la columna B y así sucesivamente, la tercera en la
columna C, etc...
Sería de agradecer un código que vaya recorriendo todas las hojas y
escribiendo en la hoja "Base" (x filas en horizontal) los 4 datos que
figuran en las cuatro primeras filas de cada columna empezando por la
columna A y "recorriera" la siguiente columna B por si hubiera mas datos y
asi sucesivamente hasta que no encontrara mas datos y entonces pasara a la
siguiente hoja.
El objetivo es tener los datos agrupados en una sola hoja llamada "Base".
Ideal es tener un botón asociado al código VBA, en la hoja "Base" que
ponga en marcha la macro.
Tengo 5 libros distintos por provincias y de ellos, hay libros que pueden
tener 100 o mas hojas y en cada una de ellas al menos una carpinteria
(columna A, cuatro primeras filas).
Saludos
José Rafael de Valencia (España)

Respuesta Responder a este mensaje
#2 Héctor Miguel
24/03/2009 - 03:24 | Informe spam
hola, José Rafael !

asegurate que la hoja ("base" ?) para tu resumen sea la primera en el orden/indice de hojas en ese libro
y prueba con una macro +/- como la siguiente (ya decidiras si la asignas a algun objeto/atajo/...)

Sub Carpinterias()
Dim n As Byte, Col As Byte, Carp As Byte
Application.ScreenUpdating = False
For n = 2 To Worksheets.Count
With Worksheets(n)
For Col = 1 To .Range("iv1").End(xlToLeft).Column
Carp = Carp + 1
Cells(1, Carp).Resize(4).Value = .Cells(1, Col).Resize(4).Value
Next
End With
Next
End Sub

saludos,
hector.

__ OP __
Necesito crear una base de datos en la hoja "Base" de un libro excel llamado "Carpinterias"
cuya hoja1 contiene en la columna A:A la lista de nombres de pueblos
que corresponde exactamente a las hojas o pestanas restantes del libro.
Al abrir cada hoja o pestana... el dato de la carpinteria o carpinterias
se encuentran en las cuatro primeras filas de cada columna
es decir: A1=Nombre; A2=Direccion; A3=Poblacion; A4=telefono.
Si hubiera mas de una carpinteria en ese pueblo (hoja)
la siguiente carpinteria estaria en la columna B y asi sucesivamente ...
... codigo que vaya recorriendo todas las hojas y escribiendo en la hoja "Base" (x filas en horizontal)
los 4 datos que figuran en las cuatro primeras filas de cada columna empezando por la columna A
y "recorriera" la siguiente columna B por si hubiera mas datos y asi sucesivamente hasta... siguiente hoja...
Respuesta Responder a este mensaje
#3 José Rafael
24/03/2009 - 13:23 | Informe spam
Hola Héctor:
He probado la macro y funciona pero me coloca los datos en la hoja "base"
columna a columna, en las cuatro filas como están en cada hoja sucesiva del
libro y lo que yo quiero es que me coloque los cuatro datos en columnas
sucesivas de la hoja "base", es decir "transpuestos" y que cada fila
corresponda a una carpinteria. Así:
Ramirez Perez, A. C/ Maisonave, 42 46000 - Alacuas (VALENCIA)
Telefono: 909999099

Espero me haya podido explicar...
Saludos
José Rafael




"Héctor Miguel" escribió en el mensaje
news:
hola, José Rafael !

asegurate que la hoja ("base" ?) para tu resumen sea la primera en el
orden/indice de hojas en ese libro
y prueba con una macro +/- como la siguiente (ya decidiras si la asignas a
algun objeto/atajo/...)

Sub Carpinterias()
Dim n As Byte, Col As Byte, Carp As Byte
Application.ScreenUpdating = False
For n = 2 To Worksheets.Count
With Worksheets(n)
For Col = 1 To .Range("iv1").End(xlToLeft).Column
Carp = Carp + 1
Cells(1, Carp).Resize(4).Value = .Cells(1, Col).Resize(4).Value
Next
End With
Next
End Sub

saludos,
hector.

__ OP __
Necesito crear una base de datos en la hoja "Base" de un libro excel
llamado "Carpinterias"
cuya hoja1 contiene en la columna A:A la lista de nombres de pueblos
que corresponde exactamente a las hojas o pestanas restantes del libro.
Al abrir cada hoja o pestana... el dato de la carpinteria o carpinterias
se encuentran en las cuatro primeras filas de cada columna
es decir: A1=Nombre; A2=Direccion; A3=Poblacion; A4=telefono.
Si hubiera mas de una carpinteria en ese pueblo (hoja)
la siguiente carpinteria estaria en la columna B y asi sucesivamente ...
... codigo que vaya recorriendo todas las hojas y escribiendo en la hoja
"Base" (x filas en horizontal)
los 4 datos que figuran en las cuatro primeras filas de cada columna
empezando por la columna A
y "recorriera" la siguiente columna B por si hubiera mas datos y asi
sucesivamente hasta... siguiente hoja...




Respuesta Responder a este mensaje
#4 Héctor Miguel
25/03/2009 - 02:38 | Informe spam
ola, José Rafael !

He probado la macro y funciona pero me coloca los datos en la hoja "base" columna a columna
en las cuatro filas como estan en cada hoja sucesiva del libro y lo que yo quiero es
que me coloque los cuatro datos en columnas sucesivas de la hoja "base", es decir "transpuestos"
y que cada fila corresponda a una carpinteria. Asi:
Ramirez Perez, A. C/ Maisonave, 42 46000 - Alacuas (VALENCIA) Telefono: 909999099



solo cambia del codigo anteiror
esta parte:

Carp = Carp + 1
Cells(1, Carp).Resize(4).Value = .Cells(1, Col).Resize(4).Value

por esta otra:

Carp = Carp + 1
Cells(Carp, 1).Resize(, 4).Value = .Cells(1, Col).Resize(4).Value

saludos,
hector.
Respuesta Responder a este mensaje
#5 José Rafael
25/03/2009 - 11:57 | Informe spam
Hola Héctor:
Los datos de cada hoja del libro son por columnas: Fila 1 = Nombre, filas 2=
Dirección, Fila 3 = Población, Fila 4= Teléfono.
Con el cambio propuesto me escribe en sucesivas filas horizontales el primer
dato de cada carpinteria (Fila 1) en las cuatro columnas. A,B,C y D
Lo que necesito es que el segundo dato (Fila 2) me lo ponga en la columna B,
el tercero (Fila 3) en la C y el cuarto (Fila 4) en la D. > (Todos en la
misma fila del la hoja "base") y así sucesivamente por filas ...
Sé que debe ser muy fácil, pero no sé hacerlo. Disculpas y gracias por tu
ayuda.

Jose Rafael


"Héctor Miguel" escribió en el mensaje
news:
ola, José Rafael !

He probado la macro y funciona pero me coloca los datos en la hoja "base"
columna a columna
en las cuatro filas como estan en cada hoja sucesiva del libro y lo que
yo quiero es
que me coloque los cuatro datos en columnas sucesivas de la hoja "base",
es decir "transpuestos"
y que cada fila corresponda a una carpinteria. Asi:
Ramirez Perez, A. C/ Maisonave, 42 46000 - Alacuas (VALENCIA)
Telefono: 909999099



solo cambia del codigo anteiror
esta parte:

Carp = Carp + 1
Cells(1, Carp).Resize(4).Value = .Cells(1, Col).Resize(4).Value

por esta otra:

Carp = Carp + 1
Cells(Carp, 1).Resize(, 4).Value = .Cells(1, Col).Resize(4).Value

saludos,
hector.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida