empécher usf de s' ouvrir

jean32

XLDnaute Nouveau
Boujour à tous,

Je souhaiterais annuler l' ouverture du usf lors de l' impression de la feuille de mon fichier.
Sur la feuille de mon fichier colonne C j' ai ce code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("c13:c3000")) Is Nothing Then UserForm1.Show
End Sub


quand le curseur vient sur cette colonne c mon usf s' ouvre, le problème quand j' imprime la feuille, l' usf s'ouvre plusieurs fois et j' ai parfois du mal à le fermer ce qui me fait perdre beaucoup de temps.

Ma question est il possible de le désactiver en début d' impression puis le réactiver en fin d' impression?

Sub Bouton1_QuandClic()
'Janvier 01
Application.ScreenUpdating = False
Static va, v1, v1a, v2, v3, v4, v5, v6, v7, v8, v9, v11, v13

va = "c52" 'dernière ligne 1ère page, copie reajuatement des taxes
v1 = "c93" 'dernière ligne 2ème page
v1a = "c134" 'dernière ligne 3ème page
v2 = "p95" 'Case ou copier le réajustement des taxes dans le tableau page Etat
v3 = "a13:db176" 'sélection des données à geler sans formule
v4 = "a13" 'cellule ou copier la sélection à geler
v5 = "a176" 'inscription Mois fermé
v6 = 1 'première page à imprimer
v7 = Range("G.L.!cz176") 'nombre de pages à ajouter à v6 pour imprimer
v8 = "b2:m10" 'sélection du rapport de remise des taxes page Remise
v9 = "a11" 'emplacement du curseur rapport de remise page Remise
v11 = "a177" 'cellule ou copier les formules dans le nouveau mois
v13 = "c175" 'dernière ligne 4 ème page

If Range("G.L.!a1994") <> 0 Then Exit Sub
'If Range("Paramètre!c21") <> "2.9" Then Call hyperlien: Exit Sub

ActiveSheet.Unprotect
ActiveSheet.Shapes("Button 1").Select
If Selection.Characters.Text = "Fermé" Then
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Sheets("G.L.").Select
Range("b12").Formula = "=b1982"
Call impressionmois(v6, v7, v8, v9, v13)
Sheets("Impression").Select
GoTo a:

Else
Msg = "Désirez vous fermer le mois en cours?"
Style = vbYesNo + 32
Title = "Fermeture du mois"
response = MsgBox(Msg, Style, Title)
If response = vbNo Then ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True: Exit Sub
Call corrtaxe(va, v1a, v1, v13, v2)
Call fermeturemois(v3, v4, v5, v11)
v7 = Range("G.L.!cz176") 'nombre de pages à ajouter à v6 pour imprimer
Call impressionmois(v6, v7, v8, v9, v13)
Call Backup
a:
End If
End Sub



Merci de votre aide
jean
 
G

Guest

Guest
Re : empécher usf de s' ouvrir

Bonjour,

Un classeur avec la macro serait plus simple à traiter.

Mettre une variable public en haut du module qui contient la macro d'impression:

Code:
Public ImpressionEnCours As Boolean

En début de la macro d'impression mettre

Code:
ImpressionEnCours = True

En fin de macro d'impression:
Code:
ImpressionEnCours = False

Et le WorkSheet_SelectionChange devient

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If ImpressionEnCours And Not Intersect(Target, Range("c13:c3000")) Is Nothing Then UserForm1.Show
End Sub
Ou au choix (mais pas les deux)
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If ImpressionEnCours Then Exit Sub
 If Not Intersect(Target, Range("c13:c3000")) Is Nothing Then UserForm1.Show
End Sub

A+
 

jean32

XLDnaute Nouveau
Re : empécher usf de s' ouvrir

Bonjour Hasco,

Merci pour la rapidité de la réponse, je vient de testé et cela marche nikel.
Je suis super content car je vais gagner un temps précieux.
Encore merci et longue vie à ce forum
jean
 
G

Guest

Guest
Re : empécher usf de s' ouvrir

Re,

J'ai oublié: tu peux mettre également dans l'évènement BeforePrint du module ThisWorkbook:
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
ImpressionEnCours = True
End Sub

Et ne pas oublier de mettre à False aux emplacement necessaires.

A+
 

Statistiques des forums

Discussions
312 321
Messages
2 087 260
Membres
103 498
dernier inscrit
FAHDE