XL 2010 Créer une numérotation à partir d'un numéro et mise en page avec les résultats

crem

XLDnaute Nouveau
Bonjour à tous, je ne suis pas à l'aise avec les macros et je cherche de l'aide pour réaliser un petit outil pour mon activité.
En effet nous travaillons avec un entrepôt déporté et nous envoyons des palettes vers cet entrepôt.
je donne les numéros aux équipes, selon leur demande, X numéros de palettes du numéro A au numéro AAA imprimées en double exemplaire sur un format A4.
Ma question est : est ce possible de créer une macro avec une boite de dialogue dans la laquelle nous pourrions remplir le dernier numéro de palette envoyée, le nombre de palettes souhaitées, en validant ce choix excel incrémente le nombre palettes souhaitées en fonction du dernier numéro saisi, puis mets en forme ces numéros de façon à pouvoir imprimer un numéro par feuille .

Voilà je ne sais pas si c'est suffisamment clair. j'ai essayé quelques commandes en incrémentant mais je n'arrive pas à avoir les dix numéros par exemple ....
Je vous remercie tous par avance !!
 

Pièces jointes

  • numero.xlsx
    117.1 KB · Affichages: 25
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Crem, bonjour le forum,

Essaie comme ça :

VB:
Sub Macro1()
Dim I As Integer 'déclare la variable I (Incrément)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)

Set OS = Worksheets(1) 'définit l'onglet source OS
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
If Sheets.Count > 1 Then 'si le nombre d'onglets du classeur est suppérieur à 1
    For I = Sheets.Count To 2 Step -1 'boucle inversée sur tous les onglets du classeur (sauf le premier)
        Application.DisplayAlerts = False 'empêche les messages d'Excel
        Sheets(I).Delete 'suppime l'onglet
    Next I 'prochain onglet de la boucle
    Application.DisplayAlerts = True 'affiche les messages d'Excel
End If 'fin de la condition

If OS.Range("B3").Value <> "" Then 'condition : si B3 n'est pas vide
    For I = 1 To Range("B3").Value 'boucle de 1 à la valeur en B3
        Sheets.Add after:=Sheets(Sheets.Count) 'ajoute un onglet en derniere position
        With ActiveSheet.Range("A1") 'prend en compte la cellule A1 l'onglet actif
            .Value = OS.Range("B1").Value + I 'envoie dans A1 la valeur en B3 de l'onglet OS plus I
            .Font.Size = 300 'définit la taille de la police en A1 (à adapter à ton cas)
        End With 'fin de la prise en compte de la cellule A1 de l'onglet actif
        With ActiveSheet.PageSetup 'prend en compte la mise en page de l'onglet Actif
            .PaperSize = xlPaperA4 'taille : A4
            .Orientation = xlLandscape 'orientation : paysage
        End With 'fin de la prise en compte de la mise en page de l'onglet actif
        ActiveSheet.PrintOut 'inprime l'onglet actif
    Next I 'prochaine valeur de la boucle
Application.ScreenUpdating = True 'affiche les reaffraîchissements d'écran
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re,

La macro modifié :

VB:
Sub Macro1()
Dim I As Integer 'déclare la variable I (Incrément)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)

Set OS = Worksheets(1) 'définit l'onglet source OS
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
If Sheets.Count > 1 Then 'si le nombre d'onglets du classeur est suppérieur à 1
    For I = Sheets.Count To 2 Step -1 'boucle inversée sur tous les onglets du classeur (sauf le premier)
        Application.DisplayAlerts = False 'empêche les messages d'Excel
        Sheets(I).Delete 'suppime l'onglet
    Next I 'prochain onglet de la boucle
    Application.DisplayAlerts = True 'affiche les messages d'Excel
End If 'fin de la condition

If OS.Range("B3").Value <> "" Then 'condition : si B3 n'est pas vide
    For I = 1 To Range("B3").Value 'boucle de 1 à la valeur en B3
        Sheets.Add after:=Sheets(Sheets.Count) 'ajoute un onglet en derniere position
        With ActiveSheet.Range("A1") 'prend en compte la cellule A1 l'onglet actif
            .Value = OS.Range("B1").Value + I 'envoie dans A1 la valeur en B3 de l'onglet OS plus I
            .Font.Size = 300 'définit la taille de la police en A1 (à adapter à ton cas)
            .Font.Bold = True 'police gras
            .HorizontalAlignment = xlCenter 'alignement centré
        End With 'fin de la prise en compte de la cellule A1 de l'onglet actif
        With ActiveSheet.PageSetup 'prend en compte la mise en page de l'onglet Actif
            .PaperSize = xlPaperA4 'taille : A4
            .CenterHorizontally = True 'centre horizontalement
            .CenterVertically = True 'centre verticalement
            .Orientation = xlLandscape 'orientation : paysage
        End With 'fin de la prise en compte de la mise en page de l'onglet actif
        ActiveSheet.PrintOut copies:=2 'inprime l'onglet actif
    Next I 'prochaine valeur de la boucle
End If
Application.ScreenUpdating = True 'affiche les reaffraîchissements d'écran
End Sub

Pour modifier la taille, modifie la valeur de la ligne de code : .Font.Size = 300
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG