Incrémenter un nombre dans une feuille Excel

Résolu
halfernet Messages postés 305 Statut Membre -  
halfernet Messages postés 305 Statut Membre -
Bonjour,

Je suis en train de créer des fiches techniques pour mon travail, et j'aurai besoin d'incrémenter le n° de chaque fiches à chaque fois que j'imprime, il y a 3 fiches par feuilles excel, j'ai essayé des macros pour d'autres exemples mais il ne s'appliquent pas a moi.

En gros : les cellules K1, AB1 et AS1 possèdent respectivement le numéro "E101", "E102" et "E103".

Si j'imprime,

les cellules K1, AB1 et AS1 devraient posséder respectivement le numéro "E104", "E105" et "E106" et ainsi de suite...

Question subsidiaire (qui n'est pas primordiale) : Peut-on imprimer 200 exemplaires dans cette optique là, sans que sa n'imprime les 200 pages identiques ?

3 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Une proposition en vba selon ce que j'ai compris :
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        Dim nb As Long, i As Long, c As Long, sh As Worksheet
        Dim listeCell(), nbCell As Long, part1 As String, part2 As Long
        listeCell = Array("C1", "E1", "G1")
        nbCell = UBound(listeCell) + 1
        Set sh = ActiveSheet
        If sh.Name <> "Feuil1" Then Exit Sub
        Cancel = True
        On Error GoTo suite
        nb = CInt(InputBox("Nombre d'exemplaires à imprimer ", "Impression"))
        On Error GoTo 0
        Application.EnableEvents = False
        For i = 1 To nb
            ' imprimer feuille
            sh.PrintOut Copies:=1, Collate:=True
            ' n° suivants
            For c = 0 To nbCell - 1
                part1 = Left(sh.Range(listeCell(c)), 1)
                part2 = CInt(Mid(sh.Range(listeCell(c)), 2))
                sh.Range(listeCell(c)).Value = part1 & part2 + nbCell
            Next c
        Next i
    suite:
        Application.EnableEvents = True
    End Sub


    Les cellules à modifier sont à déclarer dans le array listeCell.
    Le contenu est sensé être constitué d'un caractère (quelconque), et d'une partie numérique à incrémenter (après impression) du nombre de cellules listées (ici donc +3)
    Le nombre d'exemplaire est demandé (sans contrôle du maxi vu que tu as évoqué 200 possible... mais il faudrait l'envisager).
    L'imprimante doit être choisie avant de lancer la macro.

    exemple : Classeur1.xls

    eric
    1
  2. halfernet Messages postés 305 Statut Membre 27
     
    Merci, je vais essayer ça, je te tien au courant !
    1
  3. halfernet Messages postés 305 Statut Membre 27
     
    Re : Parfait, c'est au poil ! je te remercie grandement.
    -1