Bonjour,

J'ai la joie et la bonne humeur d'ouvrir ma première discussion sur Developpez.com! Je suis heureux comme un code qui marche

Sauf que celui-là à un petit défaut lorsque je le fais fonctionner sur Windows, alors qu'il marche très bien sur mon Mac avec Excel 2011:

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
Sub RéorgFeuilles()

'Réorganise toutes les feuilles brutes
    
        Application.ScreenUpdating = False
        'Réduit le temps d'exécution
        
        Application.DisplayAlerts = False
    Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Delete
    Application.DisplayAlerts = True
        'Supprime les 3 dernières feuilles vides sans demander de confirmation
        
Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets

ws.Activate

        Range("A5:A65536").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        'Supprime les lignes vides
        
        Range("A65536").End(xlUp).Select
    Do While ActiveCell.Row > Range("A5").Row
    If ActiveCell = "À supprimer" Then
    ActiveCell.EntireRow.Delete
    End If
    ActiveCell.Offset(-1, 0).Select
    Loop
        'Supprime les lignes dont la première cellule est "À supprimer"
    
        Columns("B:B").Delete shift:=xlToLeft
    Range("A4").ClearContents
    Range("D2").ClearContents
        'Supprime la colonne B et le contenu de deux cellules
        
        Range("C1:C3").Cut Destination:=Range("B1:B3")
        'Déplace les infos d'en-tête
        
        Columns("C:C").EntireColumn.AutoFit
        'Redimensionne la colonne C
        
        Columns("C:E").NumberFormat = "#,##0.00"
        'Formate les nombres
        
        Range("F6").Select
    ActiveWindow.FreezePanes = True
        'Fige les volets
    
        Dim No As String
        
        No = "No" & Mid(Range("B1"), 8, 1) & " " & Mid(Range("B2"), 6, 1)
    ActiveSheet.Name = No
        'Renomme les feuilles
    
Next ws

        Dim X As Variant
        Dim I As Variant
    
        For Each X In ActiveWorkbook.Sheets
    For I = 0 To ActiveWorkbook.Sheets.Count - 1
    Sheets(1).Move after:=Sheets(Sheets.Count - I)
    Next
    Next
        'Inverse l'ordre des feuilles

End Sub
Dans toutes les feuilles, les panneaux sont bien figés à partir de la cellule F6, mais dans la dernière feuille (qui devient la première à la fin), les panneaux figés ne sont pas les bons. La cellule F6 est bien sélectionnée, mais les panneaux figés sont beaucoup plus larges comme s'ils l'avaient été depuis la cellule J62, 6 lignes après la dernière ligne de données…

Avez-vous une idée de ce qui peut provoquer un tel résultat? Y a-t-il une erreur dans mon code? Ou est-ce que ça peut être les réglages dans Excel 2010 sur Windows qui sont différents de Excel 2011 sur Mac?

Je me réjouis de vos contributions