Excel / macro à modifier /

Résolu
benji71 Messages postés 738 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir à tous et ttes,

Grâce à l'un d'entre vous (pour ne pas le citer eriiic), j'ai un macro qui me permet d'imprimer 4 un certain nombre de mois à partir de la date indiqué dans la cellule e16.
Le principe est que si je veux imprimer, je clic sur la bouton avec la macro, il me demande le nombre de mois que je souhaite imprimer..et la magie s'opère...il imprime autant de mois que je souhaite (max 12).
Tout est super bien fait ..Mais j'aurais une demande.

Lorsque j'indique le nombre de mois (par ex. 3) la cellule e16, après avoir lancé l'impression indique le mois de décembre si le mois en e16 est octobre.

J'aurais souhaité faire en sorte que le mois indiqué en e16 reste le même, même après avoir lancé l'impression. Ce qui reviendrait à cliquer sur le bouton imprimer, répondre à la question du nombre de mois et puis ok et là, à la place que la date change, que celle-ci reste la même.

Vous l'aurez compris, les macros n'étant que tres peu mon terrain de jeu...j'en appelle à vos connaissance pour m'aider....voici la macro (made in eriiic)

Sub imprimer()
Dim nmois As Long, mois As Long, année As Long, m As Long, saisie As String
saisie = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 4)
If IsNumeric(saisie) Then
nmois = CLng(saisie)
If nmois > 12 Then nmois = 12
mois = Month([e16])
année = Year([e16])
For m = 1 To nmois
'MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
Worksheets("SAEC - G.prév.").PrintOut copies:=2
mois = mois Mod 12 + 1
année = année - (mois = 1)
[e16] = DateValue("01/" & mois & "/" & année)
Next m
Else
MsgBox ("Saisie non conforme")
End If
End Sub


Merci de votre aide.

Berni///
A voir également:

2 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonsoir,

essaie avec :
Sub imprimer()
    Dim nmois As Long, mois As Long, année As Long, m As Long, saisie As String, savDate As Date
    saisie = InputBox("Nombre de mois à imprimer ?", "Nombre de mois", 4)
    If IsNumeric(saisie) Then
        nmois = CLng(saisie)
        If nmois > 12 Then nmois = 12
        savDate = [E16]
        mois = Month([E16])
        année = Year([E16])
        For m = 1 To nmois
            'MsgBox ("impression de " & Format([A20], "mmm/yyyy"))
            Worksheets("SAEC - G.prév.").PrintOut copies:=2
            mois = mois Mod 12 + 1
            année = année - (mois = 1)
            [E16] = DateValue("01/" & mois & "/" & année)
        Next m
        [E16] = savDate
    Else
        MsgBox ("Saisie non conforme")
    End If
End Sub

eric
0
benji71 Messages postés 738 Date d'inscription   Statut Membre Dernière intervention   23
 
quand c'est le papa d'une macro qui répond alors...on ne peut être mieux servi...

un tt grand merci...j'essai ça demain au bureau...car à la maison pas d'imprimante...

merci mr eriiic


berni//
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Ah, je suis arrivé pile-poil ;-)
a+
eric
0