Bonjour à tous.
Je suis novice en matière de macroet je me sers beaucoup de tuto et astuces trouvés sur ce forum et d'autres.
Habituellement j'arrive à adapter les macros à mon application, mais sur celle-là, je sèche.
Voici ma problématique.
J'ai un fichier de suivi de production sur lequel chaque onglet représente un mois.
Pour faciliter la création du mois suivant,(on copie le mois actuel et on efface toutes les cellules non verrouillées manuellement) je voudrais créer le nouveau mois de manière automatique (copie et effacement cellules).
Pour la copie ce n'est pas un problème, mais pour l'effacement, ça se complique car il y a beaucoup de cellules à sélectionner et à effacer.
Pour la sélection, j'ai trouvé cette macro que j'ai adaptée.
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 Sub test3() 'Application.ScreenUpdating = False Dim C As Range, NelleSelection As Range Dim position As Variant Dim position1 As Variant Dim numero As Integer numero = 10 'Numéro de départ (correspond ici au n° de colonne) While numero <= 30 'TANT QUE la variable numero est <= 152, la boucle est répétée position = numero 'colonne de début de la selection position1 = numero + 2 'colonne de fin de la selection 'Range(Cells(6, positionv), Cells(675, positionv1)) 'décalage sur l'ensemble des colonnes For Each C In Range(Cells(6, position), Cells(32, position1)) 'décalage pour test If C.Locked = False Then If NelleSelection Is Nothing Then Set NelleSelection = C Else Set NelleSelection = Union(NelleSelection, C) End If End If Next C If Not NelleSelection Is Nothing Then NelleSelection.Select Selection.ClearContents numero = numero + 5 'Le numéro est augmenté de 5 à chaque boucle Wend Cells(6, position).Select 'Application.ScreenUpdating = True End Sub
Elle fonctionne, mais avec un bug.
Lorsque je la lance, la sélection des cellules non-verrouillées se fait bien sur le premier jour, mais lorsque ça passe au jour suivant, la sélection précédente est prise en compte également et ainsi de suite jusqu'au dernier jour.
Ce qui fait que la macro est de plus en plus lente jusqu’à faire planter le fichier.
Je ne trouve pas comment faire pour ne que les cellules non comprises dans dans mon intervalle soient re-sélectionnées.
Merci de votre aide
Xavier
Partager