Impression DataMatrix avec Complement TbarCode

Bonjour à tous,

J'ai un petit soucis concernant l'impression de cartes avec un DataMatix qui se génère en auto lié a une cellule qui contient une donnée.

Je m'explique :

Un module est installé TbarCode, je pense que ça va être compliqué de tester sans ce module de votre côté, mais je tente ma chance je ne cherche pas une solution toute faite, mais peut être des idées pour résoudre ma problématique

J'ai une liste d'ordre de fabrication avec un numéro et d'autres informations (désignation, références...)

Mon code dit :

Je parcours ma liste pour définir le nombre de lignes,

Avec une boucle For, je copie les données nécessaires dans une autre feuille.

La cellule B4 de ma deuxième feuille est en lien avec le Data, cad qu'il se met à jour quand la valeur de la cellule change.

Ensuite j'imprime la plage que je veux.

Le soucis :

J'ai l'impression que la macro s'exécute trop vite, ma deuxième impression à le même data que la première.

J'ai essayé de mettre un temps de pause + rafraichir le classeur mais cela ne marche pas.

J'ai l'impression que le PrintOut "bloque la Maj du Data"

En mode pas à pas, pas de soucis le data se met bien à jour et mon impression est bonne.

Remarque : ça marchait très bien sous excel 2010, je suis actuellement sous excel 2016.

Si quelqu'un aurait des idées à tester se serait top

Merci d'avance

Sub Rectangleàcoinsarrondis1_Cliquer()

    Dim n, DerLig, i As Integer
    Dim fl, fc As Object
    Dim vb As Boolean
    Dim Today

Set fl = Worksheets("MWAUTOKB01")
Set fc = Worksheets("CARTES")

    DerLig = Range("A:A").Find("*", , , , xlByRows, xlPrevious).Row

    Cells(2, 15) = DerLig

    fc.Activate
    vb = Application.Dialogs(xlDialogPrinterSetup).Show 'affichage selection imrpimante
    If vb = False Then
    UserForm1.Hide
    fl.Activate
    Exit Sub
    Else

    End If

     'Application.ScreenUpdating = False

For n = 2 To DerLig

     fl.Activate
     fl.Cells(n, 6).Copy
     fc.Range("B4").PasteSpecial Paste:=xlPasteValues, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     fl.Cells(n, 1).Copy
     fc.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     fl.Cells(n, 2).Copy
     fc.Range("A2").PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     fl.Cells(n, 3).Copy
     fc.Range("B6").PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     fl.Cells(n, 4).Copy
     fc.Range("B5").PasteSpecial Paste:=xlPasteValues, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     fl.Cells(n, 5).Copy
     fc.Range("D6").PasteSpecial Paste:=xlPasteValues, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     fl.Cells(n, 7).Copy
     fc.Range("D1").PasteSpecial Paste:=xlPasteValues, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     fl.Cells(n, 10).Copy
     fc.Range("C6").PasteSpecial Paste:=xlPasteValues, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     fc.Activate

    'Application.Wait (Now + TimeValue("0:00:02"))
    'ThisWorkbook.RefreshAll

    Range("A1:D7").Select
    Selection.PrintOut

Next n
End Sub

Bonjour,

Est-ce que tu as essayé de rendre la main au système avec un :

DoEvents

au lieu de ta tempo ?

Bonjour,

Merci de ta réponse rapide,

J'ai essayé avec le

DoEvents

à la place de la temporisation je ne vois pas de différences (à moins que je l'ai mal placé)

Avant l'impression, un :

Application.Calculate

Idem marche pas non plus, j'ai l'impression que la petite fenêtre "impression en cours" du printout bloque le rafraichissement des données en arrière plan.

Et si tu remplaces ton Selection.Printout par

Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint")

?

ça m'imprime que la dernière valeur de ma liste étrange

Rechercher des sujets similaires à "impression datamatrix complement tbarcode"