Recopier des cellules en fonction d’un critère défini par un nombre

Résolu/Fermé
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 9 août 2021 à 17:15
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 11 août 2021 à 13:00
Bonjour à tous,

Je suis sous excel 2003, J’ai un fichier avec deux onglets A et B.

Je voudrais recopier des lignes du tableau A sur le tableau B, avec les liens pas trop difficile.

Mais,

Dans mon tableau A, il y a une case avec un numéro de 1 à 12 par exemple.
Je veux donc recopier chaque ligne du tableau A vers le tableau B autant de fois que le nombre défini dans la case numéro.

Comme ci-dessous

Onglet A

carotte navet poireau 1
carotte pomme de terre radis 4
citrouille concombre riz 2

Onglet B après traitement

carotte navet poireau
carotte pomme de terre radis
carotte pomme de terre radis
carotte pomme de terre radis
carotte pomme de terre radis
citrouille concombre riz
citrouille concombre riz

Merci pour votre aide.

Bien cordialement

12 réponses

ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
9 août 2021 à 20:11
Bonjour

adapter
https://www.cjoint.com/c/KHjsk7tlMVB

Cdlmnt
1
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
10 août 2021 à 18:05
E21 c'était juste pour l'avoir sous les yeux
colonne G c'est l'effectif cumulé des "x" précédents, j'en ai besoin pour récupérer la première ligne du "légume" à la fin de la formule
INDEX(B$6:B$19;EQUIV(NBVAL(J$6:J6);$G$6:$G$19;0)))

RQ. comme il reste à traiter l'erreur (ça va faire une formule à rallonge surtout sous excel 2003) et à recopier (sans erreur), je me suis demandé si ça ne serait pas plus simple de passer par une macro, si je le tente, je te l'envoies

Bonne fin de journée
1
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
10 août 2021 à 20:25
il faut conserver le petit bouton OK pour lancer la macro, je suppose.
Il faut quelque chose pour lancer la macro
Si tu préfères un raccourci-clavier Outils/macro/macros tu sélectionnes ok /option et tu affectes le raccourci

je suppose que pour marcher correctement, il ne faut pas que je change l'emplacement de mes colonnes ou le nom des onglets ?

Non, tu as les constantes en début de code qui définissent la configuration dans la feuille, tu peux les adapter à ton modèle sans avoir à toucher à la procedure ok()
et si je souhaite traiter plus de colonnes il faudra que j'arrive à comprendre ton code pour l'adapter
nbdes = 3 est le nombre de désignations, tu peux en ajouter entre Des3 et Nb de fois
Si c'est autre chose, tu dis, il faudra opérer
Effectivement avec une macro, lorsqu'on maitrise, cela semble beaucoup plus rapide et efficace.
ça dépend, pour ton pb, j'ai beaucoup moins souffert pour l'écrire, si tu tu penches sur le code, tu verras que c'est plutôt simple

Bonne soirée
1
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
Modifié le 10 août 2021 à 22:19
Je veux juste ajouter des colonnes, au total 9, et faire le traitement sur 86 lignes ou plutôt 86 reproductions.

Donc je passe nbdes de 3 à 9 et pour les 86 avant c'était 35 ?

la colonne que tu avais rajoutée pour comptabiliser les nombres (=SI(F8="";"";SOMME.SI(F$6:F7;"x";E$6:E7))) n'est plus nécessaire dans le tableau ?

et si mon tableau commence pas à la même ligne que sur l'exemple, il modifier quoi dans la macro ?

J'ai renommé mes onglets à l'identique, données et bilan. Il n'y a pas d'importance sur la position des onglets ?

Merci d'avance pour les réponses

Bien cordialement
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
11 août 2021 à 12:14
Bonjour

https://www.cjoint.com/c/KHlknii4fmB
Avec quelques explications

Cdlmnt
1
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
11 août 2021 à 13:00
Bonjour,

encore merci, toutes la procédure marche superbement bien.
cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
10 août 2021 à 12:50
Bonjour,

Merci à ccm81 pour la solution.

j'ai tenté de mettre en œuvre mais tous ne fonctionne pas correctement, et je n'arrive pas à comprendre pourquoi !

En plus si l'on mais 1 dans la première ligne pour la quantité à reproduire, les fonctions ne fonctionnent plus.

Et pour finir, si possible, je recherche comment limiter à 35 les copies, donc j'ai ajouter une colonne, pour sélectionner uniquement celle à reproduire afin de limiter à 35 lignes .
Comment mettre en pratique cette contrainte ?

voici mon fichier mis à jour https://www.cjoint.com/c/KHkkOtoSme6

Bien cordialement
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
10 août 2021 à 14:33
Bonjour

pour la première question
https://www.cjoint.com/c/KHkmFQ0wIpB

Pour la deuxième, il faut réfléchir ...

Cdlmnt
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
Modifié le 10 août 2021 à 15:42
Re bonjour,

Merci cette réponse rapide,
si j'ai bien compris c'était :
le "hh" dans la deuxième ligne et la valeur du No_index_col qui n'était pas le bon.
Ok donc celui-ci est compté en partant de la droite ?
ça commence à prendre forme, merci encore.
le obligatoire , qui a été rajouter c'est un affirmation ?
j'avais mis les numéros ainsi que les lettres en haut du tableau pour essayer de mieux comprendre les formules.

bien cordialement
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
Modifié le 10 août 2021 à 17:05
Pour la deuxième, à compléter !
https://www.cjoint.com/c/KHkpelBl8qB

Cdlmnt
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
10 août 2021 à 17:22
Merci pour la participation très active,

je vais regarder à tête reposée, cette deuxième réponse.
j'ai pas compris le fonctionnement de la colonne G et s'il faut conserver la cellule E21 qui me semble identique à celle que j'ai mis en F1 ?

je suis en train d'essayer de transposer le début pour avoir les résultats sur un autre onglet, mais je galère. je vais faire une pose et reprendre plus tard. Pas facile à déplacer toutes les formule et à remettre les bons liens.

Merci encore

Bien cordialement
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
10 août 2021 à 18:19
j'ai pas compris pour l'erreur à traiter, mais en avançant peut-être que je comprendrais.

Effectivement , je travail sous excel 2003, la retraite ne rapporte pas beaucoup donc je conserve m'a vielle version.

une question : si une fonction par macro marche sur excel 2003, peut-elle fonctionner aussi sur d'autres versions beaucoup plus récentes ?

Bonne fin de journée aussi et un grand merci.
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
Modifié le 10 août 2021 à 19:01

une question : si une fonction par macro marche sur excel 2003, peut-elle fonctionner aussi sur d'autres versions beaucoup plus récentes ?

oui ça sera moins douloureux
https://www.cjoint.com/c/KHkqMfYoFLB
Le résultat est dans la feuille bilan
Alt-F11 pour accéder au code (dans Module 1)

Cdlmnt
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
10 août 2021 à 19:49
Un grand merci pour avoir consacré beaucoup de temps à mes questions.

je n'ai pas encore fini de mettre en œuvre tes formules, que tu arrives comme une fusée avec une solution qui décoiffe.

il faut conserver le petit bouton OK pour lancer la macro, je suppose.

je suppose que pour marcher correctement, il ne faut pas que je change l'emplacement de mes colonne ou le nom des onglets ?

et si je souhaite traiter plus de colonnes il faudra que j'arrive à comprendre ton code pour l'adapter !

Effectivement avec une macro, lorsqu'on maitrise, cela semble beaucoup plus rapide et efficace.

Félicitation pour le résultat sans appel.
0