Macro Autofilter
Résolu
kimiros
Messages postés
10
Statut
Membre
-
kimiros Messages postés 10 Statut Membre -
kimiros Messages postés 10 Statut Membre -
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 ?
Merci d'avance,
Cordialement
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:
- Macro Autofilter
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
2 réponses
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 ...
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 ...
Re,
Fichier modifie : https://www.cjoint.com/c/EKylCxOjnYf
Ai du mal a comprendre votre logique, mais ca copie
Fichier modifie : https://www.cjoint.com/c/EKylCxOjnYf
Ai du mal a comprendre votre logique, mais ca copie
Cordialement
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
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
Je regarde la chose
A+