Bonjour,

Dans le cadre d'une formation nous avons créé une macro sous Excel 2007 qui permet de consolider les données de plusieurs feuilles Excel en une seule. La macro fonctionne bien sous Excel 2007 par contre elle ne s'exécute pas sous Excel 2010 !

Code VBA :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Option Explicit
Dim classeur_conso As String
Dim nom_ville As String
Dim cellule_de_la_ville
 
 
 
Sub Consolidation()
'
' Consolidation Macro
 
    Application.DisplayAlerts = False
 
[A1].CurrentRegion.Offset(1, 0).Clear 
 
ChDir ActiveWorkbook.Path 'c'est le chemin du premier classeur
 
classeur_conso = ActiveWorkbook.Name 'c'est le mon du classeur
 
 
[J2].Select 'on se positionne sur la ville
 
    Do While ActiveCell <> ""
    nom_ville = ActiveCell
    cellule_de_la_ville = ActiveCell.Address
    Workbooks.Open Filename:=nom_ville               => à ce niveau cela bloque sous Excel 2010, message d'erreur fichier introuvable!
 
    nom_ville = ActiveWorkbook.Name  'chemin du fichier
 
    Range("A2").Select 'nous on veut A2
 
 
    Range(Selection, Selection.End(xlToRight)).Select 'sélection droite
    Range(Selection, Selection.End(xlDown)).Select 'sélection en bas
 
    Selection.Copy
 
    Windows(classeur_conso).Activate 'on active la fenetre
 
 
    [A100000].End(xlUp).Offset(1, 0).Select 'très importnat pour sélectionner la cellule vide
 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False 'copie des valeurs
 
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False 'copie du format
 
    Workbooks(nom_ville).Close False  ' on ferme la feuille
 
    Range(cellule_de_la_ville).Offset(1, 0).Select
    'donc on fait appel à la cellule suivante référence vers le bas
 
 
 
    Loop
 
    Application.DisplayAlerts = True
 
 
 
 
 
 
    Range("A2").Select 'nous on veut A2
 
 
    Range(Selection, Selection.End(xlToRight)).Select 'sélection droite
    Range(Selection, Selection.End(xlDown)).Select 'sélection en bas
 
    Selection.Copy
 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False 'copie des valeurs
 
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False 'copie du format
 
 
 
 
End Sub

Merci pour votre aide.