Macro Autofilter

Résolu/Fermé
kimiros Messages postés 8 Date d'inscription vendredi 23 décembre 2011 Statut Membre Dernière intervention 25 novembre 2015 - 19 nov. 2015 à 23:05
kimiros Messages postés 8 Date d'inscription vendredi 23 décembre 2011 Statut Membre Dernière intervention 25 novembre 2015 - 25 nov. 2015 à 14:28
Bonjour,

J'ai en ma possession une macro me permettant de filtrer mes choix d'une première feuille et de les reporter dans une autre. Cependant, depuis la modification du nom et du nombre de feuille, elle ne veut plus rien entendre. Pouvez-vous me dire si quelque chose vous choque dans cette macro ?


Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Application.ScreenUpdating = False
Machine = ActiveSheet.Name
If Machine = "UT 1 Bureau Technique" Or Machine = "UT 2 Cuisine" Or Machine = "UT 3 Cantine" Or Machine = "UT 4 Salle de jeu - Sommeil" Or Machine = "UT 5 Salle d'accueil" Or Machine = "UT 6 Salle de chnage - d'eau" Or Machine = "UT 7 Laverie" Or Machine = "UT 8 Parc" Then
Set W = Sheets("RELEVE DES RISQUES").Range("a1:F1")
W.AutoFilter
W.AutoFilter Field:=8, Criteria1:=Machine
Sheets("RELEVE DES RISQUES").Range("a1:s" & derlig).Copy Destination:=Sheets(Machine).Range("a1")
derlig = Sheets("RELEVE DES RISQUES").Range("f65536").End(xlUp).Row
Sheets(Machine).Range("a1:s1000").ClearContents
W.AutoFilter
Call test
Call touteut
End If
Application.ScreenUpdating = True
End Sub

Sub test()
Dim derlig As Integer
Dim plage As Range
Machine = ActiveSheet.Name
With Sheets(Machine)
derlig = .Range("A" & Rows.Count).End(xlUp).Row
Set plage = .Range("A2:s" & derlig)
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("B1:B" & derlig), SortOn:=xlSortOnValues, _
Order:=xlDescending, DataOption:=xlSortNormal
With .Sort
.SetRange plage
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End Sub


Sub touteut()
Dim ong As Worksheet 'déclare la variable ong (ONGlet)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (DESTination)
Dim plage As Range
Machine = ActiveSheet.Name
With Sheets("RELEVE DES RISQUES")
derlig = Sheets("RELEVE DES RISQUES").Range("F65536").End(xlUp).Row
Set plage = Sheets("RELEVE DES RISQUES").Range(.Cells(2, 8), .Cells(derlig, 8))

For Each cel In plage
If cel.Text = "Toutes les UT" Then 'condition 2 : si la cellule n'est pas vide
Set dest = Sheets(Machine).Range("A65536").End(xlUp).Offset(1, 0) 'définit la variable dest (destination de la copie)
Range(cel.Offset(0, -7), cel.Offset(0, 14)).Copy dest 'copie la ligne et la colle dans dest
End If 'fin de la condition 2
Next cel 'prochaine cellule cel de la boucle 2
End With
End Sub


Merci d'avance,

Cordialement

A voir également:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
20 nov. 2015 à 16:06
Bonjour,

Question:
avez-vous modifie le code pour prendre en compte les nouveaux noms de feuille et les feuilles supplémentaires, ca peut paraitre neuneu mais ...
0
kimiros Messages postés 8 Date d'inscription vendredi 23 décembre 2011 Statut Membre Dernière intervention 25 novembre 2015
20 nov. 2015 à 19:25
Oui, les noms associés au paramètre "Machine" sont les feuilles concernées par cette macro.

Cordialement
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > kimiros Messages postés 8 Date d'inscription vendredi 23 décembre 2011 Statut Membre Dernière intervention 25 novembre 2015
21 nov. 2015 à 08:16
Bonjour,

Une chose sure, le code fonctionne, puisque au changement de feuille ayant mis un point d'arret ca s'arrete, mais n'ayant pas vos donnees, peux pas savoir ce qui ne "fonctionne" pas
0
kimiros Messages postés 8 Date d'inscription vendredi 23 décembre 2011 Statut Membre Dernière intervention 25 novembre 2015
24 nov. 2015 à 11:00
Bonjour,

Je vous met ci-joint mon fichier avec deux exemples de données dans la feuille "relevé des risques". Le but est que quand on choisit une unité de travail dans la feuille "relevé des risques", la ligne correspondante soit reportée dans l'onglet concernant l'unité de travail.

https://www.cjoint.com/c/EKyj7ZYekYr
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > kimiros Messages postés 8 Date d'inscription vendredi 23 décembre 2011 Statut Membre Dernière intervention 25 novembre 2015
24 nov. 2015 à 12:00
Bonjour,

Je regarde la chose

A+
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
24 nov. 2015 à 12:29
Re,

Fichier modifie : https://www.cjoint.com/c/EKylCxOjnYf

Ai du mal a comprendre votre logique, mais ca copie
0
kimiros Messages postés 8 Date d'inscription vendredi 23 décembre 2011 Statut Membre Dernière intervention 25 novembre 2015
25 nov. 2015 à 14:28
Nickel merci, la copie dans les onglets va permettre de trier et de traiter localement des problèmes.

Merci encore pour votre aide.
0