Passage de XL2003 à 2007

cs_EricFa Messages postés 6 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 9 juin 2008 - 29 mai 2008 à 13:42
cs_EricFa Messages postés 6 Date d'inscription jeudi 29 mai 2008 Statut Membre Derniè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

Merci d'avance... Amités 

Eric

3 réponses

cs_EricFa Messages postés 6 Date d'inscription jeudi 29 mai 2008 Statut Membre Derniè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
    
 '___________________________________________________________________________________________      
        'Boucle pour afficher Pages Chemin
        DataChemin = 10
        Page = Range(("H10") & DataChemin).Value
        NumPhoto = Range("Y6").Value
                
          '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
           
          End If
          
        Next k    
       
        'Règle l'échelle d'affichage des images
        ActiveSheet.Pictures.ShapeRange.ScaleWidth 0.98, msoFalse, msoScaleFromTopLeft
        ActiveSheet.Pictures.ShapeRange.ScaleHeight 0.98, msoFalse, msoScaleFromTopLeft
       
        PE = PE + 55
       
'____________________________________________________________________________
        ' 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
   
        ActiveSheet.PageSetup.PrintArea = "$A$1:$H$" & PE
        With ActiveSheet.PageSetup
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
            .LeftMargin = Application.InchesToPoints(0.25)
            .RightMargin = Application.InchesToPoints(0.22)
            .TopMargin = Application.InchesToPoints(0.984251969)
            .BottomMargin = Application.InchesToPoints(0.984251969)
            .HeaderMargin = Application.InchesToPoints(0.37)
            .FooterMargin = Application.InchesToPoints(0.4921259845)
            .PrintHeadings = False
            .PrintGridlines = False
            .PrintComments = xlPrintNoComments
            .PrintQuality = 600
            .CenterHorizontally = False
            .CenterVertically = False
            .Orientation = xlPortrait
            .Draft = False
            .PaperSize = xlPaperA4
            .FirstPageNumber = xlAutomatic
            .Order = xlDownThenOver
            .BlackAndWhite = False
            .Zoom = 100
            .PrintErrors = xlPrintErrorsDisplayed
        End With
   
        'Affichage de la première page
        Range("H9").Select
       
        '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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 mai 2008 à 14:11
si tu valides ta réponse, peu de chances qu'il y ait du passage sur ton topic...
(flag modifié)

et tu es en VBA, pas VB6
(catégorie modifiée)

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
cs_EricFa Messages postés 6 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 9 juin 2008
29 mai 2008 à 14:33
Merci de l'info !

Je suis sous VB 6.3
0
Rejoignez-nous