Yo de nuevo... ayuda con otra macro o funcion ya ni se :-(

27/11/2004 - 17:06 por Marcos Galaviz | Informe spam
Hola a todos miren ya me ayudaron con muchas cosas espero no causar
molestias o lastimas :-(, ahora lo que necesito es que me liste todos los
registros que ya tienen factura y las que no, en hojas nuevas y una hoja
para cada uno ¿como podria hacerlo?, este es un ejemplo de la hoja de
datos...:

referencia pedimento pago nombre no_factura usuari21
1 4001258 10/11/2004 clientes 1 Castillo Sanchez
2 4001264 12/11/2004 clientes 2 Castillo Sanchez
3 4001269 17/11/2004 clientes 3 Castillo Sanchez
4 4000378 22/11/2004 clientes Castillo Sanchez
5 4001268 23/11/2004 clientes Castillo Sanchez
6 4001450 25/11/2004 clientes Castillo Sanchez
7 4001449 25/11/2004 clientes 4 Castillo Sanchez
8 4001451 25/11/2004 clientes 5 Castillo Sanchez
9 4001274 26/11/2004 clientes Castillo Sanchez
10 4001388 19/11/2004 clientes Cruz Trejo
11 4000461 19/11/2004 clientes Cruz Trejo
12 4001391 22/11/2004 clientes 7 Cruz Trejo
13 4001392 24/11/2004 clientes Cruz Trejo
14 4000462 24/11/2004 clientes 8 Cruz Trejo
15 4000463 24/11/2004 clientes 9 Cruz Trejo
16 4000570 24/11/2004 clientes Cruz Trejo
17 4000464 24/11/2004 clientes 10 Cruz Trejo
18 4001393 25/11/2004 clientes Cruz Trejo
19 4000571 26/11/2004 clientes 11 Cruz Trejo
20 4000572 26/11/2004 clientes 12 Cruz Trejo
21 4000573 26/11/2004 clientes 13 Cruz Trejo
22 4000574 26/11/2004 clientes 14 Cruz Trejo
23 4001466 27/11/2004 clientes Cruz Trejo
24 4001465 27/11/2004 clientes Cruz Trejo
25 4001001 19/11/2004 clientes 15 Del Angel Milan
26 4001004 19/11/2004 clientes 16 Del Angel Milan
27 4001002 19/11/2004 clientes Del Angel Milan
28 4000473 19/11/2004 clientes Del Angel Milan
29 4001003 24/11/2004 clientes Del Angel Milan
30 4001016 24/11/2004 clientes Del Angel Milan
31 4001022 24/11/2004 clientes Del Angel Milan
32 4001029 24/11/2004 clientes 17 Del Angel Milan
33 4001006 25/11/2004 clientes 18 Del Angel Milan
34 4001005 25/11/2004 clientes Del Angel Milan
35 4000501 10/11/2004 clientes Luna Gama
36 4000502 10/11/2004 clientes Luna Gama
37 4000510 10/11/2004 clientes Luna Gama
38 4001279 23/11/2004 clientes Luna Gama
39 4001280 23/11/2004 clientes Luna Gama
40 4001282 23/11/2004 clientes Luna Gama
41 4000515 23/11/2004 clientes Luna Gama
42 4000493 09/11/2004 clientes 20 Resendiz
Dorantes

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
28/11/2004 - 04:29 | Informe spam
hola, Marcos !

... que me liste todos los registros que ya tienen factura y las que no
... en hojas nuevas y una hoja para cada uno ¿como podria hacerlo? [...]



podrias usar macros o filtros avanzados con la opcion de copiar a otro lugar
[incluso, lo de los filtros avanzados pudiera ser por macros o... 'a pie']
solo dos preguntas...
1.- cuando dices 'una hoja para cada uno'... ¿te refieres a...?
a) 1 hoja para cada usuario [incluyendo los facturados y los no facturados]
[si este fuera el caso... 'revueltos'? o... 'aparte' con alguna 'separacion'?
b) 2 hojas por cada usuario [una por los facturados y otra los no facturados]
2.- ¿confirmas que SIEMPRE sera un rango de 6 columnas n_filas [desde 'A1']
y que la primer fila son los rotulos y los datos inician en la fila 2?

¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Marcos Galaviz
30/11/2004 - 18:09 | Informe spam
Hector muchas gracias por responder y disculpa la tardanza en contestarte
pero no habia estado ...En realidad a lo que me refiero es que quiero una
hoja por todos los facturados y otra para los YA facturados para tener
separados los que ya estan de los que no ademas estando ahi, lo que quiero
es que una vez separados los ordene por ejecutivo y por fecha, digo esto lo
hago cada rato de forma manual pero estoy seguro lo puedo hacer de una forma
mas "automatica" digamos.

Agradezco muchisimo tu ayuda e interes y claro el de cualquier otra persona
que me auxilie..

Buen dia



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

... que me liste todos los registros que ya tienen factura y las que no
... en hojas nuevas y una hoja para cada uno ¿como podria hacerlo? [...]



podrias usar macros o filtros avanzados con la opcion de copiar a otro
lugar
[incluso, lo de los filtros avanzados pudiera ser por macros o... 'a pie']
solo dos preguntas...
1.- cuando dices 'una hoja para cada uno'... ¿te refieres a...?
a) 1 hoja para cada usuario [incluyendo los facturados y los no
facturados]
[si este fuera el caso... 'revueltos'? o... 'aparte' con alguna
'separacion'?
b) 2 hojas por cada usuario [una por los facturados y otra los no
facturados]
2.- ¿confirmas que SIEMPRE sera un rango de 6 columnas n_filas [desde
'A1']
y que la primer fila son los rotulos y los datos inician en la fila 2?

¿comentas?
saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
01/12/2004 - 09:25 | Informe spam
hola, Marcos !

... quiero una hoja por todos los facturados y otra para los YA facturados
... que ... los ordene por ejecutivo y por fecha [...]



[creo que] el codigo de al final +/- hace lo que necesitas ;) 'mis' SUPUESTOS son...
=> asignale un nombre al listado [digamos] 'BaseDatos' ->incluyendo los titulos<-
1.- el nombre de la hoja y el nombre del rango [en las variables 'constantes' publicas]
2.- el orden de las columnas [para el sorteo de los datos y 'el resto'] es SIEMPRE...
la columna con los nombres es ... la ultima
la columna de la factura es ... la penultima
la columna con las fechae es... 3 ANTES de 'la ultima'
3.- el codigo 'genera' 2 hojas [en caso de que no existan] ->hay dos variables CON matriz<-
-> la variable 'Hoja' = 'Facturado' y 'Pendiente'
-> la variable 'Cond' [son las condiciones para 'filtrar' CON o SIN facturas
=> si las hojas 'ya existen... 'simplemente' ->actualiza<- los datos 'filtrados'

bueno... haz la prueba y... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Public Const Base As String = "Hoja1"
Public Const Datos As String = "BaseDatos"
Sub Filtrar_Facturados(): Application.ScreenUpdating = False
Dim Col As String, Fila As Byte, ColsBD As Byte, Sig As Byte, _
Hoja As Variant, Cond As Variant
Hoja = Array("Facturado", "Pendiente")
Cond = Array(">0", "=""""")
With Worksheets(Base)
With .Range(Datos)
Fila = .Row: ColsBD = .Columns.Count
Col = .Offset(, .Columns.Count - 2).Resize(1, 1).Address
Col = Mid(Col, 2, InStr(2, Col, "$") - 2)
End With
For Sig = LBound(Hoja) To UBound(Hoja)
If Not ExisteLaHoja(Hoja(Sig)) Then
With Worksheets.Add(After:=Worksheets(Worksheets.Count))
.Name = Hoja(Sig)
End With
End If
With Worksheets(Hoja(Sig))
With Worksheets(Base).Range(Col & Fila)
.Offset(1, 3).Formula = "=" & .Offset(1).Address(0, 0) & Cond(Sig)
End With
Worksheets(Base).Range(Datos).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Worksheets(Base).Range(Col & Fila).Offset(, 3).Resize(2), _
CopyToRange:=.Range("a1").Resize(, ColsBD), _
Unique:=False
With .UsedRange
.Columns.AutoFit
.Sort _
Key1:=.Cells(1, .Columns.Count), _
Order1:=xlAscending, _
Key2:=.Cells(1, .Columns.Count - 3), _
Order2:=xlAscending, _
Header:=xlGuess
End With
End With
Next
.Select: Range(Col & Fila).Offset(, 3).Resize(2, 1).ClearContents
End With
End Sub
Private Function ExisteLaHoja(ByVal NombreHoja As String) As Boolean
Dim Hoja As Object: On Error Resume Next: Set Hoja = Sheets(NombreHoja)
ExisteLaHoja = Not Hoja Is Nothing: Set Hoja = Nothing
End Function
Respuesta Responder a este mensaje
#4 Marcos Galaviz
01/12/2004 - 16:58 | Informe spam
Ujule de plano si estoy matado pero ¿a que le llamas un modulo de "codigo
normal"??

Perdon por tanta lata :-(

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

... quiero una hoja por todos los facturados y otra para los YA
facturados
... que ... los ordene por ejecutivo y por fecha [...]



[creo que] el codigo de al final +/- hace lo que necesitas ;) 'mis'
SUPUESTOS son...
=> asignale un nombre al listado [digamos] 'BaseDatos' ->incluyendo los
titulos<-
1.- el nombre de la hoja y el nombre del rango [en las variables
'constantes' publicas]
2.- el orden de las columnas [para el sorteo de los datos y 'el resto'] es
SIEMPRE...
la columna con los nombres es ... la ultima
la columna de la factura es ... la penultima
la columna con las fechae es... 3 ANTES de 'la ultima'
3.- el codigo 'genera' 2 hojas [en caso de que no existan] ->hay dos
variables CON matriz<-
-> la variable 'Hoja' = 'Facturado' y 'Pendiente'
-> la variable 'Cond' [son las condiciones para 'filtrar' CON o SIN
facturas
=> si las hojas 'ya existen... 'simplemente' ->actualiza<- los datos
'filtrados'

bueno... haz la prueba y... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==> Public Const Base As String = "Hoja1"
Public Const Datos As String = "BaseDatos"
Sub Filtrar_Facturados(): Application.ScreenUpdating = False
Dim Col As String, Fila As Byte, ColsBD As Byte, Sig As Byte, _
Hoja As Variant, Cond As Variant
Hoja = Array("Facturado", "Pendiente")
Cond = Array(">0", "=""""")
With Worksheets(Base)
With .Range(Datos)
Fila = .Row: ColsBD = .Columns.Count
Col = .Offset(, .Columns.Count - 2).Resize(1, 1).Address
Col = Mid(Col, 2, InStr(2, Col, "$") - 2)
End With
For Sig = LBound(Hoja) To UBound(Hoja)
If Not ExisteLaHoja(Hoja(Sig)) Then
With Worksheets.Add(After:=Worksheets(Worksheets.Count))
.Name = Hoja(Sig)
End With
End If
With Worksheets(Hoja(Sig))
With Worksheets(Base).Range(Col & Fila)
.Offset(1, 3).Formula = "=" & .Offset(1).Address(0, 0) &
Cond(Sig)
End With
Worksheets(Base).Range(Datos).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Worksheets(Base).Range(Col & Fila).Offset(,
3).Resize(2), _
CopyToRange:=.Range("a1").Resize(, ColsBD), _
Unique:=False
With .UsedRange
.Columns.AutoFit
.Sort _
Key1:=.Cells(1, .Columns.Count), _
Order1:=xlAscending, _
Key2:=.Cells(1, .Columns.Count - 3), _
Order2:=xlAscending, _
Header:=xlGuess
End With
End With
Next
.Select: Range(Col & Fila).Offset(, 3).Resize(2, 1).ClearContents
End With
End Sub
Private Function ExisteLaHoja(ByVal NombreHoja As String) As Boolean
Dim Hoja As Object: On Error Resume Next: Set Hoja = Sheets(NombreHoja)
ExisteLaHoja = Not Hoja Is Nothing: Set Hoja = Nothing
End Function

Respuesta Responder a este mensaje
#5 Marcos Galaviz
01/12/2004 - 17:29 | Informe spam
Yaa.. si funciono Hector, no sabes como te agradezco, ahora ¿donde puedo
aprender a programar esto? me ha interesado muchisimo... Digo yo programo un
poco en VFP, asi que espero no batallar demasiado, pero si agradecere mucho
me orienten sobre donde y como buscar para programar aqui..

Muchas gracias de nuevo :-)



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

... quiero una hoja por todos los facturados y otra para los YA
facturados
... que ... los ordene por ejecutivo y por fecha [...]



[creo que] el codigo de al final +/- hace lo que necesitas ;) 'mis'
SUPUESTOS son...
=> asignale un nombre al listado [digamos] 'BaseDatos' ->incluyendo los
titulos<-
1.- el nombre de la hoja y el nombre del rango [en las variables
'constantes' publicas]
2.- el orden de las columnas [para el sorteo de los datos y 'el resto'] es
SIEMPRE...
la columna con los nombres es ... la ultima
la columna de la factura es ... la penultima
la columna con las fechae es... 3 ANTES de 'la ultima'
3.- el codigo 'genera' 2 hojas [en caso de que no existan] ->hay dos
variables CON matriz<-
-> la variable 'Hoja' = 'Facturado' y 'Pendiente'
-> la variable 'Cond' [son las condiciones para 'filtrar' CON o SIN
facturas
=> si las hojas 'ya existen... 'simplemente' ->actualiza<- los datos
'filtrados'

bueno... haz la prueba y... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==> Public Const Base As String = "Hoja1"
Public Const Datos As String = "BaseDatos"
Sub Filtrar_Facturados(): Application.ScreenUpdating = False
Dim Col As String, Fila As Byte, ColsBD As Byte, Sig As Byte, _
Hoja As Variant, Cond As Variant
Hoja = Array("Facturado", "Pendiente")
Cond = Array(">0", "=""""")
With Worksheets(Base)
With .Range(Datos)
Fila = .Row: ColsBD = .Columns.Count
Col = .Offset(, .Columns.Count - 2).Resize(1, 1).Address
Col = Mid(Col, 2, InStr(2, Col, "$") - 2)
End With
For Sig = LBound(Hoja) To UBound(Hoja)
If Not ExisteLaHoja(Hoja(Sig)) Then
With Worksheets.Add(After:=Worksheets(Worksheets.Count))
.Name = Hoja(Sig)
End With
End If
With Worksheets(Hoja(Sig))
With Worksheets(Base).Range(Col & Fila)
.Offset(1, 3).Formula = "=" & .Offset(1).Address(0, 0) &
Cond(Sig)
End With
Worksheets(Base).Range(Datos).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Worksheets(Base).Range(Col & Fila).Offset(,
3).Resize(2), _
CopyToRange:=.Range("a1").Resize(, ColsBD), _
Unique:=False
With .UsedRange
.Columns.AutoFit
.Sort _
Key1:=.Cells(1, .Columns.Count), _
Order1:=xlAscending, _
Key2:=.Cells(1, .Columns.Count - 3), _
Order2:=xlAscending, _
Header:=xlGuess
End With
End With
Next
.Select: Range(Col & Fila).Offset(, 3).Resize(2, 1).ClearContents
End With
End Sub
Private Function ExisteLaHoja(ByVal NombreHoja As String) As Boolean
Dim Hoja As Object: On Error Resume Next: Set Hoja = Sheets(NombreHoja)
ExisteLaHoja = Not Hoja Is Nothing: Set Hoja = Nothing
End Function

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