consulta URGENte!!!

29/09/2006 - 21:56 por Gabriel | Informe spam
buenas tengo datos en varias columnas ejemplo Columna A nombres de empresas
que se repiten en varias filas, en total son 10,0000, en la columna b tengo
nombres de distintas personas que trabajan en una empresa, vale decir si
tengo la empresa papita que se repite en varias filas, de una columna en la
otras los nombres de distintos vendedores, de esa empresa en la otra columna
sus correos, como puedo hacer para dejar todo los nombres y los correos en
una misma fila no se si me dejo entender?
ojala me puedan ayudar
Gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
30/09/2006 - 04:17 | Informe spam
hola, Gabriel !

... Columna A nombres de empresas que se repiten en varias filas, en total son 10,0000
.. columna b ... nombres de distintos vendedores, de esa empresa
en la otra columna sus correos
como... dejar todo los nombres y los correos en una misma fila [...]



el siguiente ejemplo hace lo que solicitas [eso creo]... en una hoja nueva que se agrega al mismo libro -?-
[solo confirma/modifica el nombre de la hoja con los datos de origen]
[opcionalmente, puedes quitar la marca del comentario y primero ordenara el listado en ascendente] -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Sub Empresa_por_fila()
Application.ScreenUpdating = False
Dim Fila As Integer, Celda As Range, Col As Byte
Worksheets.Add
With Worksheets("hoja1")
If .AutoFilterMode Then .Cells.AutoFilter
' .Range("a1").CurrentRegion.Sort _
Key1:=.Range("a1"), Order1:=xlAscending, _
Key2:=.Range("b1"), Order2:=xlAscending, Header:=xlYes
.Columns("a").AdvancedFilter xlFilterCopy, , Range("a1"), True
For Fila = 2 To Range("a" & Rows.Count).End(xlUp).Row
.Range("a1").AutoFilter Field:=1, Criteria1:=Range("a" & Fila)
Col = 2
With .AutoFilter.Range
For Each Celda In .Offset(1).Resize(.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
Celda.Offset(, 1).Resize(, 2).Copy Cells(Fila, Col)
Col = Col + 2
Next
End With
Next
If .AutoFilterMode Then .Cells.AutoFilter
End With
End Sub
Respuesta Responder a este mensaje
#2 Gabriel
30/09/2006 - 16:20 | Informe spam
Funciona! Gracias pero tengo una duda mas como puedo hacer para considerar
mas datos de mas columnas donde tengo que cambiar ojal me puedas ayudar
Gracias

"Héctor Miguel" escribió:

hola, Gabriel !

> ... Columna A nombres de empresas que se repiten en varias filas, en total son 10,0000
> .. columna b ... nombres de distintos vendedores, de esa empresa
> en la otra columna sus correos
> como... dejar todo los nombres y los correos en una misma fila [...]

el siguiente ejemplo hace lo que solicitas [eso creo]... en una hoja nueva que se agrega al mismo libro -?-
[solo confirma/modifica el nombre de la hoja con los datos de origen]
[opcionalmente, puedes quitar la marca del comentario y primero ordenara el listado en ascendente] -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Sub Empresa_por_fila()
Application.ScreenUpdating = False
Dim Fila As Integer, Celda As Range, Col As Byte
Worksheets.Add
With Worksheets("hoja1")
If .AutoFilterMode Then .Cells.AutoFilter
' .Range("a1").CurrentRegion.Sort _
Key1:=.Range("a1"), Order1:=xlAscending, _
Key2:=.Range("b1"), Order2:=xlAscending, Header:=xlYes
.Columns("a").AdvancedFilter xlFilterCopy, , Range("a1"), True
For Fila = 2 To Range("a" & Rows.Count).End(xlUp).Row
.Range("a1").AutoFilter Field:=1, Criteria1:=Range("a" & Fila)
Col = 2
With .AutoFilter.Range
For Each Celda In .Offset(1).Resize(.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
Celda.Offset(, 1).Resize(, 2).Copy Cells(Fila, Col)
Col = Col + 2
Next
End With
Next
If .AutoFilterMode Then .Cells.AutoFilter
End With
End Sub



Respuesta Responder a este mensaje
#3 Gabriel Raigosa
30/09/2006 - 18:12 | Informe spam
Carpeta
Descripción
Dirección

1
** Microsoft Excel *
http://esnips.com/web/GabrielRaigosa

2
Archivos para usar en clase
http://esnips.com/web/RaigosaClase

3
Fechas y Horas
http://esnips.com/web/RaigosaFechasHoras

4
Formato y Formato Condicional
http://esnips.com/web/RaigosaFormatos

5
Foro Excel
http://esnips.com/web/ForoExcel

6
Funciones de Busqueda
http://esnips.com/web/RaigosaBusqueda

7
Funciones de Texto
http://esnips.com/web/RaigosaTexto

8
Funciones Financieras
http://esnips.com/web/RaigosaFinancieras

9
Funciones Logicas
http://esnips.com/web/RaigosaLogicas

10
Graficos con Excel
http://esnips.com/web/RaigosaGraficos

11
Grupo (Sabados)
Privado

12
Grupo (Viernes)
Privado

13
Grupo Excel Septiembre
Privado

14
Juegos con Excel
http://esnips.com/web/RaigosaJuegosExcel

15
Macros con Excel
http://esnips.com/web/Macros-con-Excel

16
Manuales Excel
http://esnips.com/web/RaigosaManuales

17
Paginas WEB
http://esnips.com/web/RaigosaPaginasExcel

18
Practicas - XLS
http://esnips.com/web/RaigosaPracticasXLS

19
Tablas Dinámicas
http://esnips.com/web/RaigosaTablasDinamicas

20
TEST
http://esnips.com/web/GabrielRaigosa-test

21
Validación
http://esnips.com/web/RaigosaValidacion

22
Varios
http://esnips.com/web/RaigosaVarios

23
VBA - Visual Basic para Aplicaciones
http://esnips.com/web/RaigosaVBA



Gabriel Raigosa
http://esnips.com/web/Raigosa
http://esnips.com/web/ForoExcel
"Gabriel" escribió en el mensaje
news:
| buenas tengo datos en varias columnas ejemplo Columna A nombres de
empresas
| que se repiten en varias filas, en total son 10,0000, en la columna b
tengo
| nombres de distintas personas que trabajan en una empresa, vale decir si
| tengo la empresa papita que se repite en varias filas, de una columna en
la
| otras los nombres de distintos vendedores, de esa empresa en la otra
columna
| sus correos, como puedo hacer para dejar todo los nombres y los correos
en
| una misma fila no se si me dejo entender?
| ojala me puedan ayudar
| Gracias
Respuesta Responder a este mensaje
#4 Héctor Miguel
01/10/2006 - 20:37 | Informe spam
hola, Gabriel !

... como puedo hacer para considerar mas datos de mas columnas
donde tengo que cambiar [...]



espero no hacerte 'bolas' con la siguiente [intento de] 'explicacion' :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
=1) hay algunas 'constantes' que fueron consideradas de conformidad con tu consulta original [p.e.]
- la instruccion:-> Col = 2
significa que la primer columna donde se extraen/depositan los datos es la columna 'B'
- la instruccion:-> Celda.Offset(, 1).Resize(, 2).Copy Cells(Fila, Col)
significa que cada 'grupo' de celdas a copiar se amplia a dos columnas: -> Resize(, 2)
- la instruccion:-> Col = Col + 2
significa que 'la siguiente' vez que se copien datos en la misma fila, la 'siguiente' columna sera dos 'despues' del dato anterior

2) [o sea]... la 'constante' que determina el numero de columnas 'con datos' a copiar... es el numero 2 [PERO]...
-> EXCLUYENDO el de la asignacion de la primer columna: -> Col = 2
-> SOLO en las siguientes 'llamadas': -> a) en el Resize(, 'n') y... b) en el Col = Col + 'n'

3) si necesitas conservarlo 'variable' [para no tener que estar modificando en cada llamada individualmente]...
a) agrega una variable en las declaraciones [p.e.] -> Cols_datos As Byte
b) asignale un valor/constante segun las columnas apropiadas [p.e.] -> Cols_datos = 3
c) modifica las llamadas sustituyendo la constante por la variable [p.e.] cambiando...
de: -> Celda.Offset(, 1).Resize(, 2).Copy Cells(Fila, Col)
a: -> Celda.Offset(, 1).Resize(, Cols_datos).Copy Cells(Fila, Col)
de: -> Col = Col + 2
a: -> Col = Col + Cols_datos
Respuesta Responder a este mensaje
#5 Gabriel
28/03/2007 - 02:08 | Informe spam
Hola Hector hace un tiempo me ayudaste con esta consulta mira tengo un
problema la estoy intentando volver a hacer pero tengo problemas, lo que hace
la rutina es agrega la hoja, y de ahi elmina lo que tengo en la consulta a o
a veces me sale un error que dice solo 400, en la primera columna tengo los
numeros de identificacion de las empresas que son codigos unicos, y una vez
que agrega la hoja la ruitina elmina esos codigos te adjunto la rutina que me
enviaste, espero me puedas ayudar
Sub Empresa_por_fila()
Application.ScreenUpdating = False
Dim Fila As Integer, Celda As Range, Col As Byte
Worksheets.Add
With Worksheets("hoja11")
If .AutoFilterMode Then .Cells.AutoFilter
' .Range("a1").CurrentRegion.Sort _
Key1:=.Range("a1"), Order1:=xlAscending, _
Key2:=.Range("b1"), Order2:=xlAscending, Header:=xlYes
.Columns("a").AdvancedFilter xlFilterCopy, , Range("a1"), True
For Fila = 2 To Range("a" & Rows.Count).End(xlUp).Row
.Range("a1").AutoFilter Field:=1, Criteria1:=Range("a" & Fila)
Col = 2
With .AutoFilter.Range
For Each Celda In .Offset(1).Resize(.Rows.Count - 1,
1).SpecialCells(xlCellTypeVisible)
Celda.Offset(, 1).Resize(, 3).Copy Cells(Fila, Col)
Col = Col + 3
Next
End With
Next
If .AutoFilterMode Then .Cells.AutoFilter
End With
End Sub





"Héctor Miguel" escribió:

hola, Gabriel !

> ... como puedo hacer para considerar mas datos de mas columnas
> donde tengo que cambiar [...]

espero no hacerte 'bolas' con la siguiente [intento de] 'explicacion' :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
=> 1) hay algunas 'constantes' que fueron consideradas de conformidad con tu consulta original [p.e.]
- la instruccion:-> Col = 2
significa que la primer columna donde se extraen/depositan los datos es la columna 'B'
- la instruccion:-> Celda.Offset(, 1).Resize(, 2).Copy Cells(Fila, Col)
significa que cada 'grupo' de celdas a copiar se amplia a dos columnas: -> Resize(, 2)
- la instruccion:-> Col = Col + 2
significa que 'la siguiente' vez que se copien datos en la misma fila, la 'siguiente' columna sera dos 'despues' del dato anterior

2) [o sea]... la 'constante' que determina el numero de columnas 'con datos' a copiar... es el numero 2 [PERO]...
-> EXCLUYENDO el de la asignacion de la primer columna: -> Col = 2
-> SOLO en las siguientes 'llamadas': -> a) en el Resize(, 'n') y... b) en el Col = Col + 'n'

3) si necesitas conservarlo 'variable' [para no tener que estar modificando en cada llamada individualmente]...
a) agrega una variable en las declaraciones [p.e.] -> Cols_datos As Byte
b) asignale un valor/constante segun las columnas apropiadas [p.e.] -> Cols_datos = 3
c) modifica las llamadas sustituyendo la constante por la variable [p.e.] cambiando...
de: -> Celda.Offset(, 1).Resize(, 2).Copy Cells(Fila, Col)
a: -> Celda.Offset(, 1).Resize(, Cols_datos).Copy Cells(Fila, Col)
de: -> Col = Col + 2
a: -> Col = Col + Cols_datos



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