UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

JoaoM


Tengo este proyecto.
Pretendo que me copie según  explico en la hoja1.

Tengo macro para copiar de una hoja a otra, pero no linealmente si no como esta la hoja Factura y así no me interesa porque ocupa demasiado espacio dentro del libro.


En hoja Factura ya tengo un botón para Copia de Factura, me falta la macro según explico en la hoja1

Otra seria por formula pero como explico en la hoja1, no creo que formula me sirva para tal fin, prefiero macro.


Gracias
Archivos
Proyecto_Stock con Factura_MPAG_BUSCADOR_copiar.zip
No tienes los permisos para descargar los archivos.
(157 KB)

tyno


Hola Joao.
Te envío el archivo con la macro para la copia de la factura. También inserte un par de formulas en las celdas B3/B4 pero no se si eso era lo que necesitabas. Saludos
Archivos
Proyecto_Stock con Factura_MPAG_BUSCADOR_copiar.zip
No tienes los permisos para descargar los archivos.
(135 KB)

JoaoM


Estoy muy agradecido por tu ayuda y empeño en esta labor.
Sabes que se me olvido dejar en esta copia, las hojas Proveedor por esto dl cliente en la hoja Factura para que desde la Factura pudieras seleccionar en la celda C7 el RIF/CI Cliente y al seleccionar este las celdas Nombre, Dirección y Telf se auto rellenan.
Asi mismo dejar el buscador para la selección y inserto del producto.
Voy, pruebo pero si me lo permitieras tu mail, te enviaría el proyecto completo porque pesa para subirlo acá
Ya te estaré diciendo algo.
Gracias tyno una vez mas.

Revisa en la H2 y 23 hay 2 formulas, revisa.

Es lo que uisiera hacer lo que tu hiciste pero pareciera que no me siguia el orden de numeración, es decir, aun no probe si al seleccionar uno  ootro, me sigue con la numeración siguiente es decir, supone que si factura tengo el numero 14- 001000.
Seleciono Recibo y esconde el 14-001000 y aparece 14-000025,
Si imprimo el recibo pasa a 14-000026.
Selecciono factura yaprece 14-001000, Imprimo y pasa al 14-001001.
Esto para que si es Factura o Recibo siga el numero correlativo (seguido) sea uno o sea otro. Si es Recibo sigue solo numero de  recibo, si es factura sigue solo el numero de factura.
Voy integrar tu código al proyecto y probare.

Probé, esta mejor de lo que pensaba en un principio, solo una cosa quiero que pruebas tu ahí.


Al copiar una factura de una sola línea (de un solo producto de venta), al copiar la factura a la hoja Copia Factura  lo hace repetido y sin algunos contenidos.

La repetición no deveria hacerlo, si no solo copar lo que en la factura existe. Si en factura solo se vende (por mensionarlo de alguna manera) solo copie lo que la Factura contiene y no repita sin necesidad

JoaoM


Sobre la repetición que hace y te mensione arriba, te pido que me lo corrijas.
Sobre la copia quisiera hacerle una corrección, yo trate modificar tu código pero, no fui tan capaz para tal fin, mis conocimientos son muy básicos:

Relleno la factura en determinadas celdas, digamos que
JoaoM escribió:Hoja Factura  ------------------------------------ Hoja Copia_Factura

C7

A2
C8

B2
B10

D2
C9

C2
C11

E2
E11

F2
C14 hasta C23

G2
D14 hasta F23

I2
E14 HASTA 23

H2

En la hoja Copia_Factura las ultimas 3 columnas puedo yo mismo montarle formula y no usar codigo para estas 3 ULTIMAS COLUMNAS

tyno


Hola Joao.
Paso tu archivo con las modificaciones.
Arregle el problema cuando había un solo registro para pasar y también hice un código para incrementar el número de recibo o factura dependiendo cual este seleccionado.
Este código llamado Sub_imprimir()  lo inserté en el módulo “macros” y lo asigné al botón IMPRIMIR que tienes en la Hoja Factura, quedaría que con la grabadora de macros crees el código para imprimir, luego copies este código y lo pegues por encima del código que yo hice, para ello te he dejado indicado donde debes pegar:

Sub imprimir()
On Error Resume Next

'''aquí agregar código grabado para imprimir

'incrementar numero
If Range("b2") = "FACTURA #" Then
ref_n = Right(Range("a3"), 6) * 1 + 1
ceros = 6 - Len(ref_n)
If Len(ref_n) < 6 Then numero = WorksheetFunction.Rept("0", ceros) & ref_n
Range("a3") = "14-" & numero
End If

If Range("b2") = "RECIBO #" Then
ref_n = Right(Range("a4"), 6) * 1 + 1
ceros = 6 - Len(ref_n)
If Len(ref_n) < 6 Then numero = WorksheetFunction.Rept("0", ceros) & ref_n
Range("a4") = "14-" & numero
End If
End Sub

Así, de esta manera, primero se imprime y luego se incrementa el numero.


Con respecto a las modificaciones de los datos que se pasan a la Hoja Copias_Factura, bueno hice lo que entendí de acuerdo a tu instrucción.
Cualquier referencia que necesites modificar es fácil hacerlo, solo cambias los valores para columnas en Cells(rw,1), en este caso la columna es el valor 1 y representa la columna A, si fuese 2 sería la columna B, etc., y lo que está entre corchetes es la referencia a una celda, por ejemplo [C7]. Creo que se entiende.

Saludos
Archivos
Proyecto_Stock con Factura_MPAG_BUSCADOR_copiar.zip
No tienes los permisos para descargar los archivos.
(136 KB)

JoaoM


El código que tengo (en el proyecto total (entero) tiene ya el código para imprimir, el cual esta para que imprima y aumente +1 el numero de Factura, no recibo.

Esto de Recibo o Factura lo pense mas tarde porque en prencipio solo era Factura pero, si solo necesito Recibo y no Factura, imprimo Recibo y al imprimir incrementa su numero de Recibo a +1 y el de factura se mantiene estatico y escondido sin incremento, si imprimo Factura incrementa SOLO el numero de Factura y o el de Recibo.
Por eso lo de solicitarte tu mail para enviarte el proyecto completo.
Podre enviártelo? ¿donde?

Este es el código en un modulo del evento Imprimir

Código:
Sub PrinteFactura()
    Dim i As Integer
    Dim j As Long
    Dim d As Variant
    Dim X As Double
    Dim Y As Double
    Dim s As Double
    Dim r As Range
    Dim v As Range
    Dim f As String
'Dim lngcontarproduc&, bitvueltas2 As Byte
    On Error Resume Next
    Application.EnableEvents = False
    If [C7] = "" Then
MsgBox "Ingrese nombre de cliente", vbExclamation + vbOKOnly, "Falta de Cliente"
[C7].Select
Application.ScreenUpdating = True
Exit Sub
End If
    lngcontarproduc& = Application.WorksheetFunction.CountA([B14:B23])
If lngcontarproduc& <= 0 Then
MsgBox "Ingrese al menos un producto en su factura", vbExclamation + vbOKOnly, _
"Ingresar Producto"
[B14].Select
Application.ScreenUpdating = True
Exit Sub
End If
f = Year(Date) - 2000 & "-" & Format(NumeroFactura, "00000000") 'numero factura en B3
Sheets("Factura").Range("B3").value = f
    Set r = Sheets("Factura").Range("B14:F23")
    Set v = Sheets("Prod_Salidas").Range("C:C")
    For i = 1 To r.Rows.Count
        d = r(i, 1)
        Y = r(i, 4)
        If d <> Empty Then
            j = WorksheetFunction.CountIf(v, d)
            If j > 0 Then
                j = WorksheetFunction.Match(d, v, 0)
            Else
                j = WorksheetFunction.CountA(v) + 1
            End If
            v(j, 1).Offset(0, 2) = CDate(Date)
            v(j, 1).Offset(0, 3) = f
            X = v(j, 1).Offset(0, 4).value
            s = X + Y
            v(j, 1).Offset(0, 4) = s
        End If
       
    Next i
    With Sheets("Factura")
        [B2:B3,B7:D10,B11:F11,B13:F13,B25,E25:F27,B26:D28].Select
    Selection.Font.Bold = False
'Activar PrintOut al usar oficialmente
    'Application.Dialogs(xlDialogPrintPreview).Show 'previa visualisacion
    .PrintPreview 'previa visualisacion
        '.PrintOut
        .Range("C7,B14:E23").ClearContents
    End With
    Application.EnableEvents = True
    Set v = Nothing
    Set r = Nothing
        [B2:B3,B7:D10,B11:F11,B13:F13,B25,E25:F27,B26:D28].Select
        Selection.Font.Bold = True
        [C7].Select
End Sub
Private Function NumeroFactura()
    Dim u As Long
    Dim c As Range
    Dim i As Integer
    Dim X As Long
    Dim n As Long
    With Sheets("Prod_Salidas")
        u = .Range("F50000").End(xlUp).Row
        If u < 2 Then u = 2
        For Each c In .Range("F2:F" & u)
            i = InStr(c.value, "-")
            X = Replace(c.value, Left(c.value, i), "", , , vbTextCompare)
            If X > n Then n = X
        Next c
    End With
    NumeroFactura = n + 1
End Function

A ver si coincide algo con el tuyo

Como puedes observar, ya tiene para el incremento del numero de Factura pero no el proceso que te mencioné de Recibo o Factura tal como lo tengo ahora mismo


Realmente el código tuyo para pasar copia, es mas estético y profesional que uno que yo consegui que si fue fácil para mi hacer los cambios de celda o columna, el tuyo coo dije, es mas profisional pero mas complicado para mi magra experiencia pero lo intentare.

Gracias tyno y espero tu respuesta sobre enviarte completo

tyno


Joao,¿has probado el código que te pase para incrementar el nº de factura o recibo?
Ejecuta el botón IMPRIMIR y vas a ver como se incrementa el numero de factura si es que estas viendo este o caso contrario el nº de recibo.

Lo que puedes hacer si el archivo es muy pesado es subirlo a dropbox o algún otro sitio de archivos compartidos.

JoaoM


Ok, lo que no quiero es dejar acá el proyecto compleo.
Aun estoy con tu código para copiar a otra hoja.
Ya le di la orma de columnas y me funciona.
Código:
.Cells(rw, 1) = [C7] 'RIF/CI
.Cells(rw, 2) = [C8] 'NOMBRE
.Cells(rw, 3) = [C9] 'DIRECCION
.Cells(rw, 4) = [B10] 'CIUDAD
.Cells(rw, 5) = [C11] 'TELF.
.Cells(rw, 6) = [E11] 'FECHA
.Cells(rw, 7) = [C14] 'DESCRIPCION
.Cells(rw,  = [E14] 'CANTIDAD
.Cells(rw, 9) = [D14] 'Precio/U/Venta
.Cells(rw, 10) = [F14] 'VALOR

Lo que si veo mal es que ingreso 3 productos en Factura, mando copiar y me copia solo el 1ª y lo copia 11 veces en 11 líneas seguidas. lo de seguido esta bien pero ¿11? teniendo yo en factura 3 productos solamente.

Dejo este porque he estado cambiando números pero ninguno me dá.  Voy con el de la numeración.

Si te das cuenta, el que acabo de pasarte arriba, tiene avisos que no quiero perder y demás, para integrarlo al tuyo, estuve verificando como pudiera hacerlo y no pude porque tiene integrado una Función.
Voy con el de numeracion

La de numeración me manda error en línea
If Len(ref_n) < 6 Then numero = WorksheetFunction.Rept("0", ceros) & ref_n

Me dice: Error de Copilacion
Se esperaba Funcion o una Variable

joaely7ARROBAmsnPUNTOcom

Pues así puedas, estare en tus manos jejejejej



Última edición por JoaoM el 15/04/14, 04:02 pm, editado 3 veces

tyno


Ok, tienes un correo? Me lo pasas y te envió un mensaje de mi parte para que tomes mi correo. En estos momentos no quiero divulgarlo mucho a mi correo porque no puedo garantizar cumplir con los archivos en breve y ya tengo correos de otros usuarios con archivos para hacer.

Saludos

JoaoM


Creo que leeste mi post anterior, lo edite pero no creo que editando se reciba mensaje en el mail

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.