XL 2013 Création étiquette et nombre indiqué en colonne

acuponctus

XLDnaute Nouveau
Bonjour,

J'utilise un peu excel toutes les semaines mais de manière simple, et je cherche un moyen pour procéder à l'étiquetage de 2000 produit environ suivant cette consigne :
nom du produit | id du produit | ref produit | quantité en stock (entre 1 et 5)
la quantité en stock est le nombre d'étiquettes à imprimer.

Je ne sais pas comment m'y prendre, car à chaque fois que j'ai eu à utiliser excel et la fusion dans word, la question de la quantité ne se posait pas.

Y a t il une solution simple ?

Car en effet dupliquer à la main ces éléments pour générer le nombre de ligne de chaque produit est source d'erreur, et ne pas avoir suffisamment d'étiquettes.

Merci par avance pour votre aide.
 

youky(BJ)

XLDnaute Barbatruc
Dans le doute j'ai fait aussi les étiquettes par ligne sur le même fichier
Donc on peut choisir son modèle d'étiquettes.
Il faut activer les macros
Bruno
 

Pièces jointes

  • EtiInventaire.xlsm
    613.8 KB · Affichages: 7

acuponctus

XLDnaute Nouveau
Bonjour,
Dans l'onglet "Etiquettes par ligne" je voudrais que la première ligne reste figée et ne soit pas modifiée afin de mettre le nom des colonnes en vue de faire du publipostage pour sortir mes étiquettes avec Word.
Sur la partie macro, si je change A1 en A2 pour commencer à la seconde ligne ca ne marche pas, comment adapter ?:
VB:
Sub EtiquettesLigne()
Feuil4.Select
Range("A1:E65000").ClearContents
Range("A1:E65000").Borders(xlInsideHorizontal).LineStyle = xlNone
With Feuil2
For lig = 2 To .[A65000].End(3).Row
If .Cells(lig, 1) <> "" Then
For n = 1 To .Cells(lig, 5)
k = k + 1
Cells(k, 1) = .Cells(lig, 2)
Cells(k, 2) = .Cells(lig, 3)
Cells(k, 3) = .Cells(lig, 4)
Cells(k, 4) = .Cells(lig, 5)
Cells(k, 5) = .Cells(lig, 6)
Next
End If
Next
End With
Range("A1:E" & k).Borders(xlInsideHorizontal).LineStyle = xlNone

End Sub

Merci
 
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Bonjour,
Voici le code modifié
Bruno
VB:
Sub EtiquettesLigne()
Feuil4.Select
Range("A2:E65000").ClearContents'on garde ligne 1
Range("A2:E65000").Borders(xlInsideHorizontal).LineStyle = xlNone
With Feuil2
k=1'k est la ligne incrémentée plus bas k=k+1 donc 2 au 1er passage
For lig = 2 To .[A65000].End(3).Row
If .Cells(lig, 1) <> "" Then
For n = 1 To .Cells(lig, 5)
k = k + 1
Cells(k, 1) = .Cells(lig, 2)
Cells(k, 2) = .Cells(lig, 3)
Cells(k, 3) = .Cells(lig, 4)
Cells(k, 4) = .Cells(lig, 5)
Cells(k, 5) = .Cells(lig, 6)
Next
End If
Next
End With
Range("A1:E" & k).Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub
 

Discussions similaires

Réponses
2
Affichages
1 K

Statistiques des forums

Discussions
312 854
Messages
2 092 830
Membres
105 540
dernier inscrit
missmel59