Générateur d'étiquette en fonction du nombre de carton

Bonjour,

J'ai pu réaliser ce fichier qui me permet de générer des étiquettes pour chaque carton .

J'aimerai le modifier afin d'avoir sur la même feuille A4 deux étiquettes superposé afin de faire l'impression du une feuille autocollante a deux volets.

c'est 2 fois le même étiquette ou ce sont des étiquettes consécutives ?

D3:G21 copier et coller en dessous et adapter la plage ???

Bonjour BsAlv,

Il s'agit d'étiquettes consécutives.

Que le fichier imprimer les étiquettes par lot de 2 superposé sur une feuille A4.

Bonjour,

Il manque quelques choses à mon code .

Sub Impression()
Dim dLig As Long, Lig As Long
Dim Sht As Worksheet
Dim Colis As Integer, NbColis As Integer
' Définir la feuille de données
Set Sht = ThisWorkbook.Sheets("BdD")
' Dernière ligne remplie
dLig = Sht.Range("A" & Rows.Count).End(xlUp).Row
' Pour chauqe ligne
For Lig = 2 To dLig
' Nombre de colis = nombre d'étiquette
NbColis = Sht.Range("C" & Lig).Value
' Avec la feuille étiquette
With ThisWorkbook.Sheets("Etiquette")
.Activate
' Inscrire les valeurs
.Range("E4").Value = Format(Sht.Range("A" & Lig), "mm/dd/yyyy")
.Range("D8").Value = Sht.Range("B" & Lig)
.Range("E12").Value = Sht.Range("D" & Lig)
' Pour le nombre d'étiquette à imprimer
For Colis = 1 To NbColis
' Inscrire le numéro d'étiquette
.Range("E16").Value = Colis & "/" & NbColis
' Lancer l'impression
.PrintOut
Next Colis
End With
Next Lig
' Effacer els variables objet
Set Sht = Nothing
End Sub

Edit modo : code à mettre entre balises avec le bouton </> merci d'y faire attention la prochaine fois

bonjour
Sub Impression()

     Dim dLig As Long, Lig As Long, bImprimer

     With ThisWorkbook.Sheets("BdD")
          aa = .Range("A2:D" & .Range("A" & Rows.Count).End(xlUp).Row).Value2     'matrice avec les données de BdD
     End With

     With Sheets("Etiquette")
          ptr = 1
          Do
               .Range("E4:F5,D8:G11,E12:F13,E24:F25,D28:G31,E32:F33").ClearContents
               For i = 0 To 1
                    Do
                         b = (aa(ptr, 3) <= 0)
                         If b Then ptr = ptr + 1
                         If UBound(aa) < ptr Then GoTo imprimer
                    Loop While b

                    .Range("E" & 4 + i * 20).Value = Format(aa(ptr, 1), "mm/dd/yyyy")
                    .Range("D" & 8 + i * 20).Value = aa(ptr, 2)
                    .Range("E" & 12 + i * 20).Value = aa(ptr, 4)
                    aa(ptr, 3) = aa(ptr, 3) - 1
                    bImprimer = True
               Next

imprimer:
               '.PrintOut   'plus tard printout au lieu de printpreview
               .PrintPreview
               bImprimer = False
          Loop While ptr <= UBound(aa)
     End With

End Sub

J'ai un message d'erreur.

image

re, je n'utilise pas "option explicit" et je déclare pas mes variables, mais je sais, c'est la discussion sur la poule et l'œuf

    Dim aA, ptr, i, b, bImprimer

Bonjour,

Merci pour la modification que tu as faite sur mon fichier.

J'ai deux petites problématique:

- La partie nombre de colis ne fonctionne pas, j'ai 3/3 sur chaque page et non 1/3 ; 2/3 ; 3/3.

- Pour l'impression j'ai un "aperçu avant impression" avant l'impression de chaque page, le souci est que si j'ai 20 pages ça va me demander de valider pour chaque page.

re,

2ième problème est très facile, supprimez la ligne avec " .PrintPreview"

l'autre problème est aussi résolu dans ce fichier

Re,

On y est presque.

Ok pour le PrintPreview, mais La partie nombre de colis ne fonctionne pas, j'ai 1/3 ; 2/3 ; 3/3 même lorsqu'il n'y a qu'un seul colis.

J'ai une dernière question:

J'ai ajouté une colonne a mes données mais il y a un truc qui va pas dans la modif que j'ai faite sur la macro.

13lastversion.xlsm (30.53 Ko)

re jeanmarie,

32lastversion.xlsm (35.04 Ko)
Rechercher des sujets similaires à "generateur etiquette fonction nombre carton"