XL 2016 Problème de version d'excel

sebbbbb

XLDnaute Impliqué
Bonjour a tous

Je travaille depuis plusieurs années sur un fichier que je développe chez moi lorsque j'ai du temps libre et que j'installe au bureau. Jusqu'à présent je n'ai jamais eu de problème entre les deux versions de excel utilisés :

- Microsoft office 2007 à la maison et
- Microsoft office standard 2016 au bureau

Je viens de me rendre que certain scrips fonctionnent bien sur le fichier que je développe à la maison mais ne fonctionnent plus au bureau. Alors que c'est exactement le même fichier.

ci-dessous un des scrips qui pose ne fonctionne pas (pas de message d'erreur mais le blocage de l'impression selon condition ne fonctionne pas)

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "D1 Airbus" Or ActiveSheet.Name = "D1 E&S" Or ActiveSheet.Name = "New D1" Then
If Sheets("SSI").Visible Then
If Sheets("SSI").Range("A16").Value = "" Then
Cancel = True
MsgBox "ATTENTION " & vbLf & vbLf & _
"Impression autorisée seulement après confirmation que les points suivants ont été traités (cellule cochée dans L'ONGLET SSI) :" & vbLf & vbLf & _
"- Cocher Cellule A16 = déclaration Marpol déposée sur S-Wing" & vbLf & vbLf & _
"Pour la bonne transmission du dossier entre agent, la cellule ne doit être cochée que si le doc à bien été traité / transmis - Merci"

End If
End If
End If

End sub

Y comprenez vous quelque chose ? avez vous deja eu ce prob ? S'agit il d'un prob de compatibilité entre versions ?

merci par avance
seb
 

soan

XLDnaute Barbatruc
Inactif
Bonjour seb,

Essaye avec ce code VBA :
VB:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
  Dim FX$: FX = ActiveSheet.Name
  If FX <> "D1 Airbus" And FX <> "D1 E&S" And FX <> "New D1" Then Exit Sub
  If Not Worksheets("SSI").Visible Then Exit Sub
  If [SSI!A16] <> "" Then Exit Sub
  Cancel = True
  MsgBox "ATTENTION " & vbLf & vbLf & _
    "Impression autorisée seulement après confirmation que les points suivants ont été traités " & _
    "(cellule cochée dans L'ONGLET SSI) :" & vbLf & vbLf & "- Cocher Cellule A16 = déclaration " & _
    "Marpol déposée sur S-Wing" & vbLf & vbLf & "Pour la bonne transmission du dossier entre " & _
    "agent, la cellule ne doit être cochée que si le doc à bien été traité / transmis - Merci"
End Sub
Si ça marche, je te laisse cliquer sur « Marquer comme solution » ;
sinon, je n'ai pas d'autre idée à proposer.

soan
 

sebbbbb

XLDnaute Impliqué
Bonsoir Soan
merci pour ton aide.
Ton code fonctionne parfaitement...et le mien aussi :)
En fait la différence entre les 2 versions d'excel réside dans le fait que sur excel 2007, le message d'alerte arrive instantanément avant les paramètres d'impression (qui sont bloqués) alors que sur 2016, c'est l'inverse.
Apparition de l'écran avec les paramètres d'impression et lorsqu'on valide l'impression, c'est là que le message se présente...ce qui est moins bien mais je crois que l'on ne peut rien y faire.
mais mon prob n'existe plus. merci à toi
 

soan

XLDnaute Barbatruc
Inactif
Tu as écris : « c'est là que le message se présente... »

Donc tu mets « DisplayAlerts = False » juste avant ce qui déclenche ce message,
et après que le « moment critique » est passé, tu mets « DisplayAlerts = True » ;
donc finalement, ça peut être bien avant le End Sub.

soan
 

Discussions similaires

Réponses
5
Affichages
714

Statistiques des forums

Discussions
314 628
Messages
2 111 332
Membres
111 103
dernier inscrit
Maxime@mar