Sous Excel : Imprimer étiquette avec n° chang

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

4 réponses

  1. 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

    2
    1. 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
      0
    2. @JackSalut
      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
      0
    3. @G.DavidDavid, 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
      0
  2. Contributeur
    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+
    0
    1. 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 L3
      sub 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
      0
      1. 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
        0
        1. Je viens de faire la manip que tu m'as indiqué et ca me parrait fonctionner
          Je te remercie pour ton aide, c'est bien sympa de ta part !!!
          Bonne continuation
          Jack
          0