Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copie conditionnelle de données

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Scoobidoo

XLDnaute Occasionnel
Bonjour à tous, bonjour le forum

Je fais à nouveau appel à vous pour me sortir du néant. Dans le fichier joint, je voudrais créer une macro qui recopie en colonne E et F, les données inscrites en K et L dés lors qu'en colonne B on retrouve la même valeur qu'en colonne H. Je ne suis pas certain d'être clair alors je joins un extrait de mon fichier. J'ai bien trouvé quelques pistes sur d'anciens messages mais n'ai pas réussi à les adapter à mon cas. Aussi, je vous remercie d'ores et déjà pour l'aide que vous serez en mesure de m'apporter. Bon après-midi à tous.

Scoobidoouuhh
 

Pièces jointes

Re : Copie conditionnelle de données

Bonjour,

Moi qui suit plutôt VBAiste je préfère laisser excel faire ce qu'il sait si bien accomplir. C'est plus simple.
fichier sans macro.

formules à tirer vers le bas.
Si tu veux conserver uniquement les valeurs, copie les cellules, Editon/collage spécial/valeurs.
Après avoir rangé les formules dans un endroit sûr pour la prochaine fois.

A+
 
Re : Copie conditionnelle de données

Bonjour Scoobidoo, salut Hasco 🙂

Donc maintenant la solution VBA (j'aime bien aussi les formules Hasco) :

Code:
Sub Recopie()
Dim cel As Range, ref As Range
[COLOR="Red"]Range("E:F").ClearContents[/COLOR]
For Each cel In Range("B1", Range("B65536").End(xlUp))
Set ref = Range("H:H").Find(cel, LookIn:=xlValues, LookAt:=xlWhole)
If Not ref Is Nothing Then
cel.Offset(, 3).Resize(, 2) = ref.Offset(, 3).Resize(, 2).Value
End If
Next
End Sub

Edit : ajouté effacement (en rouge) au cas où...

A+
 

Pièces jointes

Dernière édition:
Re : Copie conditionnelle de données

Bonjour Hasco bonjour Job

Vos solutions respectives sont tout aussi interessante l'une que l'autre pour moi qui ne suis un expert ni en formule ni en Vba. Je pense que c'est à l'usage que je me déciderai d'opter pour l'une ou l'autre mais je vais dans un premier temps les exploiter en parallèle avant de me décider. Un grand merci à vous deux. Bon après midi tout le monde.

Scoobidoouuhh
 
Re : Copie conditionnelle de données

Re,

Notez qu'en VBA la méthode Find est moins rapide que la méthode Match (EQUIV), donc la solution suivante est préférable :

Code:
Sub Recopie()
Dim cel As Range, plage As Range, lig As Variant
Range("E:F").ClearContents
Set plage = Range("H1", Range("H65536").End(xlUp)) 'pour la recherche
For Each cel In Range("B1", Range("B65536").End(xlUp))
[COLOR="Red"]lig = Application.Match(cel, plage, 0)[/COLOR]
If IsNumeric(lig) Then
cel.Offset(, 3).Resize(, 2) = Range("K" & lig).Resize(, 2).Value
End If
Next
End Sub

A+
 

Pièces jointes

Re : Copie conditionnelle de données

Bonjour à tous, rebonjour Job

Et bien je prends donc ce deuxième code pour mes essais et ensuite faire mon choix entre formule et Vba. Encore merci et à bientôt.

Scoobidoouuhh
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
701
Réponses
7
Affichages
990
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…