LibreOffice Calc : transformer le contenu d'une cellule en plage

Résolu/Fermé
LA_440 Messages postés 11 Date d'inscription samedi 12 juin 2021 Statut Membre Dernière intervention 29 juin 2021 - 12 juin 2021 à 00:26
Raymond PENTIER Messages postés 58388 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 avril 2024 - 13 juin 2021 à 02:20
Bonjour,

J'essaie de trouver une formule qui permette de réaliser l'action suivante :
Si "Préparateur 1" = "Anna", copier "Anna" dans chaque cellule de la plage D2:D13.
La difficulté réside dans le fait que la cellule B5, qui sert à indiquer dans quelle plage il faut coller les données, est variable. Elle résulte d'un calcul. Comment procéder, dans ce cas ?

Merci d'avance pour votre aide.

A voir également:

12 réponses

Raymond PENTIER Messages postés 58388 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 avril 2024 17 089
12 juin 2021 à 00:38
Bonjour.

Ou je n'ai pas compris, ou tu t'es mal expliqué ...
Mais il suffit d'écrire dans les cellules de la plage D2:D13 la formule
=$B$9
!

Je pense n'avoir rien compris, étant donné ta précision :
" la cellule B5, qui sert à indiquer dans quelle plage il faut coller les données " ...
Je ne vois en effet aucun rapport entre cette cellule et cette plage !
0
LA_440 Messages postés 11 Date d'inscription samedi 12 juin 2021 Statut Membre Dernière intervention 29 juin 2021
Modifié le 12 juin 2021 à 01:08
Tout d'abord, merci pour ta réponse.

Alors je reformule :

La cellule B3 indique la quantité de commandes que chaque préparateur doit gérer.
Les cellules B5 et suivantes précisent comment les commandes doivent être réparties entre les préparateurs.
B5 contient la formule suivante : ="D2:D"&(B3+1)

Le but recherché est que lorsque le résultat de la colonne B5 s'affiche, le nom du préparateur 1 (en l'occurrence Anna) s'inscrive automatiquement dans toutes les cellules que B5 indique. Dans notre exemple, B5 indique D2:D13, mais elle pourrait tout aussi bien afficher un autre résultat, puisque ce dernier dépend du nombre de commandes à gérer et du nombre de préparateurs présents.
0
Raymond PENTIER Messages postés 58388 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 avril 2024 17 089
12 juin 2021 à 01:16
Ah !
Tu comprends pourquoi nous demandons systématiquement aux demandeurs de joindre leur fichier ?
Cela nous permet de voir de quoi il s'agit, la structure du tableau et la logique des formules.
Une simple image inerte ne permet pas cette analyse.
 1) Tu vas dans https://www.cjoint.com/ 
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
Il existe aussi :
1) https://mon-partage.fr/
2) https://www.transfernow.net/

Mais d'ores et déjà, je te préviens qu'il faut t'attendre à une solution par macro ... Pratiques-tu VBA ?
0
LA_440 Messages postés 11 Date d'inscription samedi 12 juin 2021 Statut Membre Dernière intervention 29 juin 2021
12 juin 2021 à 01:37
J'avais l'intention de joindre le fichier Calc à mon premier message, mais étant dans l'ignorance la plus totale de la façon d'y parvenir, j'avais dû me résoudre à n'envoyer qu'une image inerte. ;-)
Merci beaucoup pour l'explication, très claire.

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

Eh bien non, je ne pratique pas VBA ! Je nourrissais l'espoir qu'une "simple" formule fît l'affaire. :-)
0

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

Posez votre question
Raymond PENTIER Messages postés 58388 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 avril 2024 17 089
12 juin 2021 à 02:42
Pourrais-tu indiquer le nombre maximum de préparateurs disponibles, et si possible le nombre maximum de commandes à exécuter ?
Première suggestion : en B3 mettre la formule =ENT(B1/B2) pour le cas où B1 n'est pas un multiple de B2 ...
0
Bonjour,
Une suggestion, si j'ai bien compris.
Fait sur Excel xls, j'espère que vous pourrez l'ouvrir.
Cordialement.
https://cjoint.com/c/KFmeXy7vjPD
0
Retiré. Je comprends de moins en moins la logique et la finalité de ce tableau...
0
yclik Messages postés 3588 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 18 avril 2024 1 478
12 juin 2021 à 08:45
Bonjour
Une piste
en D2
=SI(LIGNE()<$B$3+1;INDIRECT("B"&9);INDIRECT("B"&10))

ne fonctionne que pour deux préparateurs si plus enchaîner les conditions
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
Modifié le 12 juin 2021 à 12:38
Bonjour à tous,

avec un nombre quelconque de préparateurs : https://www.cjoint.com/c/KFmkI13Jf0D

Mais c'est vraiment utile de lister les commandes ?
Indiquer juste leur n° pour chaque préparateur 1-12, puis 13-24 etc pourrait être suffisant non ?
eric

0
Raymond PENTIER Messages postés 58388 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 avril 2024 17 089
Modifié le 12 juin 2021 à 16:04
Bonjour LA_440.

J'aurais tendance à partager les réactions d'Eugène et d'Eric, que je salue amicalement.

Toutefois, comme je me suis battu pour trouver une solution, pas très élégante il est vrai, mais qui fonctionne sans macro, je la soumets quand même. Je pense d'ailleurs que nos amis pourront facilement l'améliorer, par exemple avec la fonction DECALER (que je ne manipule pas avec assez de dextérité) ...

Dans l'attente des réponses à mes questions du post #5, j'ai travaillé avec 47 commandes (volontairement un nombre premier) et 4 préparateurs.
  • Je calcule en B3 la quantité de commandes par préparateur =ARRONDI.SUP(B1/B2)
  • J'utilise la colonne C pour déterminer les limites de plage, que j'affiche ensuite en colonne B grâce à la formule =SI(C4>=$B$1;"";"D" &C5-$B$3+1& ":D"&MIN($B$1;C5))
  • Je peux alors trouver en colonne D le nom du préparateur pour chaque commande :

=SI(LIGNE()<=$C$5;B$17; SI(LIGNE()<=$C$6;B$18; SI(LIGNE()<=$C$7;B$19; SI(LIGNE()<=$C$8;B$20; B$21))))

https://www.cjoint.com/c/KFmobqC3DzQ
0
LA_440 Messages postés 11 Date d'inscription samedi 12 juin 2021 Statut Membre Dernière intervention 29 juin 2021
12 juin 2021 à 20:31
Bonjour à tous, et merci, vraiment, pour votre implication !

Un immense merci à Raymond qui a trouvé une solution que j'oserai qualifier de grandiose ! Elle répond parfaitement à mes attentes. Et tout ça en moins de 16 heures !

Très astucieux le coup de la colonne C qui détermine les limites de plage ! Cette petite colonne rend inutile (et c'est très bien) tout le bloc A5:B14, qui n'avait pas d'autre rôle que d'énoncer la plage à sélectionner en colonne D pour chaque préparateur.

Le titre du sujet n'est donc plus adapté. Je voulais le rebaptiser "Remplir dynamiquement un tableau sans macro", mais il semble que je n'aie pas la possibilité de le faire...

Dans la mesure où le fichier que j'ai mis en ligne n'est qu'un fragment du vrai tableau (qui doit rester confidentiel), je comprends que la finalité de mon extrait de tableau ait pu vous paraître nébuleuse. Je butais depuis des jours sur la façon de remplir automatiquement le nom du préparateur en regard de chaque commande. Dans le vrai tableau, les commandes ont des numéros à 9 ou 10 chiffres, et elles ne sont pas forcément traitées par ordre numérique croissant (certains critères définissent un ordre de priorité), d'où la nécessaire présence de la colonne D.

Encore merci à tous !
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
12 juin 2021 à 22:02
Il me semble que ma proposition est plus simple mais bon, tu ne peux regarder toutes les réponses sans doute...
0
LA_440 Messages postés 11 Date d'inscription samedi 12 juin 2021 Statut Membre Dernière intervention 29 juin 2021
12 juin 2021 à 22:54
Je viens d'examiner chacune de vos propositions.

Effectivement Eric, ta solution fonctionne, lorsqu'on a restauré 2 paramètres essentiels : le nb de préparateurs en B2 et la division en B3.
La numérotation automatique des commandes était également une bonne idée, mais je n'y aurai pas recours, car les numéros de commande, dans le vrai tableau, sont importés d'un logiciel externe.

La "piste" proposée par yclik est en fait une "solution" qui fonctionne aussi très bien ! Il faut simplement modifier le signe "<" en "<=", puis comme il l'évoquait lui-même, étendre la formule à d'autres préparateurs.

La solution de Raymond avait l'avantage, disons, d'être "clés en main". :-)
0
Raymond PENTIER Messages postés 58388 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 avril 2024 17 089
13 juin 2021 à 02:20
Merci, LA_440.

Très heureux d'avoir pu trouver une solution qui te convienne.
Il est clair qu'un problème pas très évident, comme le tien, entraîne forcément plusieurs approches, parfois très différentes. Le choix entre ces diverses propositions dépend d'éléments humains (donc subjectifs) de la part du demandeur, autant que d'éléments techniques (donc objectifs) comme l'interférence avec un logiciel externe.
Alors conserve précieusement les autres pistes et propositions qui t'ont été faites ; tu ne sais pas si elles ne te seront pas utiles un jour ou l'autre !

Très cordialement.
0