Copier une cellule dans une autre feuille si elle contient un mot spécifique

Signaler
-
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
-
Bonjour,

J'ai une feuille 1 avec environ 10000 lignes, et je voudrais copier les cellules A si la cellule B contient le "Oui" et les coller dans la colonne B de la feuille 2.
J'ai essayé de faire simplement avec la fonction Filtre mais cela ne marche pas.
J'aurai besoin de votre aide svp

Merci d'avance

Configuration: Windows / Chrome 91.0.4472.124

13 réponses

Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Une solution, cette formule sur la feuille 2 en colonne B
=SI(Feuil1!B1="oui";Feuil1!A1;"")


Je veux copier coller à la suite.
Or entre deux oui, il peut y avoir 200 lignes d’écart.

J’imaginais plus une macro qui regarderai chaque cellule et copie/collerai sur la feuille 2 à la suite.
Messages postés
54294
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
26 juillet 2021
16 278
Bonjour.

Pourtant, c'est bien le filtre que j'utiliserais si j'avais à faire ce travail !

"mais cela ne marche pas" -> qu'est-ce qui ne marche donc pas ?

Comme tu n'as pas pensé à joindre de classeur-exemple, j'imagine que si en feuille 1 tu as "ananas" en A2, "pomme" en A3, "poire" en A4 et "kiwi" en A5, ainsi que "OUI" en B3 et B5, tu voudrais que dans la feuille 2, vierge, apparaissent "pomme" en B2 et "kiwi" en B3 ...
C'est bien ça ?
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Eh bien essayez de réaliser une macro et si cela ne vas pas vous mettez le fichier sur https://www.cjoint.com/ !
(amicale salut Raymond)
Messages postés
2512
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
26 juillet 2021
1 154
Bonsoir
une piste


mis sur la même feuille pour compréhension
en C2 qui serait la 1ere feuille
=SI(B2="Oui";LIGNE();"")

En E2 qui serait la 2ème feuille
=SI(ESTERREUR(PETITE.VALEUR($C$2:$C$10;LIGNE()-1));"";INDEX($A$1:$A$10;PETITE.VALEUR($C$2:$C$10;LIGNE()-1);1))


en E2 sans traitement erreur
=INDEX($A$1:$A$10;PETITE.VALEUR($C$2:$C$10;LIGNE()-1);1)
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Eh bien si une macro vous intéresse !
Sub CopierSiColler()
Set modic = CreateObject("Scripting.Dictionary")
n = Cells(Columns(1).Rows.Count, 1).End(xlUp).Row
For i = 2 To n
If Cells(i, 2) = "Oui" Then
cel = Cells(i, 1).Value
modic.Add cel, cel
End If
Next i
Sheets("Feuil2").[b2].Resize(modic.Count).ClearContents
Sheets("Feuil2").[b2].Resize(modic.Count) = Application.Transpose(modic.items)
End Sub
Je ne peux pas vous joindre le fichier réel, mais voici un exemple

https://www.cjoint.com/c/KGmg7J0gOsE

Si j'utilise la fonction filtre:
=FILTRE(Feuil1!B:B;Feuil1!C:C="Oui")


Je recois #REF comme erreur.

Pour éviter cette erreur je veux donc utiliser une macro qui parcourt toutes les cellules de la colonne C, si il y a un "Oui", il copie la cellule B de cette meme ligne, et colle dans la colonne B de la feuille "Interface".

Dans votre code "Le Pingou", la varibale modic n'est pas défini, donc le code ne fonctionne pas
Messages postés
16441
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 juillet 2021
880
bonjour,
Pour faire fonctionner le code, Il faut probablement ajouter 'microsoft scripting runtime" dans les références du projet.
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166 >
Messages postés
16441
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 juillet 2021

Bonjour yg_be,
Eh bien non il n'est pas nécessaire d'ajouter ''microsoft scripting runtime" dans les références [VBAProject].
Salutations.
Le Pingou
Messages postés
16441
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 juillet 2021
880 >
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021

peux-être a-t-il activé l'option qui oblige à déclarer les variables?
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166 >
Messages postés
16441
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 juillet 2021

Bonjour,
On en saura plus s'il veux bien donner une explication autre que ne fonctionne pas. C'est comme les formules de politesses aussi nombreuses.
Salutations.
Le Pingou
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour empereurtilleul,
Vous dites : Dans votre code "Le Pingou", la variabale [modic] n'est pas défini, donc le code ne fonctionne pas
Alors ma réponse est la suivante, il est certain que vous n’avez pas compris à quoi sert cette variable. C'est cette variable qui reçoit les valeurs correctes selon le critère.
Et en plus vous mettez un fichier à disposition et il n'y a même pas le code que j'ai proposée…c'est très fort sympathique. Merci.


J'attend votre réponse pour la suite!

Salutations.
Le Pingou

Le message d’erreur de votre code le pingou est « variable non défini » sur toutes vos variables que ce soit modic, CEL ou i.
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Je transmet toujours un code qui fonctionne parfaitement.
Je suis presque certain que vous avez déclaré vos codes avec [OPTION EXPLICIT] .....
Vous faite une copie de la feuille avec le message d'erreur ainsi que celle de la feuille VBA que vous coller sur le prochain poste.
Merci j'attend!

Salutations.
Le Pingou

Et bien celui la ne marche pas!
https://www.cjoint.com/c/KGniGcIiYlE

Voici le nouveau message d'erreur;
"Erreur definie par l'application ou par l'objet"
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Cela ne m'étonne pas du tout, j'avais répondu à votre demande du poste 1 (J'ai une feuille 1 avec environ 10000 lignes, et je voudrais copier les cellules A si la cellule B contient le "Oui" et les coller dans la colonne B de la feuille 2. ) donc ce n'est pas la même disposition dans votre fichier (nom de feuille différent ainsi que cellule différente.
C'est un peu comme la politesse, je ne suis pas dans le même bureau donc on tape à la porte avant d'entrée.

Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Votre fichier: https://mon-partage.fr/f/nsI3LJzL/