Récupérer les valeurs d'une liste - avec mise à jour (Filtre en fonction)

Le
Fredo(67)
Bonjour,

Je tiens dans un fichier un suivi des salariés employés.
Chaque onglet est associé à un ouvrier

dans cet onglet, sont notés les différents chantiers auxquel l'ouvrier
a été affecté
en regard de ces affectations, sont notés les taux horaires.
Sachant qu'il y a des augmentations, les taux horaires varient (pour
augmenter progressivement)
Soit, dans la zone J2-J30 les différents taux horaires.
11.00
11.00
12.00
12.00
12.00
12.00
12.00
12.50
12.50
12.50
12.50
12.50
12.50
13.00
13.25
14.00

Avec l'option filtre élaboré, je sais récupérer les différentes
valeurs du taux horaire
Soit alors les valeurs suivantes :
11.00
12.00
12.50
13.00
13.25
14.00
Hors le résultat du filtre ne se met pas à jour, à moins de le refair=
e


Sachant que je fais le suivis de 130 ouvriers (donc 130 onglets)
l'utilisation d'une macro peut s'avérer fastidieuse.

Y'aurait il moyen de faire cela par le biais d'une fonction
directement dans l'onglet ?
Du style =recherc

Merci de vos lumières
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #17558911
Salut Fredo

Tu peux mettre ce bout de code dans le VBA de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 10 Then
Range("J2").Activate
Do While ActiveCell.Row < Range("J65535").End(xlUp).Row + 1
If ActiveCell <> ActiveCell.Offset(1, 0) Then
Sheets("Feuil2").Range("A65535").End(xlUp).Offset(1, 0) = ActiveCell
End If
ActiveCell.Offset(1, 0).Activate
Loop
Sheets("Feuil2").Range("A65535").End(xlUp).Offset(1, 0) = ActiveCell
End If
End Sub

A chaque recopie pour chaque ouvrier
Le Résultat colonne A Feuil2

Celà devrait faire
Dis moi !!!
Fredo(67)
Le #17586161
Tout d'abord merci beaucoup

J'ai modifié le code comme ceci
***
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
Range("s2:s5000").ClearContents
Range("g15").Activate
Do While ActiveCell.Row < Range("g65535").End(xlUp).Row + 1
If ActiveCell <> ActiveCell.Offset(1, 0) Then
Range("s5000").End(xlUp).Offset(1, 0) = ActiveCell
End If
ActiveCell.Offset(1, 0).Activate
Loop
Range("s2") = ActiveCell
End If
End Sub
***
En je veux les résultats sur la feuille meme
et il faut effacer les anciennes valeur à chaque changement dans la
zone

Maintenant,
j'aimerais que la macro ne se lance que si la modification intervient
dans la plage G16:G36 (je ne trouve pas le code exact)
Et je voudrais que le résultat soit affiché dans la zone S16:S36 (hors
celui ci n'apaprait qu'en S2 et en dessous)

MErci

On 17 oct, 16:32, FFO
Salut Fredo

Tu peux mettre ce bout de code dans le VBA de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 10 Then
Range("J2").Activate
Do While ActiveCell.Row < Range("J65535").End(xlUp).Row + 1
If ActiveCell <> ActiveCell.Offset(1, 0) Then
Sheets("Feuil2").Range("A65535").End(xlUp).Offset(1, 0) = ActiveCell
End If
ActiveCell.Offset(1, 0).Activate
Loop
Sheets("Feuil2").Range("A65535").End(xlUp).Offset(1, 0) = ActiveCell
End If
End Sub

A chaque recopie pour chaque ouvrier
Le Résultat colonne A Feuil2

Celà devrait faire
Dis moi !!!


Fredo(67)
fabienne
Le #18093161
quelqun peu m'aider je ne sais plus dll mes mise a jour merci bonne soirée

"Fredo(67)" wrote:

Tout d'abord merci beaucoup

J'ai modifié le code comme ceci
***
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
Range("s2:s5000").ClearContents
Range("g15").Activate
Do While ActiveCell.Row < Range("g65535").End(xlUp).Row + 1
If ActiveCell <> ActiveCell.Offset(1, 0) Then
Range("s5000").End(xlUp).Offset(1, 0) = ActiveCell
End If
ActiveCell.Offset(1, 0).Activate
Loop
Range("s2") = ActiveCell
End If
End Sub
***
En je veux les résultats sur la feuille meme
et il faut effacer les anciennes valeur à chaque changement dans la
zone

Maintenant,
j'aimerais que la macro ne se lance que si la modification intervient
dans la plage G16:G36 (je ne trouve pas le code exact)
Et je voudrais que le résultat soit affiché dans la zone S16:S36 (hors
celui ci n'apaprait qu'en S2 et en dessous)

MErci

On 17 oct, 16:32, FFO > Salut Fredo
>
> Tu peux mettre ce bout de code dans le VBA de la feuille :
>
> Private Sub Worksheet_Change(ByVal Target As Range)
> If Target.Column = 10 Then
> Range("J2").Activate
> Do While ActiveCell.Row < Range("J65535").End(xlUp).Row + 1
> If ActiveCell <> ActiveCell.Offset(1, 0) Then
> Sheets("Feuil2").Range("A65535").End(xlUp).Offset(1, 0) = ActiveCell
> End If
> ActiveCell.Offset(1, 0).Activate
> Loop
> Sheets("Feuil2").Range("A65535").End(xlUp).Offset(1, 0) = ActiveCell
> End If
> End Sub
>
> A chaque recopie pour chaque ouvrier
> Le Résultat colonne A Feuil2
>
> Celà devrait faire
> Dis moi !!!




Publicité
Poster une réponse
Anonyme