Code déclaré Public

lmc71

XLDnaute Occasionnel
Bonjour le Forum,
J'ai crée une macro avec l'enregistreur de macro me permettant d'extraire des doublons. Elle fonctionne très bien, et je voudrais pouvoir utiliser ce code dans les autres onglets. Elle a été enregistrée sur la feuille JANVIER et je voudrais pouvoir changer les lignes portant le nom de la feuille("Janvier") ActiveWorkbook.Worksheets("Janvier").Sort.SortFields.Clear de façon à rendre ce code utilisable sur tous les autres onglets de ce classeur.
Je voudrais éviter de créer une macro spécifique à chaque onglet. Chose faisable mais très lourd je suppose.
Je ne sais pas faire. Merci de votre aide
Ci-dessous est présent le code enregistré. Merci de pouvoir le modifier.
Amicalement

BONNES FÊTES


Sub Doublon_Trie()
'
' Macro2 Macro
'
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="123", UserInterfaceOnly:=True 'Enlève et remet le mot de passe

'Copie Motif
Range("E5:E152").Select
Selection.Copy
ActiveWindow.LargeScroll ToRight:=1
Range("AA155").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Range("$AA$155:$AA$302").RemoveDuplicates Columns:=1, Header:= _
xlNo
ActiveWorkbook.Worksheets("Janvier").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Janvier").Sort.SortFields.Add Key:=Range("AA155") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Janvier").Sort
.SetRange Range("AA155:AA302")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


'Copie bénéficiaire

Range("F5:F152").Select
Selection.Copy
ActiveWindow.LargeScroll ToRight:=1
Range("AE155").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Range("$AE$155:$AE$302").RemoveDuplicates Columns:=1, Header:= _
xlNo
ActiveWorkbook.Worksheets("Janvier").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Janvier").Sort.SortFields.Add Key:=Range("AE155") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Janvier").Sort
.SetRange Range("AE155:AE302")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Call Dernier_Ligne


End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Code déclaré Public

Quoi l'autre problème ? Ce n'est pas encore réglé avec la proposition #11 de Staple1600 ?

D'une facon générale évitez d'utiliser plusieurs fois une expression Workbook, Worksheet ou Range obligeant Excel à aller rechercher l'objet dans ses collections. Affectez la plutôt une seule fois à une variable As Workbook, Worksheet ou Range et utilisez la à la place de l'expression. Le mieux c'est toujours de demander le moins de choses possible à Excel de toutes façon, et de grouper les demandes (pour ce qui est des Range surtout: si possible un seul au début un autre à la fin pour charger et décharger carrément toute la UsedRange dans un tableau: C'est rentable en terme de temps même si on n'a besoin d'en consulter et modifier qu'1/1000 et plus de 10).
 
Dernière édition:

lmc71

XLDnaute Occasionnel
Re : Code déclaré Public

Re En ce qui concerne les doublons et les activeFeuille tout est OK que ce soit de par vous et de Staple 1600.
La deuxième question était l'histoire de la formule ou autre pour la colonne A de façon a avoir 5 lignes de libre après l'utilisation du code
Dim Lg%, i%
Application.ScreenUpdating = False
Lg = Range("a" & Rows.Count).End(xlUp).Row
Range("a3:a" & Lg).Rows.Hidden = False
For i = 4 To Lg
If Cells(i, "a") = "" Then
Cells(i, "a").Rows.Hidden = True
End If
Next i


personne n'a répondu à cette question.
Je tiens, quand même, à vous remercier les deux pour tout ce que vous avez fait.
Cordialement

PS : Comment ce fait-il que ta réponse n'apparaît pas dans la discussion initiale ? Juste pour comprendre.
 
Dernière édition:

lmc71

XLDnaute Occasionnel
Re : Code déclaré Public

Re
Il faut dire que je ne suis pas étendu sur le sujet.
Il est vrai, que c'est plus pour l'esthétique que pour la valeur de calcul.
Laisse tomber.
Je te remercie encore et passez tous de BONNES FETES de fin d'ANNEE.
 

Statistiques des forums

Discussions
312 216
Messages
2 086 344
Membres
103 193
dernier inscrit
tedelio