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