OVH Cloud OVH Cloud

Etrange

7 réponses
Avatar
Jacques
Bonjour à tous,

Un truc bizarre et c'est la première fois que cela m'arrive :
Dans une macro appelée Mail, j'ai la ligne "ActiveSheet.PrintOut Copies:=1"
qui fonctionne parfaitement, mais quand cette même macro s'execute en
cliquant sur le bouton OK d'une boite de dialogue, elle bug arrivée à la
ligne en question.
Quelqu'un peut m'aider ?

Jacques

7 réponses

Avatar
papou
Bonjour Jacques
Probablement lié au focus resté sur le bouton.
Voir la propriété "TakeFocusOnClick" et la mettre à False

Cordialement
Pascal

"Jacques" a écrit dans le message de
news:
Bonjour à tous,

Un truc bizarre et c'est la première fois que cela m'arrive :
Dans une macro appelée Mail, j'ai la ligne "ActiveSheet.PrintOut
Copies:=1"

qui fonctionne parfaitement, mais quand cette même macro s'execute en
cliquant sur le bouton OK d'une boite de dialogue, elle bug arrivée à la
ligne en question.
Quelqu'un peut m'aider ?

Jacques




Avatar
Jacques
Bonjour Pascal,

Cela ne fonctionne pas davantage mais j'ai vraisemblalement pas mis ni la
bonne instruction ni au bon endroit.
Désolé de déranger avec des question de néophyte.
Cordialement,

Jacques
"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:%
Bonjour Jacques
Probablement lié au focus resté sur le bouton.
Voir la propriété "TakeFocusOnClick" et la mettre à False

Cordialement
Pascal

"Jacques" a écrit dans le message de
news:
Bonjour à tous,

Un truc bizarre et c'est la première fois que cela m'arrive :
Dans une macro appelée Mail, j'ai la ligne "ActiveSheet.PrintOut
Copies:=1"

qui fonctionne parfaitement, mais quand cette même macro s'execute en
cliquant sur le bouton OK d'une boite de dialogue, elle bug arrivée à la
ligne en question.
Quelqu'un peut m'aider ?

Jacques








Avatar
papou
Jacques
Dans ces conditions il serait préférable que tu nous fournisses les
instructions en question.
Cordialement
Pascal

"Jacques" a écrit dans le message de
news:
Bonjour Pascal,

Cela ne fonctionne pas davantage mais j'ai vraisemblalement pas mis ni la
bonne instruction ni au bon endroit.
Désolé de déranger avec des question de néophyte.
Cordialement,

Jacques
"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:%
Bonjour Jacques
Probablement lié au focus resté sur le bouton.
Voir la propriété "TakeFocusOnClick" et la mettre à False

Cordialement
Pascal

"Jacques" a écrit dans le message de
news:
Bonjour à tous,

Un truc bizarre et c'est la première fois que cela m'arrive :
Dans une macro appelée Mail, j'ai la ligne "ActiveSheet.PrintOut
Copies:=1"

qui fonctionne parfaitement, mais quand cette même macro s'execute en
cliquant sur le bouton OK d'une boite de dialogue, elle bug arrivée à
la



ligne en question.
Quelqu'un peut m'aider ?

Jacques












Avatar
Jacques
Pascal

Voici les deux macros :

Sub mail() fonctionne qaund on la lance en direct mais lorsqu'on le fait via
le bouton OK de la boite de dialogue3 (sub rapport()), elle bloque arrivée à
l'instruction ActiveSheet.PrintOut Copies=1

Merci de ton aide

Jacques

Sub rapport()
'
' Macro7 Macro
' Macro enregistrée le 29/06/2004 par NEC Computers International
'

'

Sheets("dialogue3").Visible = True

DialogSheets("dialogue3").Show

End Sub

Sub mail()

For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then
w.Close
End If
Next w

Sheets("base").Select
Range("A4").Select
Selection.AutoFilter

Range("ae3").Select
If ActiveCell = 1 Then
Selection.AutoFilter Field:=6, Criteria1:="=PDE"
Else
If ActiveCell = 2 Then
Selection.AutoFilter Field:=6, Criteria1:="=YFO"
Else
If ActiveCell = 3 Then
Selection.AutoFilter Field:=6, Criteria1:="=JPL"
Else
If ActiveCell = 4 Then
Selection.AutoFilter Field:=6, Criteria1:="=PMA"
Else
If ActiveCell = 5 Then
Selection.AutoFilter Field:=6, Criteria1:="=BWA"
Else
If ActiveCell = 6 Then
Selection.AutoFilter Field:=6, Criteria1:="=JRO"
End If
End If
End If
End If
End If
End If
Selection.AutoFilter Field:=7, Criteria1:="<>"
Selection.AutoFilter Field:, Criteria1:="="
Range("A:A,C:C,D:E").Select
Selection.EntireColumn.Hidden = True

Range("B3:M3503").Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks: _
False, Transpose:úlse
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks: _
False, Transpose:úlse
Columns("A:A").Select
Selection.ColumnWidth = 30
Application.CutCopyMode = False

Workbooks(1).Activate
Sheets("base").Select
Range("ai3").Select
If ActiveCell = faux Then
Else
Workbooks(2).Activate
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = "envoyé par mail le &D"
.LeftMargin = Application.InchesToPoints(0.787401575)
.RightMargin = Application.InchesToPoints(0.787401575)
.TopMargin = Application.InchesToPoints(0.984251969)
.BottomMargin = Application.InchesToPoints(0.984251969)
.HeaderMargin = Application.InchesToPoints(0.4921259845)
.FooterMargin = Application.InchesToPoints(0.4921259845)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With

ActiveSheet.PrintOut Copies:=1

End If
Workbooks(1).Activate
Range("ae3").Select
If ActiveCell = 1 Then
Workbooks(2).Activate
ChDir "C:TEMP"
ActiveWorkbook.SaveAs Filename:="C:TEMPrapport relance PDE.xls",
FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
ActiveWorkbook.SendMail Recipients:="patrick degat",
Subject:="relances", returnreceipt:=True
Else
If ActiveCell = 2 Then
Workbooks(2).Activate
ChDir "C:TEMP"
ActiveWorkbook.SaveAs Filename:="C:TEMPrapport relance
YFO.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
ActiveWorkbook.SendMail Recipients:="yves fouchet",
Subject:="relances", returnreceipt:=True
Else
If ActiveCell = 3 Then
Workbooks(2).Activate
ChDir "C:TEMP"
ActiveWorkbook.SaveAs Filename:="C:TEMPrapport relance
JPL.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
ActiveWorkbook.SendMail Recipients:="jean-pierre lancon",
Subject:="relances", returnreceipt:=True
Else
If ActiveCell = 4 Then
Workbooks(2).Activate
ChDir "C:TEMP"
ActiveWorkbook.SaveAs Filename:="C:TEMPrapport relance
PMA.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
ActiveWorkbook.SendMail Recipients:="philippe
marguerit", Subject:="relances", returnreceipt:=True
Else
If ActiveCell = 5 Then
Workbooks(2).Activate
ChDir "C:TEMP"
ActiveWorkbook.SaveAs Filename:="C:TEMPrapport
relance BWA.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
ActiveWorkbook.SendMail Recipients:="benoit wateau",
Subject:="relances", returnreceipt:=True
Else
If ActiveCell = 6 Then
Workbooks(2).Activate
ChDir "C:TEMP"
ActiveWorkbook.SaveAs Filename:="C:TEMPrapport
relance JRO.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
ActiveWorkbook.SendMail Recipients:="jacques robin",
Subject:="relances", returnreceipt:=True
End If
End If
End If
End If
End If
End If
Workbooks(2).Activate
ActiveWorkbook.Close (False)
Sheets("base").Select
Range("A:A,C:C,D:E").Select
Selection.EntireColumn.Hidden = False
Selection.AutoFilter
Range("a4").Select
Sheets("feuil1").Select
End Sub



"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:
Jacques
Dans ces conditions il serait préférable que tu nous fournisses les
instructions en question.
Cordialement
Pascal

"Jacques" a écrit dans le message de
news:
Bonjour Pascal,

Cela ne fonctionne pas davantage mais j'ai vraisemblalement pas mis ni
la


bonne instruction ni au bon endroit.
Désolé de déranger avec des question de néophyte.
Cordialement,

Jacques
"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:%
Bonjour Jacques
Probablement lié au focus resté sur le bouton.
Voir la propriété "TakeFocusOnClick" et la mettre à False

Cordialement
Pascal

"Jacques" a écrit dans le message de
news:
Bonjour à tous,

Un truc bizarre et c'est la première fois que cela m'arrive :
Dans une macro appelée Mail, j'ai la ligne "ActiveSheet.PrintOut
Copies:=1"

qui fonctionne parfaitement, mais quand cette même macro s'execute
en




cliquant sur le bouton OK d'une boite de dialogue, elle bug arrivée
à




la
ligne en question.
Quelqu'un peut m'aider ?

Jacques
















Avatar
AV
Apparemment tu fais appel à une "boite de dial XL5" donc ...
A tester : Avec une boite de dial comprenant 2 boutons : Imprimer - Annuler
Dans un module :

Dim flag As Boolean

Sub cadre() 'macro affectée au cadre de la boite de dialogue
flag = False
End Sub

Sub bouton() 'macro affectée au bouton imprimer de la boite
flag = True
End Sub

Sub princ() 'macro affectée à un bouton pour affichage boite de dialogue
DialogSheets(1).Show
If flag = True Then
'Ici tout ton blabla pour imprimer
End If
End Sub

Sub Annuler() 'à affecter au bouton "Annuler"
Exit Sub
End Sub

AV
Avatar
Jacques
Effectivement cela peut me permettre de contourner le problème mais me fait
rajouter une boite dialogue.
La mienne comprenait une zone combinée permettant de faire des tris et de
sélectionner la personne à qui le rapport devait être envoyé, et
La case à cocher "avec impression" qui générait l'impression ou non du
rapport selon que la réponse était Vrai ou Faux.
Ne verrais-tu pas une autre solution ?
Jacques



"AV" a écrit dans le message de
news:
Apparemment tu fais appel à une "boite de dial XL5" donc ...
A tester : Avec une boite de dial comprenant 2 boutons : Imprimer -
Annuler

Dans un module :

Dim flag As Boolean

Sub cadre() 'macro affectée au cadre de la boite de dialogue
flag = False
End Sub

Sub bouton() 'macro affectée au bouton imprimer de la boite
flag = True
End Sub

Sub princ() 'macro affectée à un bouton pour affichage boite de dialogue
DialogSheets(1).Show
If flag = True Then
'Ici tout ton blabla pour imprimer
End If
End Sub

Sub Annuler() 'à affecter au bouton "Annuler"
Exit Sub
End Sub

AV




Avatar
AV
En adaptant la macro "princ" (affichage de la boite de dial et ...etc...) tu
dois pouvoir y arriver

AV