Microsoft 365 Copie de données d'une feuille à une autre

Nathan027

XLDnaute Junior
Bonjour à tous

De nouveau je sollicite votre aide
J'aimerai que dans le tableau de la feuille 2, soit copiées les données du tableau de la feuille 1 mais uniquement celle concernant le "service 1"
J'ai fait un tableau pour pouvoir le mettre ici sans mes données réelles.
J'espère que vous pourrez m'aider.

J'espère que je suis assez explicite

Cordialement
 

Pièces jointes

  • Test1.xlsx
    13.3 KB · Affichages: 3
Solution
Re,
Ou en formules ( plus complexe à mes yeux qu'une macro ) :
Code:
=SIERREUR(INDEX(Feuil1!$D$7:$D$1000;PETITE.VALEUR(SI(Feuil1!$D$7:$D$1000=$C$2;LIGNE(INDIRECT("1:"&LIGNES(Feuil1!$D$7:$D$1000))));LIGNES($1:1)));"")
A valider par Maj+Ctrl+Entrée sur les anciennes versions d'XL. Sur 365 c'est inutile.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nathan,
Un essai en PJ avec :
1- J'ai passé le tableau de feuil1 en tableau structuré, c'est plus simple à traiter.
2- Dans les feuilles de "réception" j'ai mis en C2 le service recherché
3- Et cette macro qui s'éxécute automatiquement lors de la sélection de la feuille :
VB:
Sub Worksheet_Activate()
T = [Tableau1]
Service = [C2]
ReDim T2(1 To UBound(T), 3)
j = 1
For i = 1 To UBound(T)
    If T(i, 1) = Service Then
        T2(j, 0) = T(i, 1): T2(j, 1) = T(i, 2): T2(j, 2) = T(i, 3)
        j = j + 1
    End If
Next i
[C7].Resize(UBound(T2, 1), UBound(T2, 2)) = T2
End Sub
 

Pièces jointes

  • Test1.xlsm
    25.3 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Ou en formules ( plus complexe à mes yeux qu'une macro ) :
Code:
=SIERREUR(INDEX(Feuil1!$D$7:$D$1000;PETITE.VALEUR(SI(Feuil1!$D$7:$D$1000=$C$2;LIGNE(INDIRECT("1:"&LIGNES(Feuil1!$D$7:$D$1000))));LIGNES($1:1)));"")
A valider par Maj+Ctrl+Entrée sur les anciennes versions d'XL. Sur 365 c'est inutile.
 

Pièces jointes

  • Test1 (V2).xlsx
    14.4 KB · Affichages: 1

Nathan027

XLDnaute Junior
Re,
Ou en formules ( plus complexe à mes yeux qu'une macro ) :
Code:
=SIERREUR(INDEX(Feuil1!$D$7:$D$1000;PETITE.VALEUR(SI(Feuil1!$D$7:$D$1000=$C$2;LIGNE(INDIRECT("1:"&LIGNES(Feuil1!$D$7:$D$1000))));LIGNES($1:1)));"")
A valider par Maj+Ctrl+Entrée sur les anciennes versions d'XL. Sur 365 c'est inutile.

Hello

Cette solution est plus "complexe" mais elle répond LARGEMENT à ma demande.
Je t'en remercie bcp

Tres bonne journée à toi.
 

Cousinhub

XLDnaute Barbatruc
Bonjour,
Bonjour Sylvanu
@Nathan027 , sinon, avec 365, tu peux aussi utiliser la fonction FILTRE
Et en convertissant la plage en Tableau Structuré, la formule donnerait :
Code:
=FILTRE(T_Data;T_Data[Service]="Service 1")
(Il faudra au préalable mettre le format horaire à la colonne D)
Bon appétit
 

Pièces jointes

  • Test1.xlsx
    16.3 KB · Affichages: 0
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin