désactivation temporaire usf

rose45

XLDnaute Nouveau
Bonsoir,

Est il possible de désactiver temporairement un usf?
je m'explique
Quand la cellule B2 de ma page principale est active un usf s'ouvre automatiquement, jusque la tout va bien, je remplis celle ci et à la fin du mois, je dois cloturer et fermer celle ci pour qu'une nouvelle page soit générée. Pour la fermeture, j'ai douze boutons 1 pour chaque mois de l'année, quand je clique sur un bouton cela déclenche une macro qui va sélectioner la plage de cellule de la page principale à imprimer et bien sur la cellule B2 ce qui occasione l'ouverture du userform en question et me bloque le programme car je ne peut pas fermer l'usf.

Voici le code pour la fermeture et l'impression du mois

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


Peut on faire en sorte que l'usf ne s'ouvre pas.

Merci de vos réponse
Rose45
 

rose45

XLDnaute Nouveau
Re : désactivation temporaire usf

Bonjour Soenda et le forum,

Merci de me répondre.
Ma question est simple, comment faire pour empécher l'affichage de l' usf au moment de la sélection des cellules pour l'impression de la page principale.

Je ne comprend pas la ligne de formule que tu propose.
@+
 

soenda

XLDnaute Accro
Re : désactivation temporaire usf

Bonjour le fil, Rose45

Tu peux modifier le code de la Sub suivante, comme suit:
Code:
Sub ImprimerFormulaire()
  [B]Unload UserForm1[/B]
  [B][COLOR=green]' le code pour imprimer[/COLOR][/B] 
  [B]UserForm1.Show[/B]
End Sub

NB : Si tu dois lancer l'impression en dehors de UserForm1 (un raccourci clavier par exemple).
Tu devras, dans la fenêtre propriétés de UserForm1, mettre la propriété ShowModal à False.

A plus
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : désactivation temporaire usf

Bonjour à tous,

dans le code qui sert à l'impression qui suit:
Code:
Sub ImprimerFormulaire()
'
' ImprimerFormulaire Macro
' Macro enregistrée le 30/06/2009 par Comte jean
'
'
    [B][COLOR=red]Range("A1:r38").Select[/COLOR][/B]
[COLOR=black]..........................[/COLOR]
.........................
End Sub
ce qui est en rouge pose problème car le fait de sélectionner cette zone déclenche la macro suivante:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("d5:d37")) Is Nothing Then UserForm1.Show
End Sub
c'est pour cela que l'Usf reviens

étant donné que la zone d'impression est toujours la même il aurait été plus judicieux de la définir une seule fois ( sélectionner la zone ----------> Zone d'impression ---> Définir) et ne garder que les trois dernières lignes de la macro ImprimerFormulaire

MAIS attention , la macro "Nettoyage" risque de poser le même problème pour les mêmes raisons

à+
Philippe
 

rose45

XLDnaute Nouveau
Re : désactivation temporaire usf

Re, et boujour phlaurent55

Je m'en doutais un peut aussi ne pourrait on pas neutraliser la macro suivante le temps d'imprimer

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

@+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : désactivation temporaire usf

Re,
Je m'en doutais un peut aussi ne pourrait on pas neutraliser la macro suivante le temps d'imprimer
je ne pense pas que ce soit possible d'enpêcher cette macro évènementielle de se déclencher parce que c'est ta macro d'impression qui sélectionne une/des cellules de la colonne D ) et c'est donc dans celle-là qu'il faut modifier comme dit dans mon post précédent

à+
Philippe
 

soenda

XLDnaute Accro
Re : désactivation temporaire usf

Bonjour le fil, phlaurent55, rose45

Puisque on a la ligne :
ActiveSheet.PageSetup.PrintArea = "$A$1:$r$38"

La ligne suivante (qui pose problème):
Range("A1:r38").Select
devrait-être supprimée.

Et (théoriquement) ça devrait fonctionner.

A plus
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : désactivation temporaire usf

Re,

ton fichier en retour ( celui que tu as posté à 15h35)

j'ai supprimé la macro évènementielle qui contrôle la colonne D

pour la remplacer par une autre qui se déclenche par un double-clic dans la cellule A1 ( dans la zone bleue ET pas sur le texte)

à+
Philippe

Edit: Bonjour Soenda
il y a deux autre macros qui posent problème/---> "CopieReport" et "Nettoyage"
je pense que la solution que je viens d'apporter est la meilleure
 

Pièces jointes

  • 111.zip
    30.8 KB · Affichages: 26
  • 111.zip
    30.8 KB · Affichages: 19
  • 111.zip
    30.8 KB · Affichages: 27
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : désactivation temporaire usf

Re,
Pour déclencher la macro à partir d'un simple-clic dans la cellule A1
remplace
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A1")) Is Nothing Then UserForm1.Show
End Sub
par
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then UserForm1.Show
End Sub

à+
Philippe
 

Statistiques des forums

Discussions
312 354
Messages
2 087 548
Membres
103 586
dernier inscrit
julie30620