Sous Excel : Imprimer étiquette avec n° chang
Jack
-
Jack -
Jack -
Bonjour à tous
J'aimerais, sous excel, imprimer des étiquettes. Comment faire pour que lors de l'impression, le numéro change (passe de 1 à 2 puis 3 puis 4 ...) dans une cellule définie
Merci par avance
Jack
J'aimerais, sous excel, imprimer des étiquettes. Comment faire pour que lors de l'impression, le numéro change (passe de 1 à 2 puis 3 puis 4 ...) dans une cellule définie
Merci par avance
Jack
4 réponses
-
Salut
il te faudra faire une macro
si tu veut regarder le code generé sers toi de l'enregistreur de macro
outil
macros
nouvelle macro
tu coches ce classeur (pour que cette macro soit lié au classeur en cours)
aprés cela tout ce que tu va faire va erte enregistré par le programme . Donc etre bien sur de ce que tu fait (l'enregistreur ayant déjà tendance à mettre une tartine de code inutile)
tu point ta cellule Numéro tu entres 1
puis dans la barre d'outil standard tu lance l'impression direct (c'est le code le plus lèger)
après tu arretes l'enregistrement (soit par la petite barre d'outil qui c'est ouverte sinon
outil
macro
arreter l'enregistrement
maintenant tu modifies la macro
outil
macro
macro
normalement la macro1 a moins que tu lui ai donnée un autre nom
une fois selectionner tu appui sur le bouton modifier (a droite de la fenetre listant les macros
le code généré va apparaitre
tu dois avoir une ligne avec range("XN") et une autre avec printout
ce sont les seules qui vont nous interresser
au début de ta macro
sub macro1()
'
'macro par machin
'le
' <-- l'apostrophe sert à coller des commentaires ce qui est
'derriere n'est pas pris en compte
dim t as Byte 'pour t =255 maxi
for t=1 to 10 ' pour 10 étiquettes
range("f5").value=t ' ceci donnera le numero de l'etiquette
activewindows.selectedsheets.printout copie:=1, collate=true
next
pour récupérer la valeur de t dans une cellule
t=range("Xn").value
si deux variables une de fin et une de début suffit de doubler les récupération ("XN")
Cordialement
G.David
-
Merci David pour le temps que tu as pris a me répondre aussi precis et excuse moi pour le retard de ma réponse car je suis pas mal bousculé. Je vais donc maintenant essayer d'appliquer ton opération qui me parrait assée complexe
- Salut
il n'y a rien de complexe c'est juste que ne connaissant pas le niveau d'excel ou tu es j'ai détaillé le tout :
la manoeuvre avec l'enregistreur
les manips pour acceder au code
et le code
tu verra qu'excel est assez "simple" ce sont les regles de SA logique qu'il faut comprendre (si en plus tu connait l'anglais tu auras untres gros avantage sur un type comme .. ben moi par exemple)
si malgrès tout tu ne t'en sortais pas tu connait l'adresse CCM?
Cordialement
G.David - David, j'ai bien fais ce que tu m'a dis est la manip m'a généré ces lignes de code suivantes :
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 20/04/2005 par Jack
'
'
Range("C6").Select
ActiveCell.FormulaR1C1 = "1"
Range("C6").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
Peux tu me dire maintenant se que je dois faire. A savoir que je veux choisir le nombre d'étiquette à imprimer en utilisant le chemin classique de l'impression ( fichier > imprimer > nombre de copie ...) Je veux juste que dans la cellule choisi, le nombre change de 1 a 2 puis 3 ... a chaque etiquette imprimé!
Merci par avance
-
-
Salut,
En supposant que ton numéro détiquette est en C6 (à modifier si ce n'est pas le cas), pour chaque impression ce nombre augmente de 1 :Sub toto() Dim t As Integer, nb As Integer nb = InputBox("Veuillez entrer le nombre d'étiquettes à imprimer", "Nombre d'impressions") For t = 1 To nb Range("C6").Value = t ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Next t End Sub
A+ -
Salut
donc le numero de l'etiquette en C6
a chaque edition tu remets le compteur à zéro
on va placer le nombr d'etiquette en L3sub imprime() dim t as integer for t=1 to range("L6").value range("C6").value=t ' ou aussi cells(6,3)=t activewindows.selectedsheets.printout copie:=1, collate=true next t end sub
tu ne veut pas remettre ton compteur à zéro
on va garder une case memoire la L2
sub imprime() dim t as integer for t=range("L2").value to range("L2").value+range("L6").value range("C6").value=t ' ou aussi cells(6,3)=t activewindows.selectedsheets.printout copie:=1, collate=true next t range("L2").value=t end sub
Voilà j'espère avoir répondu à ton attente
la manip avec l'enregistreur de macro sert à voir le code généré ce n'est pas la panacée mais ça trace le chemin c'est pourquoi je te l'ai indiqué
Cordialement
G.David
le respect n'est pas un dû
il se merite -
Ha oui j'oubliais si tu employe la deuxieme mèthode à savoir une in,crémentatiion continue de tes numéro d'étiquettes (traçabilité) il sera prudent de changer le
dim t as integer
par un
dim t as double
CORDIALEMENT
G.David