Incrémenter des numéros séquentiels dans 4 cellules différentes après l'impression

1

J'ai créé un reçu de format 1/4 lettre et je l'ai copié 4 fois dans une seule feuille de travail (pour économiser du papier) et je souhaite qu'il soit imprimé en continu de 001 à 100. Chaque reçu doit avoir un numéro de série unique 001 002 ... 100 ..

Comment puis-je mettre des nombres séquentiels dans 4 cellules différentes, disons A1, C1, E1 et G1, mes cellules portant les numéros 001 002 003 004, et augmenter chaque nombre après chaque impression?

J'ai également besoin de la possibilité de spécifier le numéro de départ.

J'ai trouvé cela dans un site Web, alors ce pourrait être un début:

Sub IncrementPrint()

    Dim xCount As Variant
    Dim xScreen As Boolean
    Dim I As Long
    On Error Resume Next
LInput:
    xCount = Application.InputBox("Please enter the number of copies you want to print:", "Title")
    If TypeName(xCount) = "Boolean" Then Exit Sub
    If (xCount = "") Or (Not IsNumeric(xCount)) Or (xCount < 1) Then
        MsgBox "error entered, please enter again", vbInformation, "Title"
        GoTo LInput
    Else
        xScreen = Application.ScreenUpdating
        Application.ScreenUpdating = False
        For I = 1 To xCount
            ActiveSheet.Range("A1").Value = " Company-00" & I
            ActiveSheet.PrintOut
        Next
        ActiveSheet.Range("A1").ClearContents
        Application.ScreenUpdating = xScreen
    End If
End Sub
Florid John Gonzales
la source
Qu'est-ce que ça fait pour toi? Est-ce que ça marche? Où ça casse? (Astuce, ce GoTo LInputn'est pas une pratique de codage, mais cela peut quand même être fonctionnel.)
FreeMan
il imprimait 1 numéro par page mais j'avais besoin d'une fonction qui fonctionne pour 4 numéros séquentiels sur chaque page. Par exemple: la première page imprimée contient les numéros 001, 002, 003 et 004, puis la deuxième impression apparaîtra 005,006,007,008 et ainsi de suite.
Florid John Gonzales

Réponses:

0

Utilisez ceci


Option Explicit

Public Sub IncrementPrint()
    Dim resp As Variant, scr As Boolean, i As Long, j As Long

On Error Resume Next
    resp = Application.InputBox(Prompt:="Please enter the number of copies to print:", _
                                Title:="Select Total Print Copies", Type:=1)
On Error GoTo 0

    If resp = False Then Exit Sub
    If resp < 1 Or resp > 100 Then
        MsgBox "Invalid number: " & resp & " (Enter 1 to 100)", vbExclamation, "Try Again"
        Exit Sub
    End If

    scr = Application.ScreenUpdating
    Application.ScreenUpdating = False
    j = 0
    For i = 1 To resp
        ActiveSheet.Range("A1").Value2 = " Company-00" & i + 0 + j
        ActiveSheet.Range("C1").Value2 = " Company-00" & i + 1 + j
        ActiveSheet.Range("E1").Value2 = " Company-00" & i + 2 + j
        ActiveSheet.Range("G1").Value2 = " Company-00" & i + 3 + j
        ActiveSheet.PrintOut
        j = j + 3
    Next i
    ActiveSheet.Range("A1,C1,E1,G1").ClearContents
    Application.ScreenUpdating = scr
End Sub
paul bica
la source
1
merci paul, ça a marché. Mais que se passe-t-il si je veux partir d'un numéro, pas 1 ou 0 .. disons que je me suis arrêté à partir de 052 et que j'aimerais imprimer le numéro de série restant à partir de 053? désolé, je suis très nouveau dans ce domaine ..
Florid John Gonzales
Une autre chose, j'ai essayé d'exécuter ce code à quelques reprises pour vérifier si cela fonctionne, j'ai remarqué que l'impression deux fois par page. Je ne sais pas pourquoi cela se passe. Quel semble être le problème?
Florid John Gonzales
Je ne sais pas quel est le problème (je n'ai pas d'imprimante, alors pour exécuter le code, j'ai commenté la ligne d'impression), mais je soupçonne quelque chose et j'ai apporté quelques modifications. Veuillez réessayer et s'il n'est pas corrigé, utilisez l'ancien code pour voir s'il fait la même chose. Laissez-moi savoir comment ça marche
paul bica
merci encore paul, le code a fonctionné sans heurts. Puis-je savoir quel est le problème sur le premier code peut-être?
Florid John Gonzales
Content que ça marche! Le premier code n'a incrémenté que l'étiquette dans la cellule A1. J'ai ajouté les 3 autres cellules et je me suis également assuré que l'étiquette leur incrémentait à chaque itération (à l'aide de la nouvelle variable j). J'ai également limité la réponse de l'utilisateur à 100 copies au cas où son clavier
resterait