Autres Copie de ligne à partir d'un code

Moreno076

XLDnaute Impliqué
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.
 

Pièces jointes

  • Copie de Heures (1).xlsx
    210.2 KB · Affichages: 2

Lu76Fer

XLDnaute Occasionnel
Bonjour Moreno076,
Le classeur fourni ne peut par inclure de Macro, et pour faire une recopie des données, il faudra du code VBA et passer au format xlsm.
A chaque saisie d'un code sur la colonne C il faut recopier les données dans l'onglet SC (D à W) et donc ajouter une ligne dans ce tableau.
Si le code est saisi avant les données des colonnes suivantes rien ne sera copié ...
En cas d'erreur de saisie du code faut-il prévoir une méthode d'annulation ?

Si vous pouviez donner plus de précision ...
 

Moreno076

XLDnaute Impliqué
Bonsoir Lu76Fer. Dans chaque mois c'est là que la saisie se fait en colonne C. Ca va chercher ensuite les données dans l'onglet SC et donc recopier les D à W de cet onglet SC dans le mois où on rentre le code. Si le code n'existe pas il faut que j'ajoute la ligne dans l'onglet SC donc oui pk pas faire une alerte. Le probleme c'est que je n'ai pas excel juste google sheet...
 

Moreno076

XLDnaute Impliqué
Voilà les formules pour info et ça fonctionne !

=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
 

Lu76Fer

XLDnaute Occasionnel
Voilà les formules pour info et ça fonctionne !

=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
Bonjour moreno076,
Je n'avais pas du tout compris l'énoncé de départ pour le coup ...
C'est quoi map et lambda dans ces formules ?
 

Lu76Fer

XLDnaute Occasionnel
Pour reporter une valeur par formule il y a cette fonction sinon :
=SI(ESTNA(RECHERCHEV(C27;SC!$C$2:$W$1000; 2;FAUX));"";RECHERCHEV(C27;SC!$C$2:$W$1000; 2;FAUX))
J'ai pris la ligne 27 pour exemple dans l'onglet Janvier et la colonne 'Ligne' (2).
Mais bon je ne suis toujours pas sûr de comprendre l'objectif ...
 

Moreno076

XLDnaute Impliqué
Je te joins le fichier. Dans chaque mois dans la colonne service tu peux rentrer un code et ca va le chercher dans SC ca recopie la ligne. Pour différencier les doublons de code j'ai rajouté une petite lettre derrière.
 

Pièces jointes

  • Copie de Heures (1).xlsx
    332.3 KB · Affichages: 3

Lu76Fer

XLDnaute Occasionnel
Je te joins le fichier. Dans chaque mois dans la colonne service tu peux rentrer un code et ca va le chercher dans SC ca recopie la ligne. Pour différencier les doublons de code j'ai rajouté une petite lettre derrière.
Janvier ligne 10, cellule D10 (Ligne)
=SIERREUR(__xludf.DUMMYFUNCTION("map(C10:C40,lambda(service,IFERROR(query(SC!C2:W1048, ""select D where C is not null and C= '""&service&""' ""),"""")))");"B 1")
Cette fonction en cas d'erreur renvoie la valeur de Ligne du code K08d ? Bizarre ?
 

Discussions similaires

Statistiques des forums

Discussions
314 708
Messages
2 112 090
Membres
111 416
dernier inscrit
philipperoy83