Résolu XL 2013 Copie automatique sous condition, d'une cellule d'un onglet vers un autre

Luc MOUNY

XLDnaute Junior
Bonjour à tout le forum,

Je viens de me "récupérer" une nouvelle casquette, je suis devenu trésorier adjoint d'une association. ma mission consiste à collecter les adhésions des membres, environ 300.

Je sèche depuis plusieurs jours sur un problème : J'ai un onglet appelé RECAP et un autre ADHESIONS 2020.
Le hic, ma BDD RECAP et mon onglet AdDHESIONS 2020 ne possèdent pas la même structure.

Est-il possible de copier sous condition le contenu d'une cellule de RECAP vers une Cellule de ADHESION 2020 par formule ou VBA ?

le fichier joint sera je pense plus explicite.

Si une âme charitable pouvait m'aider, je lui en serai reconnaissant.

Je vous remercie par avance.
 
Ce fil a été résolu! Aller à la solution…

Fichiers joints

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Lus,
Un essai en PJ ... avec une macro événementielle :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("Y2:Y500")) Is Nothing Then
        Nom = Cells(Target.Row, 3) & " " & Cells(Target.Row, 4)
        IndexW = Application.Match(Nom, Sheets("Adhésions 2020").Range("B1:B500"), 0)
        Sheets("Adhésions 2020").Cells(IndexW, 6) = Target
    End If
Fin:
End Sub
 

Fichiers joints

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Sans macro. Les formules en colonne E étant matricielles, elles doivent être validées par ALT+CTRL+Entrée :
VB:
= SIERREUR(SI(INDEX(Recap!Y:Y;EQUIV( 1; (Recap!C:C =GAUCHE(B2;CHERCHE(" "; B2; 1)-1)) * (Recap!D:D =STXT(B2;CHERCHE(" "; B2; 1)+1;100)); 0))=0;"";INDEX(Recap!Y:Y;EQUIV( 1; (Recap!C:C =GAUCHE(B2;CHERCHE(" "; B2; 1)-1)) * (Recap!D:D =STXT(B2;CHERCHE(" "; B2; 1)+1;100)); 0)));"")
Perso, je préfère la version VBA. :)
 
Ce message a été identifié comme étant une solution!

Fichiers joints

Luc MOUNY

XLDnaute Junior
Rebonjour le forum et Sylvanu,

Pour faire les différents essais, de la version VBA,
J'ai effacé à plusieurs reprises la colonne Y de l'onglet Recap, pendant les 4, ou 5 premiers essais, si j'efface une ou plusieurs cellules contenant un *, la cellule concernée de l'onglet Adhésion s'efface aussi. après le 5ème essai, les cellules de la colonne F de l'onglet Adhésions ne s'effacent plus.
Par contre, je n'ai rencontré ce genre de problême problème avec la formule matricielle.
J'aurai moi aussi eu une préférence pour la version VBA.

Merci pour le temps passé pour débrouiller mon souci.

Je crois que je vais me diriger vers la formule matricielle.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Avec la macro actuelle quand on sélectionne plusieurs cellules la macro n'est pas activée, au cause de : If Target.Count > 1 Then Exit Sub
Je vais reprendre celle ci en conséquence. Laissez moi qques min.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Généralement on traite pas des plages complètes, d'où cette ligne que j'ai mis par réflexe.
Une nouvelle macro :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin
    If Not Intersect(Target, Range("Y2:Y500")) Is Nothing Then
        DerLig = Range("B65500").End(xlUp).Row
        For i = 2 To DerLig
            Nom = Cells(i, 3) & " " & Cells(i, 4)
            IndexW = Application.Match(Nom, Sheets("Adhésions 2020").Range("B1:B500"), 0)
            Sheets("Adhésions 2020").Cells(IndexW, 6) = Cells(i, 25)
        Next i
    End If
Fin:
End Sub
A chaque clic dans Y2:Y500 on réactualise tout Adhésions 2020.
En espérant que ça colle.
 

Fichiers joints

Luc MOUNY

XLDnaute Junior
Effectivement Sylvanu, c'est la réflexion que je me suis fait, sur ma base de données, j'ai déjà 160 adhésions enregistrées, je me vois mal les effacer pour avoir le plaisir de les re saisir, Donc telle qu'est la première mouture, il fonctionne parfaitement.
Néanmoins, je vais tester la seconde, car l'année prochaine, il me faudra effacer toute la colonne pour commencer une nouvelle année. Pour moi ma demande est résolue.
Merci encore pour le temps que tu as bien voulu me consacrer.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
La seconde version répond bien à un effacement de plage.

L'inconvénient de cette méthode par rapport à la première est qu'à chaque action sur la colonne Y on est obligé de traiter toute la colonne et non seulement la cellule cliquée.
En PJ le même fichier avec 300 Noms. En fait le calcul n'est pas trop long, et est même quasi "invisible". C'était le danger d'un tel traitement sur 300 lignes.
 

Fichiers joints

Luc MOUNY

XLDnaute Junior
Effectivement au niveau de la rapidité je ne vois pas une grande différence.
Merci encore pour ce beau travail.
à une autre fois peut-être ?
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas