XL 2010 problème de version pour un scrip

sebbbbb

XLDnaute Impliqué
bonjour

le scrip ci-dessous fonctionne tres bien avec excel 2007 mais pas du tout avec excel 2010. Peut on y remédier svp ?

**

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "CSR" Then
If Sheets("CSR").Range("I9").Value = "" Or Sheets("CSR").Range("N9").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer les dates de mise a quai et départ du navire pour pouvoir imprimer"
End If
End If

ensub

**

merci par avance
seb
 

vgendron

XLDnaute Barbatruc
Bonjour,

en ajoutant un t à scrip... :-D
sinon, en écrivant End Sub correctement..

VB:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "CSR" Then
If Sheets("CSR").Range("I9").Value = "" Or Sheets("CSR").Range("N9").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer les dates de mise a quai et départ du navire pour pouvoir imprimer"
End If
End If

End Sub
à moins que l'évènement beforePrint ait été supprimé de office 2010 puis remis sur 2016 ?
 

sebbbbb

XLDnaute Impliqué
en fait j'ai exactement le même fichier installé sur 2 ordi différents

chez moi excel 2007 et le script fonctionne parfaitement

au boulot excel 2010 et le code vba ne se lance pas. Aucun message qui apparait et l'impression n'est pas bloquée

bizarre non ?
 

sebbbbb

XLDnaute Impliqué
Bonjour

voici donc le script total tel qu'il apparait dans workbook

**
Option Explicit
Const PleinEcran$ = "Feuil110,Feuil331,Feuil341,Feuil351,Feuil161,Feuil311,Feuil301,Feuil361,Feuil511,Feuil551,Feuil641" 'CodeNames des feuilles en plein écran, à adapter
Dim desactive As Boolean 'mémorisation de la variable

Private Sub Workbook_Activate()
Workbook_SheetActivate ActiveSheet
End Sub

Private Sub Workbook_Deactivate()
desactive = True
Workbook_SheetActivate ActiveSheet
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not desactive And InStr("," & PleinEcran & ",", "," & Sh.CodeName & ",") Then
Application.DisplayFullScreen = True
If Application.CutCopyMode Then Exit Sub 'autorisation pour des copier/coller
Application.DisplayFormulaBar = False 'facultatif
ActiveWindow.DisplayHeadings = False 'facultatif
ActiveWindow.DisplayGridlines = False 'facultatif
ActiveWindow.DisplayHorizontalScrollBar = False 'facultatif
ActiveWindow.DisplayVerticalScrollBar = False 'facultatif

Else
desactive = False
Application.DisplayFullScreen = False
ActiveWindow.WindowState = xlMaximized
If Application.CutCopyMode Then Exit Sub 'autorisation pour des copier/coller
Application.DisplayFormulaBar = True 'facultatif
ActiveWindow.DisplayHeadings = True 'facultatif
ActiveWindow.DisplayGridlines = False 'facultatif
ActiveWindow.DisplayHorizontalScrollBar = True 'facultatif
ActiveWindow.DisplayVerticalScrollBar = True 'facultatif
End If

End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets("Fiche Données").Range("M2") = "" Then MsgBox "SVP INDIQUER LE DONNEUR D'ORDRE DANS L'ONGLET 'FICHE DONNEES'": Cancel = True
If Sheets("Fiche Données").Range("A5") = "" Then MsgBox "MERCI INDIQUER LE NOM DU CHARGEUR ET / OU DU RECEPTIONNAIRE DE LA MARCHANDISE DANS L'ONGLET 'FICHE DONNEES'": Cancel = True
If Sheets("Fiche Données").Range("A20") = "" Then MsgBox "SVP INDIQUER LE PORT DE PROVENANCE DANS L'ONGLET 'FICHE DONNEES'": Cancel = True
If Sheets("Fiche Données").Range("U20") = "" Then MsgBox "SVP INDIQUER LE PORT DE DESTINATION DANS L'ONGLET 'FICHE DONNEES'": Cancel = True
If Sheets("Fiche Données").Range("Y16") = "2" And Sheets("Fiche Données").Range("A24") = "" Then MsgBox "SVP INDIQUER LA MARCHANDISE A DECHARGER DANS L'ONGLET 'FICHES DONNEES'": Cancel = True
If Sheets("Fiche Données").Range("Y16") = "3" And Sheets("Fiche Données").Range("U24") = "" Then MsgBox "SVP INDIQUER LA MARCHANDISE A CHARGER DANS L'ONGLET 'FICHES DONNEES'": Cancel = True
If Sheets("Fiche Données").Range("Y16") = "7" And Sheets("Fiche Données").Range("A24") = "" Then MsgBox "SVP INDIQUER LA MARCHANDISE A DECHARGER DANS L'ONGLET 'FICHES DONNEES'": Cancel = True
If Sheets("Fiche Données").Range("Y16") = "7" And Sheets("Fiche Données").Range("U24") = "" Then MsgBox "SVP INDIQUER LA MARCHANDISE A CHARGER DANS L'ONGLET 'FICHES DONNEES'": Cancel = True

End Sub

Private Sub Workbook_Open()
If Worksheets("DA").Visible = True Then Exit Sub
If Worksheets("DA N°1").Visible = True Then Exit Sub
Worksheets("Fiche Données").Activate
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Worksheets("DA").Visible = True Then Exit Sub
If Worksheets("DA N°1").Visible = True Then Exit Sub
If MsgBox(" SVP, MERCI CONFIRMER QUE VOUS AVEZ :" & vbCrLf & vbCrLf & vbCrLf & "- Mis a jour la check list (avec date & initiales)" & vbLf & vbLf & "- Mis a jour S.Wing" & vbLf & vbLf & "- Actualisé l'écran du bureau" & vbLf & vbLf & "- Envoyé L'email quotidien avec les prospects actualisés" & vbLf & vbLf & "- Mis à jour l'eventuel hub system (youriss / eyefreight / DA desk)", 292, " BONJOUR " & Environ("UserName") & " AVANT DE FERMER CE FICHIER,") = 6 Then
Else
Cancel = True
End If
Dim I
For I = 1 To ActiveWorkbook.Worksheets.Count
If Sheets(I).Name Like ("CList" & "*") Then
Sheets(I).Activate
Exit Sub
End If
Next I
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)

If ActiveSheet.Name = "CSR" Then
If Sheets("CSR").Range("I9").Value = "" Or Sheets("CSR").Range("N9").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer les dates de mise a quai et départ du navire pour pouvoir imprimer"
End If
End If

If ActiveSheet.Name = "Sof Tata" Then
If Sheets("Sof Tata").Range("A9").Value = "" Or Sheets("Sof Tata").Range("F7").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer le nom de l'armateur / opérateur et du Commandant du navire pour pouvoir imprimer"
End If
End If

If ActiveSheet.Name = "Sof Conventionnel" Then
If Sheets("Sof Conventionnel").Range("A8").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer le nom de l'armateur ou opérateur pour pouvoir imprimer"
End If
End If

If ActiveSheet.Name = "SOF clinker" Then
If Sheets("SOF clinker").Range("A11").Value = "" Or Sheets("SOF clinker").Range("F9").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer le nom de l'armateur / opérateur et du Commandant du navire pour pouvoir imprimer"
End If
End If

If ActiveSheet.Name = "SOF 1" Then
If Sheets("SOF 1").Range("A10").Value = "" Or Sheets("SOF 1").Range("F7").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer le nom de l'armateur / opérateur et du Commandant du navire pour pouvoir imprimer"
End If
End If

If ActiveSheet.Name = "Sof export" Then
If Sheets("Sof export").Range("A10").Value = "" Or Sheets("Sof export").Range("F7").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer le nom de l'armateur / opérateur et du Commandant du navire pour pouvoir imprimer"
End If
End If

If ActiveSheet.Name = "SOF GNL import" Then
If Sheets("SOF GNL import").Range("D14").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer le nom de l'armateur / opérateur pour pouvoir imprimer"
End If
End If

If ActiveSheet.Name = "SOF GNL export" Then
If Sheets("SOF GNL export").Range("D14").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer le nom de l'armateur / opérateur pour pouvoir imprimer"
End If
End If

If ActiveSheet.Name = "Sof ammo import" Then
If Sheets("Sof ammo import").Range("A9").Value = "" Or Sheets("Sof ammo import").Range("F7").Value = "" Then
Cancel = True
MsgBox "Veuillez insérer le nom de l'armateur / opérateur et du Commandant du navire pour pouvoir imprimer"
End If
End If

If ActiveSheet.Name = "SOF EXXON" Then
If Sheets("Fiche Données").Range("E15").Value = "DONGES N°" Then Cancel = True
MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
End If

If ActiveSheet.Name = "Sof Airbus" Then
If Sheets("Fiche Données").Range("E15").Value = "RORO N°" Then Cancel = True
MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
End If

If ActiveSheet.Name = "SOF GNL import" Then
If Sheets("Fiche Données").Range("E15").Value = "GDF N°" Then Cancel = True
MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
End If

If ActiveSheet.Name = "SOF GNL export" Then
If Sheets("Fiche Données").Range("E15").Value = "GDF N°" Then Cancel = True
MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
End If

If ActiveSheet.Name = "Sof ammo yara import" Then
If Sheets("Fiche Données").Range("E15").Value = "CHEVIRE N°" Then Cancel = True
MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
End If

If ActiveSheet.Name = "SOF 1" Then
If Sheets("Fiche Données").Range("E15").Value = "TAA N°" Then Cancel = True
MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
End If


End Sub

**

Donc comme expliqué précédement, avec le même fichier tout fonctionne bien chez moi sur mon ordi avec excel 2007 , mais une partie du script ne fonctionne pas sur mon ordi boulot avec excel 2010 (toute la partie qui bloque l'impression)

je mets en vert ce qui ne fonstionne pas. L'impression ne se lance pas seulement sur l'ordi du boulot (mais fonctionne tres bien chez moi)

merci
seb
 

vgendron

XLDnaute Barbatruc
il y a surement une différence quelque part.... entre ton pc et celui du boulot (présence d'une imprimante?)
du coup.. pas sur que le problème vienne de ton code "BeforePrint"
je me suis permis de le modifier un peu avec un select case,
et j'ai ajouté un Msgbox pour que tu vérifies que la macro est bien executée

VB:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
MsgBox ("entrée dans le beforePrint")
With ActiveSheet
    Select Case .Name
        Case "CSR"
            If .Range("I9").Value = "" Or .Range("N9").Value = "" Then
                Cancel = True
                MsgBox "Veuillez insérer les dates de mise a quai et départ du navire pour pouvoir imprimer"
            End If

        Case "Sof Tata"
            If .Range("A9").Value = "" Or .Range("F7").Value = "" Then
                Cancel = True
                MsgBox "Veuillez insérer le nom de l'armateur / opérateur et du Commandant du navire pour pouvoir imprimer"
            End If
        End If
        
        Case "Sof Conventionnel"
            If .Range("A8").Value = "" Then
                Cancel = True
                MsgBox "Veuillez insérer le nom de l'armateur ou opérateur pour pouvoir imprimer"
            End If
        
        
        Case "SOF clinker"
            If .Range("A11").Value = "" Or .Range("F9").Value = "" Then
                Cancel = True
                MsgBox "Veuillez insérer le nom de l'armateur / opérateur et du Commandant du navire pour pouvoir imprimer"
            End If
        
        
        Case "SOF 1"
            If .Range("A10").Value = "" Or .Range("F7").Value = "" Then
                Cancel = True
                MsgBox "Veuillez insérer le nom de l'armateur / opérateur et du Commandant du navire pour pouvoir imprimer"
            End If
        
        
        Case Is = "Sof export"
            If .Range("A10").Value = "" Or .Range("F7").Value = "" Then
                Cancel = True
                MsgBox "Veuillez insérer le nom de l'armateur / opérateur et du Commandant du navire pour pouvoir imprimer"
            End If
        
        
        Case "SOF GNL import"
            If .Range("D14").Value = "" Then
                Cancel = True
                MsgBox "Veuillez insérer le nom de l'armateur / opérateur pour pouvoir imprimer"
            End If
        
        
        Case "SOF GNL export"
            If .Range("D14").Value = "" Then
                Cancel = True
                MsgBox "Veuillez insérer le nom de l'armateur / opérateur pour pouvoir imprimer"
            End If
        
        
        Case "Sof ammo import"
            If .Range("A9").Value = "" Or .Range("F7").Value = "" Then
                Cancel = True
                MsgBox "Veuillez insérer le nom de l'armateur / opérateur et du Commandant du navire pour pouvoir imprimer"
            End If


        Case "SOF EXXON"
            If Sheets("Fiche Données").Range("E15").Value = "DONGES N°" Then
                Cancel = True
                MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
            End If
        
        Case "Sof Airbus"
            If Sheets("Fiche Données").Range("E15").Value = "RORO N°" Then
                Cancel = True
                MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
            End If
        
        Case "SOF GNL import"
            If Sheets("Fiche Données").Range("E15").Value = "GDF N°" Then
                Cancel = True
                MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
            End If
        
        Case "SOF GNL export"
            If Sheets("Fiche Données").Range("E15").Value = "GDF N°" Then
                Cancel = True
                MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
            End If
        
        Case "Sof ammo yara import"
            If Sheets("Fiche Données").Range("E15").Value = "CHEVIRE N°" Then
                Cancel = True
                MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
            End If
        
        Case "SOF 1"
            If Sheets("Fiche Données").Range("E15").Value = "TAA N°" Then
                Cancel = True
                MsgBox "Veuillez indiquer le nom complet du poste a quai pour pouvoir imprimer"
            End If
    End Select
    End With
    
End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette