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:
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…
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
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![]()
Partager