Macro copier coller avec condition

Bonjour,

J'ai un petit problème pour automatiser une simple recherche.

Dans la feuille "Agents" on retrouve les noms des personnes avec en colonne B leur service.

J'aimerai qu'automatiquement ca copie colle les noms des personnes dans la bonne colonne avec une macro ou alors une formules.

Si on supprime une ligne dans agent, ca enleve son nom dans la feuille service, et s'il on ajoute un nom, ca l'ajoute également dans la feuille Service.

J'espere que c'est compréhensible ^^

Merci de votre aide !

10test.xlsx (12.32 Ko)

Salut,

Une "bidouille" par formule. (Tu peux masquer la colonne A que j'ai rajouté si elle te gène)

Girodo,

9test.xlsx (35.17 Ko)

Bonjour Nyfa, bonjour le forum,

Essaie comme ça :

Dim TV As Variant
Dim D As Object
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim COL As Byte
Dim TL() As Variant

Set OA = Worksheets("Agents")
Set OS = Worksheets("Service")
TV = OA.Range("A1").CurrentRegion
Set D = CreateObject("Scripting.Dictionary")
For I = 2 To UBound(TV, 1)
    D(TV(I, 2)) = ""
Next I
tmp = D.Keys
For J = 0 To UBound(tmp)
    K = 1: Erase TL
    COL = OS.Rows(1).Find(tmp(J), , xlValues, xlWhole).Column
    For I = 2 To UBound(TV, 1)
        If TV(I, 2) = tmp(J) Then
            ReDim Preserve TL(1 To K)
            TL(K) = TV(I, 1)
            K = K + 1
        End If
    Next I
    OS.Cells(2, COL).Resize(UBound(TL), 1) = Application.Transpose(TL)
Next J
End Sub

Plus le temps de commenter le code mais si tu en as besoin n'hésite pas...

Bonjour NyfaDu86, Girodo, Thauthème,

Un essai par formule matricielle..... ....à valider par touches Ctrl + Maj + Entrée

Sur feuille Service, en A2:

=SI(LIGNE()-1>NB.SI(Agents!$B$1:$B$138;A$1);"";INDEX(Agents!$A$1:$A$138;PETITE.VALEUR(SI(Agents!$B$1:$B$138=A$1;LIGNE(Agents!$B$1:$B$138);"");LIGNE()-1)))

à tirer vers la droite puis en bas.

7test-1.xlsx (35.84 Ko)

Cordialement,

Merci pour vos trois solutions, c'est parfait :

Rechercher des sujets similaires à "macro copier coller condition"