Aide macro 2003 sur Excel 2010

Bonjour,

J'ai réalisé une macro qui fonctionne très bien sous excel 2003, cependant l'utilisateur est sous excel 2010 .

Voici ma macro :

Sub centredecout()

Dim WBSource As Workbook, WBDest As Workbook
Dim file_exist As String
Dim path As String, file As String, check_cell As String, new_file As String
Dim j As Long, i As Long, k As Long, last_row As Long, empty_last_row As Long

file = ActiveWorkbook.Name 'nom du fichier en cours : testmacro ici
last_row = Worksheets(1).Range("A65536").End(xlUp).Row 'dernière ligne du fichier en cours
Set WBSource = Workbooks(file) 'workbook source pour le c/c de ligne

path = "C:\Documents and Settings\lcristante\Desktop\test\" 'chemin du dossier global
Set WBSource = Workbooks(file)

Application.ScreenUpdating = False
For j = 5 To last_row 'balayage des centre de coût
    check_cell = WBSource.Sheets("Feuil1").Range("AM" & j).Value 'selection de la cellule colonne AM et ligne j

        file_exist = Dir(path & check_cell & ".xls")

 Application.DisplayAlerts = False
        If file_exist = "" Then 'si le fichier n'existe pas, on en créé un nouveau
            new_file = path & check_cell

            Dim XLBook As Workbook
            Dim XLSheet As Worksheet
            Set XLBook = Workbooks.Add

            XLBook.SaveAs new_file
            SetAttr new_file & ".xls", vbNormal
            Set WBDest = Workbooks.Open(new_file)

            'on met en place le fichier de destination
            SetAttr new_file & ".xls", vbNormal
            WBSource.Worksheets(1).Rows(3).Copy _
                 Destination:=WBDest.Worksheets(1).Cells(1, 1) 'c/c de l'entête du tableau
            empty_last_row = WBDest.Worksheets(1).Range("A65536").End(xlUp).Row + 1 'on selectionne la dernière ligne vide
            WBSource.Worksheets(1).Rows(4).Copy _
                 Destination:=WBDest.Worksheets(1).Cells(empty_last_row, 1)
            empty_last_row = WBDest.Worksheets(1).Range("A65536").End(xlUp).Row + 1 'on selectionne la dernière ligne vide
            WBSource.Worksheets(1).Rows(j).Copy _
                  Destination:=WBDest.Worksheets(1).Cells(empty_last_row, 1) 'c/c de la ligne

            WBDest.Save
            WBDest.Close 'on le ferme

        Else
             file = path & check_cell & ".xls"
             SetAttr file, vbNormal
             Set WBDest = Workbooks.Open(file) 'on met en place le fichier de destination

             empty_last_row = WBDest.Worksheets(1).Range("A65536").End(xlUp).Row + 1 'on selectionne la dernière ligne vide
             WBSource.Worksheets(1).Rows(j).Copy _
                  Destination:=WBDest.Worksheets(1).Cells(empty_last_row, 1) 'c/c

             WBDest.Save
             WBDest.Close 'on le ferme
    End If
             Application.DisplayAlerts = True

Next j

Application.ScreenUpdating = True
End Sub

Je ne sais pas du tout ce qu'il faut changer pour que celà fonctionne sous excel 2010.

Quelqu'un a t'il une idée ?

D'avance merci

talk

Salut Talk,

Comme tu ne nous fournis pas de fichier, c'est difficile de tester

Mais as-tu essayé ce code sur Excel 2010 ? Qu'est-ce qui ne passe pas ? Selon moi rien, puisque les nouvelles versions devraient prendre en charge (pratiquement toutes) les possibilités des versions précédentes.

Si jamais ça bloque, donne quelques détails, par exemple où est-ce que ça bloque.

Cordialement.

Bonjour,

désolé de cette réponse tardive !

J'ai résolu le problème tout seul finalement.

Le problème était que je recherchais des fichiers en ".xls" sous excel 2003 alors que le 2010 crée des fichier ".xlsx" .

J'ai juste à rajouter le x a la fin de ".xls" et le tour était joué !

Rechercher des sujets similaires à "aide macro 2003 2010"