Boucle avec double numérotation

slaurent01

XLDnaute Junior
Je dois réaliser un petit programme de numérotation de carnets avec :
- un numéro correspondant au numéro de carnet restant fixe pour la totalité du carnet
- une numérotation croissante selon des bornes départ-fin

Grâce à de l'aide je peux lancer une macro et numéroter un carnet. Toutefois je souhaiterai pouvoir numéroter plusieurs carnets en une seule macro au lieu de la relancer à chaque fois.


Je n'arrive pas à trouver la solution et me tourne vers vous afin d'obtenir de l'aide.
Ma demande sera j'espère plus compréhensible avec le fichier ci-joint.

Par avance merci

Cordialement
Stéphane
 

Pièces jointes

  • test numerotation.xlsm
    13.2 KB · Affichages: 41

ROGER2327

XLDnaute Barbatruc
Re : Boucle avec double numérotation

Bonsoir slaurent01, bonsoir à tous.


Essayez :​
VB:
Sub TEST1()
Dim c As Integer    'N° du carnet valeur fixer à répéter suivant le nombre de feuillets
Dim nc As Integer   'Nombre de carnets à imprimer
Dim i As Long    'incrémentation du numéro du feuillet
Dim j%, k&, nf%, nl%

  c = InputBox("Entrez le numéro du premier carnet ")
  nc = InputBox("Entrez le nombre de carnets à imprimer")
  nf = InputBox("Entrez le nombre de feuillets à numéroter")
  nl = InputBox("Entrez le numéro de départ des liasses")

  For i = 0 To nc - 1
    k = 1 + 10 * nf * i
    For j = 0 To nf - 1
      Cells(k, 7) = c + i
      Cells(k, 9) = nl + j
      k = k + 10
    Next
  Next

End Sub
Ou, beaucoup plus rapide :​
VB:
Sub TEST2()
Dim i%, j%, k&, c%, nc%, nf%, nl%, v()
Const p& = 10

  c = InputBox("Entrez le numéro du premier carnet ")
  nc = InputBox("Entrez le nombre de carnets à imprimer")
  nf = InputBox("Entrez le nombre de feuillets à numéroter")
  nl = InputBox("Entrez le numéro de départ des liasses")

  With [G1:I1].Resize(p * nc * nf, 3)
    v = .Value
  
    For i = 0 To nc - 1
      k = 1 + p * nf * i
      For j = 0 To nf - 1
        v(k, 1) = c + i
        v(k, 3) = nl + j
        k = k + p
      Next
    Next
  
    .Value = v
  End With

End Sub


Bonne nuit.


ℝOGER2327
#7236


Mardi 17 Clinamen 141 (Saint Hiéronymus Bosch, démonarque - fête Suprême Quarte)
19 Germinal An CCXXII, 9,9948h - radis
2014-W15-2T23:59:15Z
 

slaurent01

XLDnaute Junior
Re : Boucle avec double numérotation

Bonjour le forum,

Bonjour Roger2327 et Staple1600, désolé d'avoir omis la règle la plus élémentaire de politesse, ce n'est pas à mon habitude.....
Et je prends bonne note de la seconde remarque lors de mes futurs post.

Merci pour tes réponses Roger2327, je teste les codes ce matin et reviens vers vous.

Bonne journée
Cordialement
stéphane
 

slaurent01

XLDnaute Junior
Re : Boucle avec double numérotation

Bonjour le forum,

J'ai donc testé les codes Roger2327, mais ca ne fonctionne pas correctement.

En fait si j'ai 10 carnets (du numéro 1 à 10) de 25 feuillets (du numéro 1 à 25) à imprimer il faudrait que :

dans la colonne G s'incrémente 25 fois le chiffre 1 et dans la colonne I en parallèle la numérotion 1.2.3.... jusqu'à 25,
puis dans la colonne G s'incrémente 25 fois le chiffre 2 et dans la colonne I en parallèle la numérotation 1.2.3..... jusqu'à 25 et ainsi de suite, avec un saut de pas de 10.

Merci par avance si vous pouvez m'apporter de nouveau votre aide.

Cordialement
stéphane
 

ROGER2327

XLDnaute Barbatruc
Re : Boucle avec double numérotation

Re...


VB:
Sub TEST3()
Dim i%, j%, k&, c%, nc%, nf%, v()
Const p& = 10

  c = InputBox("Entrez le numéro du premier carnet ")
  nc = InputBox("Entrez le nombre de carnets à imprimer")
  nf = InputBox("Entrez le nombre de feuillets à numéroter")

  With [G1:I1].Resize(p * nc * nf, 3)
    v = .Value
 
    For i = 0 To nc - 1
      k = 1 + p * nf * i
      For j = 1 To nf 
        v(k, 1) = c + i
        v(k, 3) =  j
        k = k + p
      Next
    Next
 
    .Value = v
  End With

End Sub
?


ℝOGER2327
#7237


Mercredi 18 Clinamen 141 (Les 27 Êtres Issus des Livres Pairs - Vacuation)
20 Germinal An CCXXII, 3,9092h - ruche
2014-W15-3T09:22:55Z
 
Dernière édition:

slaurent01

XLDnaute Junior
Résolu : Boucle avec double numérotation

re....

J'ai testé le code, et ca marche impeccable ! je vous remercie pour votre aide et pour le temps que vous avez consacré à mon problème.
Je vais tenter maintenant d'en comprendre la syntaxe.

Merci et bonne journée.
Cordialement
Stéphane
 

ROGER2327

XLDnaute Barbatruc
Re : Résolu : Boucle avec double numérotation

Re...


re....

J'ai testé le code, et ca marche impeccable ! (...)
Au poil.​


(...)
Je vais tenter maintenant d'en comprendre la syntaxe.
(...)
Il n'y a rien de bien subtil. Voyez les quelques commentaires dans le fichier joint.
(Le document est aisément modifiable : il suffit de l'ouvrir avec LibreOffice Writer.)


(...)
Merci et bonne journée.
Cordialement
Stéphane
Merci. Bonne soirée.​


ℝOGER2327
#7238


Mercredi 18 Clinamen 141 (Les 27 Êtres Issus des Livres Pairs - Vacuation)
20 Germinal An CCXXII, 5,3033h - ruche
2014-W15-3T12:43:41Z
 

Pièces jointes

  • Commentaire de code.pdf
    61.9 KB · Affichages: 37
Dernière édition:

slaurent01

XLDnaute Junior
Re : Boucle avec double numérotation

Re......

Un grand merci pour le fichier explicatif, obtenir de l'aide pour un code c'est bien, mais en plus avoir toute l'explication et surtout de pouvoir la comprendre et pouvoir s'enrichir c'est vraiment le top!!, surtout pour moi qui suis débutant dans le vba ....

Cordialement
Stéphane LAURENT
 

Discussions similaires

Statistiques des forums

Discussions
312 487
Messages
2 088 823
Membres
103 971
dernier inscrit
abdazee