Copie de ligne à partir d'un code

Bonjour à tous,

Dans le fichier ci-joint il y a plusieurs onglets avec les mois de l'année.

Je souhaiterais qu'en rentrant un code dans la colonne C de chaque mois, ca recopie la ligne correspondant du code qui se trouve dans l'onglet SC (D à W). Juste copie des valeurs.

Le fichier est sous excel dans ce post mais c'est google sheet.

Merci pour votre aide.

Bonjour,

Réalisable à l'aide de Query :

=query(source des donnée ; "select A, B, C (à adapter suivant les colonnes que vous voulez importer where C = 'code 1' ")

Il est aussi possible de selectionner les données par rapport à un code présent dans dans une cellule, imaginons en A1 :

=query(source des donnée ; "select A, B, C where C = '"&A1&"' ")

Bonjour Pierre,

En saisissant un Code dans la colonne C de n'importe quel mois, j'aurais besoin que ca recopie DFGHIKMNOPRTUVW ou de D jusqu'à W si ca n'efface pas les formules.

Désolé mais je ne suis pas du tout expert. Pourriez-vous me modifier le fichier pour faire un essai ?

Merci à vous.

En gros, dans votre onglet SC, quand vous mettez en colonne C un numéro de service, ça affiche toutes les lignes où se trouve le numéro de service dans chaque onglet (mois) ?

Non c'est le contraire. La base de données des codes de la colonne C se trouveront dans l'onglet SC. C'est dans les mois que ça doit se recopier. Cordialement

Ok, donc chaque mois, en colonne C lorsqu'on indique un numéro de service ça importe (de l'onglet SC) les données des colonnes D à W ?

Si oui, en D10 de chaque onglet, à tester :

=map(C10:C;lambda(service;query('SC'!C2:W; "select * where C = '"&service&"' ")

Oui c'est ça Pierre. J'ai mis la formule en fevrier et janvier en D10. Et mis ensuite un code existant en SC dans le colonne C10 mais ca met #ref.

Bonjour,

À mettre en D10 + attention il faut bien tout effacer jusqu'en W :

=map(C10:C1000;lambda(service;SIERREUR(query(SC!C2:W1000; "select D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W where C is not null and C= '"&service&"' ");"")))

Bonjour Pierre,

J'ai remis la formule en D10 après avoir tout effacé. J'ai ensuite mis K05 dans C10 et rien ne se passe. Est-ce du que ce soit google sheet? Merci

capture d ecran 2024 02 14 102424

Il faut effacer les lignes en dessous également la formule va se développer grâce à MAP + LAMBDA...

J'ai effacé tout de C à W puis j'ai mis formule en D10 puis j'ai mis K05. Ca ne fonctionne pas.

Je vais abandonner c'est trop compliqué pour moi.

Merci quand même.

Bonjour,

Il suffit de lire le message d'erreur :

screenshot 2024 02 15 08 46 46

Si on va voir ce qu'il y a en V40 :

screenshot 2024 02 15 08 46 51

Et qu'on le supprime :

screenshot 2024 02 15 08 47 04

Ca fonctionne.

Si vous souhaitez conserver la donnée qui en en V40, il suffit de limiter la plage sur laquelle la formule doit s'appliquer : =map(C10:C1000

Votre tableau semble s’arrêter en ligne 38, donc en modifiant : =map(C10:C38 V40 n'est plus gênant, attention toutefois si la taille de votre tableau est amenée à changer, il faudra modifier ceci.

screenshot 2024 02 15 08 50 55

Bonjour Pierre, effectivement ça fonctionne avec votre explication, j'ai ajusté la formule à chaque onglet et ça fonctionne !. J'ai du juste modifier le format de certaines colonnes selon que ce soit nombre ou texte.

Par contre j'ai besoin de modifier les colonnes E L S chaque jour, et du coup lorsque je rentre le numéro de véhicule ça efface la ligne.

J'ai essayé de modifier la formule en supprimant E L S

=map(C10:C37;lambda(service;IFERROR(query(SC!C2:W1000; "select D,F,G,H,I,J,K,M,N,O,P,Q,R,T,U,V,W where C is not null and C= '"&service&"' ");""))) mais ça fait n'importe quoi.

De manière plus générale, est-il possible de pouvoir modifier chaque cellule pré-rempli ? Si pas possible ce serait bien de pouvoir au moins rajouter librement texte pour les colonnes E L S.

Un grand merci déjà pour vos explications et la grande avancée.

Je ne vois que 2 solutions :

- couper la formule : D puis de F à K, puis de M à R, puis de T à W

- un script

Peut être que @Filoche a des idées, il est + calé que moi sur ces sujets.

Couper la formule serait bien et ça donnerait quoi du coup??? Merci

Je n'ai pas testé mais quelque chose du genre :

=map(C10:C38;lambda(service;SIERREUR(query(SC!C2:W1000; "select D where C is not null and C= '"&service&"' ");""))) > en D10

=map(C10:C38;lambda(service;SIERREUR(query(SC!C2:W1000; "select F,G,H,I,J,K where C is not null and C= '"&service&"' ");""))) > en F10

=map(C10:C38;lambda(service;SIERREUR(query(SC!C2:W1000; "select M,N,O,P,Q,R where C is not null and C= '"&service&"' ");""))) > en M10

=map(C10:C38;lambda(service;SIERREUR(query(SC!C2:W1000; "select T,U,V,W where C is not null and C= '"&service&"' ");""))) > en T10

Un grand merci Pierre, tout fonctionne désormais, j'ai adapté chaque onglet après avoir rentré les formules.

Un grand merci je vais pouvoir alimenter progressivement ma base de données.

Voici une autre solution qu'on m'a proposé et qui est plus simple apparemment.

Cordialement

Rechercher des sujets similaires à "copie ligne partir code"