XL 2016 Création d'une étiquette CB avec Excel

lincoln75

XLDnaute Nouveau
Bonjour à tous

Je voudrais pouvoir créer une étiquette CB pour la coller dans le dossier de mes clients
J'ai créé un tableau avec 5 colonnes contenant un numéro de client, son nom prénom sa DDN et le CB correspondant au numéro
Je voudrais récupérer chacune des 5 cellules dans une seule afin de créer une étiquette
La dernière colonne est un code barre
J'arrive à récupérer les 5 données et à les fusionner dans une seule cellule mais le CB ne s'affiche pas , il reste sous forme de chiffre
Auriez vous une idée pour intégrer le CB dans l'étiquette
Je souhaiterai en plus que pour chaque client 8 étiquettes soient générées
Je vous remercie de l'aide que vous pourrez m'apporter
 

Pièces jointes

  • Test etiquette CB Excel.xlsm.xlsx
    18.2 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Lincoln, et bienvenu sur XLD, bonjour Job, ( pb refresh )
Votre fichier pose problème à l'ouverture. Pourriez vous le supprimer et le remettre ?
1709804872727.png
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Un essai dans le classeur joint.

Je ne dispose pas de la police que vous utilisez pour afficher le code EAN39. J'ai donc utilisé la police libre de droit que j'ai dans mon Windows. En fichier joint la police, le fichier TTF de cette police (pour installer la police, double-cliquer sur le fichier après l'avoir téléchargé ).

A partir du fichier joint, pour utiliser votre propre police, remplacer dans le code "Free 3 of 9 Extended" par votre nom de police "IDAutomationHC39M". Faites de même pour la police de la colonne E de la feuille de calcul.

Cliquez sur le bouton Hop!

Le code dans Module1 :
VB:
Sub etiquette()
Dim derligne As Long, nbrcol As Long, nlig As Long, ncol As Long, j As Long, i As Long, s As String, ns As Long
   nbrcol = InputBox("Nombre de colonnes d'étiquettes ?", "Question")
   derligne = Cells(Rows.Count, "a").End(xlUp).Row

   Application.ScreenUpdating = False
   Range("h1").UnMerge
   Range("h1").CurrentRegion.Clear

   nlig = 2: ncol = 8: j = 1
   For i = 2 To derligne
      s = Cells(i, 1) & vbLf & Cells(i, 2) & " " & Cells(i, 3) & vbLf & "né(e) le: " & Cells(i, 4).Text & vbLf
      ns = Len(s)
      s = s & Cells(i, 5)
      Cells(nlig, ncol).Offset(, j - 1) = s
      Cells(nlig, ncol).Offset(, j - 1).Characters(Start:=ns + 1, Length:=99).Font.Name = "Free 3 of 9 Extended"
      Cells(nlig, ncol).Offset(, j - 1).Characters(Start:=ns + 1, Length:=99).Font.Size = 20
      j = j + 1
      If j > nbrcol Then j = 1: nlig = nlig + 1
   Next i
   Columns(ncol).Resize(, ncol).HorizontalAlignment = xlHAlignCenter
   Columns(ncol).Resize(, ncol).VerticalAlignment = xlHAlignCenter
   Columns(ncol).Resize(, ncol).ColumnWidth = 100
   Columns(ncol).Resize(, ncol).EntireColumn.AutoFit
   Columns(ncol).Resize(, ncol).ColumnWidth = Columns(ncol).ColumnWidth + 5
End Sub
 

Pièces jointes

  • lincoln75- étiquette CB- v1.xlsm
    20.2 KB · Affichages: 9
  • police-free3of9.zip
    3.9 KB · Affichages: 2

lincoln75

XLDnaute Nouveau
Bonjour à tous,

Un essai dans le classeur joint.

Je ne dispose pas de la police que vous utilisez pour afficher le code EAN39. J'ai donc utilisé la police libre de droit que j'ai dans mon Windows. En fichier joint la police, le fichier TTF de cette police (pour installer la police, double-cliquer sur le fichier après l'avoir téléchargé ).

A partir du fichier joint, pour utiliser votre propre police, remplacer dans le code "Free 3 of 9 Extended" par votre nom de police "IDAutomationHC39M". Faites de même pour la police de la colonne E de la feuille de calcul.

Cliquez sur le bouton Hop!

Le code dans Module1 :
VB:
Sub etiquette()
Dim derligne As Long, nbrcol As Long, nlig As Long, ncol As Long, j As Long, i As Long, s As String, ns As Long
   nbrcol = InputBox("Nombre de colonnes d'étiquettes ?", "Question")
   derligne = Cells(Rows.Count, "a").End(xlUp).Row

   Application.ScreenUpdating = False
   Range("h1").UnMerge
   Range("h1").CurrentRegion.Clear

   nlig = 2: ncol = 8: j = 1
   For i = 2 To derligne
      s = Cells(i, 1) & vbLf & Cells(i, 2) & " " & Cells(i, 3) & vbLf & "né(e) le: " & Cells(i, 4).Text & vbLf
      ns = Len(s)
      s = s & Cells(i, 5)
      Cells(nlig, ncol).Offset(, j - 1) = s
      Cells(nlig, ncol).Offset(, j - 1).Characters(Start:=ns + 1, Length:=99).Font.Name = "Free 3 of 9 Extended"
      Cells(nlig, ncol).Offset(, j - 1).Characters(Start:=ns + 1, Length:=99).Font.Size = 20
      j = j + 1
      If j > nbrcol Then j = 1: nlig = nlig + 1
   Next i
   Columns(ncol).Resize(, ncol).HorizontalAlignment = xlHAlignCenter
   Columns(ncol).Resize(, ncol).VerticalAlignment = xlHAlignCenter
   Columns(ncol).Resize(, ncol).ColumnWidth = 100
   Columns(ncol).Resize(, ncol).EntireColumn.AutoFit
   Columns(ncol).Resize(, ncol).ColumnWidth = Columns(ncol).ColumnWidth + 5
End Sub
Merci mapomme,

J'ai pu tester le fichier et c'est exactement ce que je souhaitais
J'ai deux petites demandes supplémentaires si le code n'est pas trop compliqué à modifier:
- est-il possible de mettre le "Nom du client" en gras sur l'étiquette
- avoir 6 étiquettes qui s'affichent pour chaque client

Encore merci pour votre aide
Je vous souhaite une bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 222
Membres
103 158
dernier inscrit
laufin