cs_EricFa
Messages postés6Date d'inscriptionjeudi 29 mai 2008StatutMembreDernière intervention 9 juin 2008
-
29 mai 2008 à 13:42
cs_EricFa
Messages postés6Date d'inscriptionjeudi 29 mai 2008StatutMembreDernière intervention 9 juin 2008
-
29 mai 2008 à 14:33
Bonjour à tous... je suis un petit nouveau et en plus pas un expert...
Je réalisé un programme sous VBA mais j'ai un problème au passage de version d'EXCEL 2003 à 2007, car ma macro ne fonctionne pas correctement sous 2007.
En effet, l'affichage ne ce fait pas correctement, c'est à dire les images (.tif) de pages de texte scannées que je viens charger (d'un autre répertoire) ne se positionnent pas page après page sous 2007 comme la macro sous 2003 le fait exécuter !
Le problème associé est dans la définition de la zone d'impression, qui ne se définit pas correctement... également.
Pourriez vous m'aider à reprogrammer pour que le programme fonctionne sous XL 2007
cs_EricFa
Messages postés6Date d'inscriptionjeudi 29 mai 2008StatutMembreDernière intervention 9 juin 2008 29 mai 2008 à 13:46
Oups ... voici le programme :
Public Sub Macro1()
'Permet d'exécuter la macro dans un feuille protégée
ActiveSheet.Unprotect "ericfa"
PE = 0
NbPage = 0
'Bloc la mise à jour de l'affichage des pages pour gagner de la vitesse
Application.ScreenUpdating = False
'Boucle pour effacer les objets de la feuille
For i = ActiveSheet.Shapes.Count To 1 Step -1
'Test si le début du nom de l'objet est une image "Picture" _
si oui, suppression de l'objet
If Left(ActiveSheet.Shapes(i).Name, 7) = "Picture" Then _
ActiveSheet.Shapes(i).Delete
Next i
'Boucles pour afficher Pages Energies
'4 Energies maxi
For k = 1 To 4
DataEnergie = 12 + k
Page = Range(("H") & DataEnergie).Value
NumPhoto = Range(("D") & DataEnergie).Value
If k <> 3 And NumPhoto <> 0 Then _
'Affichage des Pages Energies
For i = 1 To Page
NbPage = NbPage + 1
PE = PE + 56
Range(("A") & PE).Select
FichierAImporter = Sheets("Chemin Vie").Range("PréfixePhotoEnergie") & NumPhoto & "_" & i & Sheets("Chemin Vie").Range("SuffixeNomPhoto")
ActiveSheet.Pictures.Insert(Sheets("Chemin Vie").Range("RépertoireEnergie") & "" & FichierAImporter).Select
Next i
End If
Next k
'Affichage des Pages But
For i = 1 To Page
NbPage = NbPage + 1
PE = PE + 56
Range(("A") & PE).Select
FichierAImporter = Sheets("Chemin Vie").Range("PréfixePhotoBut") & NumPhoto & "_" & i & Sheets("Chemin Vie").Range("SuffixeNomPhoto")
ActiveSheet.Pictures.Insert(Sheets("Chemin Vie").Range("RépertoireBut") & "" & FichierAImporter).Select
Next i
'___________________________________________________________________________________________ 'Boucle pour afficher Pages Lois
'6 Lois maxi
For k = 1 To 6
DataLois = 18 + k
Page = Range(("H") & DataLois).Value
NumPhoto = Range(("D") & DataLois).Value
If k <> 6 And NumPhoto <> 0 Then _
'Affichage des Pages Lois
For i = 1 To Page
NbPage = NbPage + 1
PE = PE + 56
Range(("A") & PE).Select
FichierAImporter = Sheets("Chemin Vie").Range("PréfixePhotoLoi") & NumPhoto & "_" & i & Sheets("Chemin Vie").Range("SuffixeNomPhoto")
ActiveSheet.Pictures.Insert(Sheets("Chemin Vie").Range("RépertoireLoi") & "" & FichierAImporter).Select
Next i
'____________________________________________________________________________
' Effacer ancienne zone d'impression
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
' Créer zone d'impression
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
'Affichage du nombre de pages
MsgBox "Votre édition comportera : " _
& Application.ExecuteExcel4Macro("GET.DOCUMENT(50)") _
& " feuille(s)"
'Rétablit la mise à jour de l'affichage des pages
Application.ScreenUpdating = True
'Restaure la protection de la feuille
ActiveSheet.Protect "ericfa", True, True, True
End Sub
Public Sub Macro2()
' Impression des différents onglets sur l'imprimante désignée par défaut
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub