Bonjour,
Merci pour cette macro.
Je pense qu'on est sur la bonne voie.
Je l'ai testé et le pb est que même si les cases du mois sont remplie, la macro balance le message (Une note n'a pas été remplie...)
ça marche sur la colonne du mois de Janvier. Je pense qu'il y a un soucis avec l'offset
Sub Bouton3_Cliquer()
Dim Mois As Integer
Mois = Month(Date)
Mois = InputBox("Mois à traiter", "Veuillez saisir", Mois) - 1 ' Peut être mis en commentaire aprés les tests
If [D7].Offset(0, Mois) = "" Or [D11].Offset(0, Mois) = "" Or [D15].Offset(0, Mois) = "" Or [D19].Offset(0, Mois) = "" Or [D23].Offset(0, Mois) = "" Then
MsgBox ("Une note n'a pas été remplie, relancer l'agent de maîtrise correspondant")
Exit Sub
End If
With Rows("45:100")
.Hidden = False
With ActiveSheet
.PageSetup.PrintArea = "$B$45:$N$100"
.PrintPreview
End With
.Hidden = True
End With
End Sub
Bonjour ,
Pour l'offset , oui , il faut bien sur enlever 1 du mois , voici le nouveau code .
Pour ce qui est des données , c'est la conception de la zone du données du graphe qui est à revoir . aucun rapport avec le code donc
Code:Sub Bouton3_Cliquer() Dim Mois As Integer Mois = Month(Date) Mois = InputBox("Mois à traiter", "Veuillez saisir", Mois) - 1 ' Peut être mis en commentaire aprés les tests If [D7].Offset(0, Mois) = "" Or [D11].Offset(0, Mois) = "" Or [D15].Offset(0, Mois) = "" Or [D19].Offset(0, Mois) = "" Or [D23].Offset(0, Mois) = "" Then MsgBox ("Une note n'a pas été remplie, relancer l'agent de maîtrise correspondant") Exit Sub End If With Rows("45:100") .Hidden = False With ActiveSheet .PageSetup.PrintArea = "$B$45:$N$100" .PrintPreview End With .Hidden = True End With End Sub
sub Bouton3_Cliquer()
Dim Mois As Integer
Bis:
Mois = Month(Date)
Mois = InputBox("Mois à traiter", "Veuillez saisir", Mois) - 1 ' Peut être mis en commentaire aprés les tests
If [D7].Offset(0, Mois + 1) & [D11].Offset(0, Mois + 1) & [D15].Offset(0, Mois + 1) & [D19].Offset(0, Mois + 1) & [D23].Offset(0, Mois + 1) <> "" Then
If Month(Date) = Mois + 1 Then MsgBox "Le choix du mois est erronné"
GoTo Bis
End If
If [D7].Offset(0, Mois) = "" Or [D11].Offset(0, Mois) = "" Or [D15].Offset(0, Mois) = "" Or [D19].Offset(0, Mois) = "" Or [D23].Offset(0, Mois) = "" Then
MsgBox ("Une note n'a pas été remplie, relancer l'agent de maîtrise correspondant")
Exit Sub
End If
With Rows("45:100")
.Hidden = False
With ActiveSheet
.PageSetup.PrintArea = "$B$45:$N$100"
.PrintPreview
End With
.Hidden = True
End With
End Sub
Ok ,
A tester pour ce point , l'on boucle sur la saisie du mois si l'on essai de tricher
Code:sub Bouton3_Cliquer() Dim Mois As Integer Bis: Mois = Month(Date) Mois = InputBox("Mois à traiter", "Veuillez saisir", Mois) - 1 ' Peut être mis en commentaire aprés les tests If [D7].Offset(0, Mois + 1) & [D11].Offset(0, Mois + 1) & [D15].Offset(0, Mois + 1) & [D19].Offset(0, Mois + 1) & [D23].Offset(0, Mois + 1) <> "" Then If Month(Date) = Mois + 1 Then MsgBox "Le choix du mois est erronné" GoTo Bis End If If [D7].Offset(0, Mois) = "" Or [D11].Offset(0, Mois) = "" Or [D15].Offset(0, Mois) = "" Or [D19].Offset(0, Mois) = "" Or [D23].Offset(0, Mois) = "" Then MsgBox ("Une note n'a pas été remplie, relancer l'agent de maîtrise correspondant") Exit Sub End If With Rows("45:100") .Hidden = False With ActiveSheet .PageSetup.PrintArea = "$B$45:$N$100" .PrintPreview End With .Hidden = True End With End Sub
Et oui ,
Cela fonctionne , mais tu ne peux le tester comme cela :
c'est l'équation : If Month(Date) = Mois + 1 qui gére le message et comme le mois actuel est 1 voilà .
Reviens au mois de février pour me dire si ok ou
if month(date)+1 = mois +1
voili , voilà
Sub Bouton3_Cliquer()
Dim Mois As Variant
Bis:
Mois = Month(Date)
Mois = InputBox("Entrée le n° du mois à imprimer", "Attente saisie", Mois) ' Peut être mis en commentaire aprés les tests
If Mois <> "" Then
If Not IsNumeric(Mois) Then MsgBox "Saisir le mois sous forme d'un nombre de 1 à 12": GoTo Bis
If CLng(Mois) <> Int(Mois) Then MsgBox "Saisir le mois sous forme d'un nombre de 1 à 12 sans décimal": GoTo Bis
Mois = Mois - 1
If [D7].Offset(0, Mois + 1) & [D11].Offset(0, Mois + 1) & [D15].Offset(0, Mois + 1) & [D19].Offset(0, Mois + 1) & [D23].Offset(0, Mois + 1) <> "" Then
MsgBox "Le choix du mois est erronné"
GoTo Bis
End If
If [D7].Offset(0, Mois) = "" Or [D11].Offset(0, Mois) = "" Or [D15].Offset(0, Mois) = "" Or [D19].Offset(0, Mois) = "" Or [D23].Offset(0, Mois) = "" Then
MsgBox ("Une note n'a pas été remplie, relancer l'agent de maîtrise correspondant")
Exit Sub
End If
Mois = Mois + 1
If [D7].Offset(0, Mois) <> "" And [D11].Offset(0, Mois) <> "" And [D15].Offset(0, Mois) <> "" And [D19].Offset(0, Mois) <> "" And [D23].Offset(0, Mois) <> "" Then
MsgBox "Le choix du mois est erronné"
GoTo Bis
End If
With Rows("45:100")
.Hidden = False
With ActiveSheet
.PageSetup.PrintArea = "$B$45:$N$100"
.PrintPreview
End With
.Hidden = True
End With
End If
End Sub
Sub Bouton3_Cliquer()
Dim Mois As Variant
Bis:
Mois = Month(Date)
Mois = InputBox("Entrée le n° du mois à imprimer", "Attente saisie", Mois) ' Peut être mis en commentaire aprés les tests
If Mois <> "" Then
If Not IsNumeric(Mois) Then MsgBox "Saisir le mois sous forme d'un nombre de 1 à 12": GoTo Bis
If CLng(Mois) <> Int(Mois) Then MsgBox "Saisir le mois sous forme d'un nombre de 1 à 12 sans décimal": GoTo Bis
If mois< 1 or mois >12 Then MsgBox "Saisir un nombre de 1 à 12 pour le numéro de mois": GoTo Bis
Mois = Mois - 1
If [D7].Offset(0, Mois + 1) & [D11].Offset(0, Mois + 1) & [D15].Offset(0, Mois + 1) & [D19].Offset(0, Mois + 1) & [D23].Offset(0, Mois + 1) <> "" Then
MsgBox "Le choix du mois est erronné"
GoTo Bis
End If
If [D7].Offset(0, Mois) = "" Or [D11].Offset(0, Mois) = "" Or [D15].Offset(0, Mois) = "" Or [D19].Offset(0, Mois) = "" Or [D23].Offset(0, Mois) = "" Then
MsgBox ("Une note n'a pas été remplie, relancer l'agent de maîtrise correspondant")
Exit Sub
End If
Mois = Mois + 1
If [D7].Offset(0, Mois) <> "" And [D11].Offset(0, Mois) <> "" And [D15].Offset(0, Mois) <> "" And [D19].Offset(0, Mois) <> "" And [D23].Offset(0, Mois) <> "" Then
MsgBox "Le choix du mois est erronné"
GoTo Bis
End If
With Rows("45:100")
.Hidden = False
With ActiveSheet
.PageSetup.PrintArea = "$B$45:$N$100"
.PrintPreview
End With
.Hidden = True
End With
End If
End Sub
Bonjour ,
Je ne comprends pas bien la demande , pour le coup c'est déjà le cas ,
il faudrait détailler un peu plus,
Mais ce n'est pas que tu paramètrage je pense ...