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

  • Initiateur de la discussion Initiateur de la discussion Nathan027
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
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

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

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.
 
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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour