Jump to content
juan_dinio69

ANSWERED Resultado de Macro como JPEG

Recommended Posts

Buenas Noches complis,

Estoy teniendo problemas con una macro con la cual ya me ayudaron ;)

RESUMIENDO: genero un codigo de barras code128 sin fuente, pero me lo genera con barritas verticales que se pueden mover.

Hasta aqui todo perfecto ;)

 

El problema es que si muevo el ancho de las  columnas se modifican las barritas y el codigo no funciona, mi idea era que el resultado de la macro me lo sacara en una imagen a la que no le influyera que mueva el ancho de las columnas.

 

Agrego plantilla.

 

Por cierto a quien le interese este code 128  sin fuente está muy bien :)

 

Saludos y gracias 

code128.xlsm

Share this post


Link to post
Share on other sites

Hola

No es una buena costumbre usar Select y/o Selection, pero como para que se entienda sin hacer mucho cambio, será suficiente con que la macro "Test" la dejes así:

Sub test()
   ThisWorkbook.ActiveSheet.Shapes.SelectAll
   Selection.Delete
   Code128 20, 20, 28, 1.5, ThisWorkbook.ActiveSheet, Range("=a1")
   ThisWorkbook.ActiveSheet.Shapes.SelectAll
   Selection.Placement = xlFreeFloating
End Sub

Saludos

Abraham Valencia

Share this post


Link to post
Share on other sites

Lo mismo que Abraham, pero agrupando las líneas como un solo objeto en la propia macro.

Modifica esta parte:

'....
'....
'Barcode drawing
Dim Grupo() As String
CurBar = 0
ReDim Grupo(0)
For i = 1 To Len(ContentString)
    Select Case Mid(ContentString, i, 1)
    Case 0
        CurBar = CurBar + 1
    Case 1
        CurBar = CurBar + 1
        TargetSheet.Shapes.AddLine(X + (CurBar * LineWeight) _
            * XCompRatio, Y, X + (CurBar * LineWeight) _
            * XCompRatio, (Y + Height)).Select
        With Selection.ShapeRange
          .Line.Weight = LineWeight
          .Line.ForeColor.RGB = vbBlack
        End With
        Grupo(UBound(Grupo)) = Selection.Name
        ReDim Preserve Grupo(UBound(Grupo) + 1)
    End Select
Next i
ActiveSheet.Shapes.Range(Grupo).Select
Selection.ShapeRange.Group.Select
Selection.Placement = xlFreeFloating
ActiveCell.Select
End Sub

 

Edited by Antoni

Share this post


Link to post
Share on other sites

FUNCIONA !!!

Os aseguro que antes de preguntar llevo dándole vueltas a la cabeza durante una semana.

 

Ojala poco a poco valla teniendo aprendiendo para poder ayudar como vosotros !!!

Mil gracias ;)

PD. gracias no solo por escribirme el código, sino también por explicarlo :)

 

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png