J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie
d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois
et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à
chaque fois !!.
Quelqu'un a-t-il une idée ?
Voici le code incriminé !
Sub ImpComP2()
'
' ImpComP2 Macro
' Macro créée le 28.8.2005 par Georges Ecko
'
Dim NombreLigne As Integer
On Error Resume Next
'
Do
ActiveSheet.Unprotect Password:="zorro"
NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4
Loop While Not ((Val(NombreLigne)) > 0)
On Error GoTo 0
Columns("C:AL").Select
Range("C2").Activate
Selection.EntireColumn.Hidden = True
ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Columns("B:AM").Select
Range("B33").Activate
Selection.EntireColumn.Hidden = False
Application.Goto Reference:="FinP1"
Application.Goto Reference:="DebP2"
ActiveSheet.Protect Password:="zorro", DrawingObjects:=True,
Contents:=True, Scenarios:=True
End Sub
Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans
aucun soucis
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Papyjac
Bonjour Ecko,
Si cà marche en mode déboggage, cela m'inspire, car en mode déboggagetu effectue les opérations lentement.
Il faudrait mettre un "timer", par exemple l'instruction DOEVENTS, derrière PRINTOUT, ou derrière GOTO REFERENCE -- Papyjac
"Georges Ecko" a écrit :
Bonjour
J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à chaque fois !!.
Quelqu'un a-t-il une idée ?
Voici le code incriminé !
Sub ImpComP2() ' ' ImpComP2 Macro ' Macro créée le 28.8.2005 par Georges Ecko ' Dim NombreLigne As Integer On Error Resume Next ' Do ActiveSheet.Unprotect Password:="zorro" NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4 Loop While Not ((Val(NombreLigne)) > 0) On Error GoTo 0 Columns("C:AL").Select Range("C2").Activate Selection.EntireColumn.Hidden = True ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne) With ActiveSheet.PageSetup .Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Columns("B:AM").Select Range("B33").Activate Selection.EntireColumn.Hidden = False Application.Goto Reference:="FinP1" Application.Goto Reference:="DebP2" ActiveSheet.Protect Password:="zorro", DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans aucun soucis
D'avance un grand merci pour vos lumières
-- Georges Ecko
Windows XP sp 2 Office 2003
Bonjour Ecko,
Si cà marche en mode déboggage, cela m'inspire, car en mode déboggagetu
effectue les opérations lentement.
Il faudrait mettre un "timer", par exemple l'instruction DOEVENTS, derrière
PRINTOUT, ou derrière GOTO REFERENCE
--
Papyjac
"Georges Ecko" a écrit :
Bonjour
J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie
d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois
et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à
chaque fois !!.
Quelqu'un a-t-il une idée ?
Voici le code incriminé !
Sub ImpComP2()
'
' ImpComP2 Macro
' Macro créée le 28.8.2005 par Georges Ecko
'
Dim NombreLigne As Integer
On Error Resume Next
'
Do
ActiveSheet.Unprotect Password:="zorro"
NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4
Loop While Not ((Val(NombreLigne)) > 0)
On Error GoTo 0
Columns("C:AL").Select
Range("C2").Activate
Selection.EntireColumn.Hidden = True
ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Columns("B:AM").Select
Range("B33").Activate
Selection.EntireColumn.Hidden = False
Application.Goto Reference:="FinP1"
Application.Goto Reference:="DebP2"
ActiveSheet.Protect Password:="zorro", DrawingObjects:=True,
Contents:=True, Scenarios:=True
End Sub
Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans
aucun soucis
Si cà marche en mode déboggage, cela m'inspire, car en mode déboggagetu effectue les opérations lentement.
Il faudrait mettre un "timer", par exemple l'instruction DOEVENTS, derrière PRINTOUT, ou derrière GOTO REFERENCE -- Papyjac
"Georges Ecko" a écrit :
Bonjour
J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à chaque fois !!.
Quelqu'un a-t-il une idée ?
Voici le code incriminé !
Sub ImpComP2() ' ' ImpComP2 Macro ' Macro créée le 28.8.2005 par Georges Ecko ' Dim NombreLigne As Integer On Error Resume Next ' Do ActiveSheet.Unprotect Password:="zorro" NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4 Loop While Not ((Val(NombreLigne)) > 0) On Error GoTo 0 Columns("C:AL").Select Range("C2").Activate Selection.EntireColumn.Hidden = True ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne) With ActiveSheet.PageSetup .Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Columns("B:AM").Select Range("B33").Activate Selection.EntireColumn.Hidden = False Application.Goto Reference:="FinP1" Application.Goto Reference:="DebP2" ActiveSheet.Protect Password:="zorro", DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans aucun soucis
D'avance un grand merci pour vos lumières
-- Georges Ecko
Windows XP sp 2 Office 2003
Georges Ecko
Bonjour,
Merci de votre réponse qui malheureusement ne m'aide pas puisque le problème reste entier.
Bien plus Excel plante et sans redémarrage de la machine impossible de rouvrir le fichier.
Avez-vous une autre idée ?
Merci d'avance
-- Georges Ecko
Windows XP sp 2 Office 2003
"Papyjac" wrote:
Bonjour Ecko,
Si cà marche en mode déboggage, cela m'inspire, car en mode déboggagetu effectue les opérations lentement.
Il faudrait mettre un "timer", par exemple l'instruction DOEVENTS, derrière PRINTOUT, ou derrière GOTO REFERENCE -- Papyjac
"Georges Ecko" a écrit :
> Bonjour > > J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie > d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois > et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à > chaque fois !!. > > Quelqu'un a-t-il une idée ? > > Voici le code incriminé ! > > Sub ImpComP2() > ' > ' ImpComP2 Macro > ' Macro créée le 28.8.2005 par Georges Ecko > ' > Dim NombreLigne As Integer > On Error Resume Next > ' > Do > ActiveSheet.Unprotect Password:="zorro" > NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4 > Loop While Not ((Val(NombreLigne)) > 0) > On Error GoTo 0 > Columns("C:AL").Select > Range("C2").Activate > Selection.EntireColumn.Hidden = True > ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne) > With ActiveSheet.PageSetup > .Orientation = xlLandscape > .FitToPagesWide = 1 > .FitToPagesTall = 1 > End With > ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True > Columns("B:AM").Select > Range("B33").Activate > Selection.EntireColumn.Hidden = False > Application.Goto Reference:="FinP1" > Application.Goto Reference:="DebP2" > ActiveSheet.Protect Password:="zorro", DrawingObjects:=True, > Contents:=True, Scenarios:=True > End Sub > > Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans > aucun soucis > > D'avance un grand merci pour vos lumières > > -- > Georges Ecko > > Windows XP sp 2 > Office 2003
Bonjour,
Merci de votre réponse qui malheureusement ne m'aide pas puisque le problème
reste entier.
Bien plus Excel plante et sans redémarrage de la machine impossible de
rouvrir le fichier.
Avez-vous une autre idée ?
Merci d'avance
--
Georges Ecko
Windows XP sp 2
Office 2003
"Papyjac" wrote:
Bonjour Ecko,
Si cà marche en mode déboggage, cela m'inspire, car en mode déboggagetu
effectue les opérations lentement.
Il faudrait mettre un "timer", par exemple l'instruction DOEVENTS, derrière
PRINTOUT, ou derrière GOTO REFERENCE
--
Papyjac
"Georges Ecko" a écrit :
> Bonjour
>
> J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie
> d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois
> et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à
> chaque fois !!.
>
> Quelqu'un a-t-il une idée ?
>
> Voici le code incriminé !
>
> Sub ImpComP2()
> '
> ' ImpComP2 Macro
> ' Macro créée le 28.8.2005 par Georges Ecko
> '
> Dim NombreLigne As Integer
> On Error Resume Next
> '
> Do
> ActiveSheet.Unprotect Password:="zorro"
> NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4
> Loop While Not ((Val(NombreLigne)) > 0)
> On Error GoTo 0
> Columns("C:AL").Select
> Range("C2").Activate
> Selection.EntireColumn.Hidden = True
> ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne)
> With ActiveSheet.PageSetup
> .Orientation = xlLandscape
> .FitToPagesWide = 1
> .FitToPagesTall = 1
> End With
> ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
> Columns("B:AM").Select
> Range("B33").Activate
> Selection.EntireColumn.Hidden = False
> Application.Goto Reference:="FinP1"
> Application.Goto Reference:="DebP2"
> ActiveSheet.Protect Password:="zorro", DrawingObjects:=True,
> Contents:=True, Scenarios:=True
> End Sub
>
> Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans
> aucun soucis
>
> D'avance un grand merci pour vos lumières
>
> --
> Georges Ecko
>
> Windows XP sp 2
> Office 2003
Merci de votre réponse qui malheureusement ne m'aide pas puisque le problème reste entier.
Bien plus Excel plante et sans redémarrage de la machine impossible de rouvrir le fichier.
Avez-vous une autre idée ?
Merci d'avance
-- Georges Ecko
Windows XP sp 2 Office 2003
"Papyjac" wrote:
Bonjour Ecko,
Si cà marche en mode déboggage, cela m'inspire, car en mode déboggagetu effectue les opérations lentement.
Il faudrait mettre un "timer", par exemple l'instruction DOEVENTS, derrière PRINTOUT, ou derrière GOTO REFERENCE -- Papyjac
"Georges Ecko" a écrit :
> Bonjour > > J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie > d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois > et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à > chaque fois !!. > > Quelqu'un a-t-il une idée ? > > Voici le code incriminé ! > > Sub ImpComP2() > ' > ' ImpComP2 Macro > ' Macro créée le 28.8.2005 par Georges Ecko > ' > Dim NombreLigne As Integer > On Error Resume Next > ' > Do > ActiveSheet.Unprotect Password:="zorro" > NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4 > Loop While Not ((Val(NombreLigne)) > 0) > On Error GoTo 0 > Columns("C:AL").Select > Range("C2").Activate > Selection.EntireColumn.Hidden = True > ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne) > With ActiveSheet.PageSetup > .Orientation = xlLandscape > .FitToPagesWide = 1 > .FitToPagesTall = 1 > End With > ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True > Columns("B:AM").Select > Range("B33").Activate > Selection.EntireColumn.Hidden = False > Application.Goto Reference:="FinP1" > Application.Goto Reference:="DebP2" > ActiveSheet.Protect Password:="zorro", DrawingObjects:=True, > Contents:=True, Scenarios:=True > End Sub > > Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans > aucun soucis > > D'avance un grand merci pour vos lumières > > -- > Georges Ecko > > Windows XP sp 2 > Office 2003
michdenis
Essaie ceci en prenant soin d'indiquer le nom de la feuille dans ton application, pour l'exemple j'ai pris "Feuil1" qui est la propriété "Name" visible dans l'interface de l'éditeur de code et non le nom de l'onglet de la feuille.
'------------------------------------------- Sub ImpComP() Dim NombreLigne As Variant On Error Resume Next Application.ScreenUpdating = False Do NombreLigne = Application.InputBox(Prompt:= _ "Donne moi le nombre d'élève de la classe", Type:=1) If Format(NombreLigne) = False Then If MsgBox("Désirez-vous annuler l'impression?", _ vbCritical + vbYesNo, "Impression") = vbYes Then Exit Sub End If End If Loop While Not NombreLigne > 0 NombreLigne = NombreLigne * 2 + 4
With Feuil1 .Unprotect Password:="zorro" .Columns("C:AL").EntireColumn.Hidden = True With .PageSetup .PrintArea = "$A$1:$BV$" & CStr(NombreLigne) .PageSetup.Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With .PrintOut Copies:=1, Collate:=True .PageSetup.PrintArea = "" .Columns("B:AM").EntireColumn.Hidden = False .Protect Password:="zorro", DrawingObjects:=True, _ Contents:=True, Scenarios:=True End With Application.Goto Reference:="FinP1" Application.Goto Reference:="DebP2"
End Sub '-------------------------------------------
"Georges Ecko" a écrit dans le message de news: Bonjour
J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à chaque fois !!.
Quelqu'un a-t-il une idée ?
Voici le code incriminé !
Sub ImpComP2() ' ' ImpComP2 Macro ' Macro créée le 28.8.2005 par Georges Ecko ' Dim NombreLigne As Integer On Error Resume Next ' Do ActiveSheet.Unprotect Password:="zorro" NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4 Loop While Not ((Val(NombreLigne)) > 0) On Error GoTo 0 Columns("C:AL").Select Range("C2").Activate Selection.EntireColumn.Hidden = True ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne) With ActiveSheet.PageSetup .Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Columns("B:AM").Select Range("B33").Activate Selection.EntireColumn.Hidden = False Application.Goto Reference:="FinP1" Application.Goto Reference:="DebP2" ActiveSheet.Protect Password:="zorro", DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans aucun soucis
D'avance un grand merci pour vos lumières
-- Georges Ecko
Windows XP sp 2 Office 2003
Essaie ceci en prenant soin d'indiquer le nom de
la feuille dans ton application, pour l'exemple j'ai
pris "Feuil1" qui est la propriété "Name" visible
dans l'interface de l'éditeur de code et non le nom
de l'onglet de la feuille.
'-------------------------------------------
Sub ImpComP()
Dim NombreLigne As Variant
On Error Resume Next
Application.ScreenUpdating = False
Do
NombreLigne = Application.InputBox(Prompt:= _
"Donne moi le nombre d'élève de la classe", Type:=1)
If Format(NombreLigne) = False Then
If MsgBox("Désirez-vous annuler l'impression?", _
vbCritical + vbYesNo, "Impression") = vbYes Then
Exit Sub
End If
End If
Loop While Not NombreLigne > 0
NombreLigne = NombreLigne * 2 + 4
With Feuil1
.Unprotect Password:="zorro"
.Columns("C:AL").EntireColumn.Hidden = True
With .PageSetup
.PrintArea = "$A$1:$BV$" & CStr(NombreLigne)
.PageSetup.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
.PrintOut Copies:=1, Collate:=True
.PageSetup.PrintArea = ""
.Columns("B:AM").EntireColumn.Hidden = False
.Protect Password:="zorro", DrawingObjects:=True, _
Contents:=True, Scenarios:=True
End With
Application.Goto Reference:="FinP1"
Application.Goto Reference:="DebP2"
End Sub
'-------------------------------------------
"Georges Ecko" <GeorgesEcko@discussions.microsoft.com> a écrit dans le
message de news: 26F0AF60-191B-4E97-8B1A-63FDFBC5056B@microsoft.com...
Bonjour
J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie
d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois
et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à
chaque fois !!.
Quelqu'un a-t-il une idée ?
Voici le code incriminé !
Sub ImpComP2()
'
' ImpComP2 Macro
' Macro créée le 28.8.2005 par Georges Ecko
'
Dim NombreLigne As Integer
On Error Resume Next
'
Do
ActiveSheet.Unprotect Password:="zorro"
NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4
Loop While Not ((Val(NombreLigne)) > 0)
On Error GoTo 0
Columns("C:AL").Select
Range("C2").Activate
Selection.EntireColumn.Hidden = True
ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Columns("B:AM").Select
Range("B33").Activate
Selection.EntireColumn.Hidden = False
Application.Goto Reference:="FinP1"
Application.Goto Reference:="DebP2"
ActiveSheet.Protect Password:="zorro", DrawingObjects:=True,
Contents:=True, Scenarios:=True
End Sub
Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans
aucun soucis
Essaie ceci en prenant soin d'indiquer le nom de la feuille dans ton application, pour l'exemple j'ai pris "Feuil1" qui est la propriété "Name" visible dans l'interface de l'éditeur de code et non le nom de l'onglet de la feuille.
'------------------------------------------- Sub ImpComP() Dim NombreLigne As Variant On Error Resume Next Application.ScreenUpdating = False Do NombreLigne = Application.InputBox(Prompt:= _ "Donne moi le nombre d'élève de la classe", Type:=1) If Format(NombreLigne) = False Then If MsgBox("Désirez-vous annuler l'impression?", _ vbCritical + vbYesNo, "Impression") = vbYes Then Exit Sub End If End If Loop While Not NombreLigne > 0 NombreLigne = NombreLigne * 2 + 4
With Feuil1 .Unprotect Password:="zorro" .Columns("C:AL").EntireColumn.Hidden = True With .PageSetup .PrintArea = "$A$1:$BV$" & CStr(NombreLigne) .PageSetup.Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With .PrintOut Copies:=1, Collate:=True .PageSetup.PrintArea = "" .Columns("B:AM").EntireColumn.Hidden = False .Protect Password:="zorro", DrawingObjects:=True, _ Contents:=True, Scenarios:=True End With Application.Goto Reference:="FinP1" Application.Goto Reference:="DebP2"
End Sub '-------------------------------------------
"Georges Ecko" a écrit dans le message de news: Bonjour
J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à chaque fois !!.
Quelqu'un a-t-il une idée ?
Voici le code incriminé !
Sub ImpComP2() ' ' ImpComP2 Macro ' Macro créée le 28.8.2005 par Georges Ecko ' Dim NombreLigne As Integer On Error Resume Next ' Do ActiveSheet.Unprotect Password:="zorro" NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4 Loop While Not ((Val(NombreLigne)) > 0) On Error GoTo 0 Columns("C:AL").Select Range("C2").Activate Selection.EntireColumn.Hidden = True ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne) With ActiveSheet.PageSetup .Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Columns("B:AM").Select Range("B33").Activate Selection.EntireColumn.Hidden = False Application.Goto Reference:="FinP1" Application.Goto Reference:="DebP2" ActiveSheet.Protect Password:="zorro", DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans aucun soucis
D'avance un grand merci pour vos lumières
-- Georges Ecko
Windows XP sp 2 Office 2003
Georges Ecko
Un grand merci
cette solution fonctionne, je vais donc l'adopter avec mes remerciements réitérés.
Cela ne m'explique cependant pas pourquoi une macro qui a rendu de bons et loyaux services pendant trois ans tout d'un coup ne fonctionne plus !!
Moi qui aime bien comprendre le pourquoi des choses, me voilà un peu démuni
Bien amicalement
-- Georges Ecko
Windows XP sp 2 Office 2003
"michdenis" wrote:
Essaie ceci en prenant soin d'indiquer le nom de la feuille dans ton application, pour l'exemple j'ai pris "Feuil1" qui est la propriété "Name" visible dans l'interface de l'éditeur de code et non le nom de l'onglet de la feuille.
'------------------------------------------- Sub ImpComP() Dim NombreLigne As Variant On Error Resume Next Application.ScreenUpdating = False Do NombreLigne = Application.InputBox(Prompt:= _ "Donne moi le nombre d'élève de la classe", Type:=1) If Format(NombreLigne) = False Then If MsgBox("Désirez-vous annuler l'impression?", _ vbCritical + vbYesNo, "Impression") = vbYes Then Exit Sub End If End If Loop While Not NombreLigne > 0 NombreLigne = NombreLigne * 2 + 4
With Feuil1 .Unprotect Password:="zorro" .Columns("C:AL").EntireColumn.Hidden = True With .PageSetup .PrintArea = "$A$1:$BV$" & CStr(NombreLigne) .PageSetup.Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With .PrintOut Copies:=1, Collate:=True .PageSetup.PrintArea = "" .Columns("B:AM").EntireColumn.Hidden = False .Protect Password:="zorro", DrawingObjects:=True, _ Contents:=True, Scenarios:=True End With Application.Goto Reference:="FinP1" Application.Goto Reference:="DebP2"
End Sub '-------------------------------------------
"Georges Ecko" a écrit dans le message de news: Bonjour
J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à chaque fois !!.
Quelqu'un a-t-il une idée ?
Voici le code incriminé !
Sub ImpComP2() ' ' ImpComP2 Macro ' Macro créée le 28.8.2005 par Georges Ecko ' Dim NombreLigne As Integer On Error Resume Next ' Do ActiveSheet.Unprotect Password:="zorro" NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4 Loop While Not ((Val(NombreLigne)) > 0) On Error GoTo 0 Columns("C:AL").Select Range("C2").Activate Selection.EntireColumn.Hidden = True ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne) With ActiveSheet.PageSetup .Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Columns("B:AM").Select Range("B33").Activate Selection.EntireColumn.Hidden = False Application.Goto Reference:="FinP1" Application.Goto Reference:="DebP2" ActiveSheet.Protect Password:="zorro", DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans aucun soucis
D'avance un grand merci pour vos lumières
-- Georges Ecko
Windows XP sp 2 Office 2003
Un grand merci
cette solution fonctionne, je vais donc l'adopter avec mes remerciements
réitérés.
Cela ne m'explique cependant pas pourquoi une macro qui a rendu de bons et
loyaux services pendant trois ans tout d'un coup ne fonctionne plus !!
Moi qui aime bien comprendre le pourquoi des choses, me voilà un peu démuni
Bien amicalement
--
Georges Ecko
Windows XP sp 2
Office 2003
"michdenis" wrote:
Essaie ceci en prenant soin d'indiquer le nom de
la feuille dans ton application, pour l'exemple j'ai
pris "Feuil1" qui est la propriété "Name" visible
dans l'interface de l'éditeur de code et non le nom
de l'onglet de la feuille.
'-------------------------------------------
Sub ImpComP()
Dim NombreLigne As Variant
On Error Resume Next
Application.ScreenUpdating = False
Do
NombreLigne = Application.InputBox(Prompt:= _
"Donne moi le nombre d'élève de la classe", Type:=1)
If Format(NombreLigne) = False Then
If MsgBox("Désirez-vous annuler l'impression?", _
vbCritical + vbYesNo, "Impression") = vbYes Then
Exit Sub
End If
End If
Loop While Not NombreLigne > 0
NombreLigne = NombreLigne * 2 + 4
With Feuil1
.Unprotect Password:="zorro"
.Columns("C:AL").EntireColumn.Hidden = True
With .PageSetup
.PrintArea = "$A$1:$BV$" & CStr(NombreLigne)
.PageSetup.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
.PrintOut Copies:=1, Collate:=True
.PageSetup.PrintArea = ""
.Columns("B:AM").EntireColumn.Hidden = False
.Protect Password:="zorro", DrawingObjects:=True, _
Contents:=True, Scenarios:=True
End With
Application.Goto Reference:="FinP1"
Application.Goto Reference:="DebP2"
End Sub
'-------------------------------------------
"Georges Ecko" <GeorgesEcko@discussions.microsoft.com> a écrit dans le
message de news: 26F0AF60-191B-4E97-8B1A-63FDFBC5056B@microsoft.com...
Bonjour
J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie
d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois
et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à
chaque fois !!.
Quelqu'un a-t-il une idée ?
Voici le code incriminé !
Sub ImpComP2()
'
' ImpComP2 Macro
' Macro créée le 28.8.2005 par Georges Ecko
'
Dim NombreLigne As Integer
On Error Resume Next
'
Do
ActiveSheet.Unprotect Password:="zorro"
NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4
Loop While Not ((Val(NombreLigne)) > 0)
On Error GoTo 0
Columns("C:AL").Select
Range("C2").Activate
Selection.EntireColumn.Hidden = True
ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne)
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Columns("B:AM").Select
Range("B33").Activate
Selection.EntireColumn.Hidden = False
Application.Goto Reference:="FinP1"
Application.Goto Reference:="DebP2"
ActiveSheet.Protect Password:="zorro", DrawingObjects:=True,
Contents:=True, Scenarios:=True
End Sub
Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans
aucun soucis
cette solution fonctionne, je vais donc l'adopter avec mes remerciements réitérés.
Cela ne m'explique cependant pas pourquoi une macro qui a rendu de bons et loyaux services pendant trois ans tout d'un coup ne fonctionne plus !!
Moi qui aime bien comprendre le pourquoi des choses, me voilà un peu démuni
Bien amicalement
-- Georges Ecko
Windows XP sp 2 Office 2003
"michdenis" wrote:
Essaie ceci en prenant soin d'indiquer le nom de la feuille dans ton application, pour l'exemple j'ai pris "Feuil1" qui est la propriété "Name" visible dans l'interface de l'éditeur de code et non le nom de l'onglet de la feuille.
'------------------------------------------- Sub ImpComP() Dim NombreLigne As Variant On Error Resume Next Application.ScreenUpdating = False Do NombreLigne = Application.InputBox(Prompt:= _ "Donne moi le nombre d'élève de la classe", Type:=1) If Format(NombreLigne) = False Then If MsgBox("Désirez-vous annuler l'impression?", _ vbCritical + vbYesNo, "Impression") = vbYes Then Exit Sub End If End If Loop While Not NombreLigne > 0 NombreLigne = NombreLigne * 2 + 4
With Feuil1 .Unprotect Password:="zorro" .Columns("C:AL").EntireColumn.Hidden = True With .PageSetup .PrintArea = "$A$1:$BV$" & CStr(NombreLigne) .PageSetup.Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With .PrintOut Copies:=1, Collate:=True .PageSetup.PrintArea = "" .Columns("B:AM").EntireColumn.Hidden = False .Protect Password:="zorro", DrawingObjects:=True, _ Contents:=True, Scenarios:=True End With Application.Goto Reference:="FinP1" Application.Goto Reference:="DebP2"
End Sub '-------------------------------------------
"Georges Ecko" a écrit dans le message de news: Bonjour
J'ai un fichier contenant plusieurs macro gérant l'impression d'une partie d'une page. Ces macros fonctionnaient parfaitement bien il y a encore 4 mois et depuis le mois de septembre plus rien ne fonctionne, cela plante Excel à chaque fois !!.
Quelqu'un a-t-il une idée ?
Voici le code incriminé !
Sub ImpComP2() ' ' ImpComP2 Macro ' Macro créée le 28.8.2005 par Georges Ecko ' Dim NombreLigne As Integer On Error Resume Next ' Do ActiveSheet.Unprotect Password:="zorro" NombreLigne = InputBox("Donne moi le nombre d'élève de la classe") * 2 + 4 Loop While Not ((Val(NombreLigne)) > 0) On Error GoTo 0 Columns("C:AL").Select Range("C2").Activate Selection.EntireColumn.Hidden = True ActiveSheet.PageSetup.PrintArea = "$A$1:$BV$" & CStr(NombreLigne) With ActiveSheet.PageSetup .Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Columns("B:AM").Select Range("B33").Activate Selection.EntireColumn.Hidden = False Application.Goto Reference:="FinP1" Application.Goto Reference:="DebP2" ActiveSheet.Protect Password:="zorro", DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Le plus incroyable c'est que mode débogage pas à pas cela fonctionne sans aucun soucis
D'avance un grand merci pour vos lumières
-- Georges Ecko
Windows XP sp 2 Office 2003
michdenis
| Moi qui aime bien comprendre le pourquoi des choses, me voilà un peu démuni
Techniquement parlant, ta macro n'est pas la plus mieux écrite et elle devrait s'exécuter sans anicroches...et pour t'en convaincre, essaie-là dans un fichier tout neuf avec quelques données à imprimer.
Pour débugger ce type de procédure, il n'est pas suffisant de voir la procédure, il faut aussi avoir l'application (feuille) que tu tentes d'imprimer lorsque tu lances l'application.
Tu peux toujours la publier sur Cjoint.com en prenant soin de faire disparaître des données sensibles.
| Moi qui aime bien comprendre le pourquoi des choses, me voilà un peu
démuni
Techniquement parlant, ta macro n'est pas la plus mieux écrite et elle
devrait s'exécuter sans anicroches...et pour t'en convaincre, essaie-là dans
un fichier tout neuf avec quelques données
à imprimer.
Pour débugger ce type de procédure, il n'est pas suffisant de voir la
procédure, il faut aussi avoir l'application (feuille) que tu tentes
d'imprimer lorsque tu lances l'application.
Tu peux toujours la publier sur Cjoint.com en prenant soin de faire
disparaître des données sensibles.
| Moi qui aime bien comprendre le pourquoi des choses, me voilà un peu démuni
Techniquement parlant, ta macro n'est pas la plus mieux écrite et elle devrait s'exécuter sans anicroches...et pour t'en convaincre, essaie-là dans un fichier tout neuf avec quelques données à imprimer.
Pour débugger ce type de procédure, il n'est pas suffisant de voir la procédure, il faut aussi avoir l'application (feuille) que tu tentes d'imprimer lorsque tu lances l'application.
Tu peux toujours la publier sur Cjoint.com en prenant soin de faire disparaître des données sensibles.