XL 2016 Copier une cellule de la ligne selon un critère

Skaph

XLDnaute Nouveau
Bonjour à tous,

Je me permet de poster un message sur le forum suite à de nombreuses recherches, (j'ai trouvé des choses mais je n'arrive pas à les adapter à mon classeur), je ne suis pas très forte en VBA, mais je souhaite faire un petit outil qui peut me permettre de gagner du temps.
Je m'explique :
Mon classeur contient les compétences maîtrisée ou non des techniciens sur plusieurs produits.
Chaque produit a donc sa feuille avec les différentes compétences, donc il contient en gros 3 colonnes (une avec la compétences, une je ne maîtrise pas, et une je maîtrise). Lorsqu'une compétences est maîtrisée ou non, il y a un "X" dans la colonne correspondante.
L'idée est d'extraire la valeur de la cellule ou se situe la compétences qui contiennent X dans je ne maîtrise pas (exemple : si la compétence "réaliser un test" n'est pas maîtrisée, juste extraire "réaliser un test" sur un autre page.

Je joins un fichier exemple pour vous éclairer car je pense ne pas être claire dans mes explications.

Je vous souhaite une bonne journée et je vous remercie déjà d'avance.
 

Pièces jointes

  • exemple.xlsx
    13 KB · Affichages: 6

JHA

XLDnaute Barbatruc
Bonjour à tous,

Un essai par formules
VB:
=SIERREUR(DECALER(INDIRECT($A10&"!A1");PETITE.VALEUR(SI(INDIRECT($A10&"!C1:C100")="X";LIGNE(INDIRECT($A10&"!C1:C100"))-1);COLONNE(A:A)););"")

JHA
 

Pièces jointes

  • exemple (5).xlsx
    15.2 KB · Affichages: 8

Skaph

XLDnaute Nouveau
Merci de m'avoir apporter une solution, as-tu une solution en VBA plutôt ?
J'ai trouvé un code qui est le suivant et que j'ai su adapter :
Sub FiltreDeg()

Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long

Sheets("Start").Activate ' feuille de destination

Col = "F" ' colonne de la donnée non vide à tester
NumLig = 76
With Sheets("Degroupage") ' feuille source
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 2 To NbrLig
If .Cells(Lig, Col).Value = "X" Then
.Range("D" & Lig & ":E" & Lig).Copy
NumLig = NumLig + 1
Cells(NumLig, 2).Select
ActiveSheet.Paste
End If
Next
End With

End Sub

Cependant, j'arrive à extraire seulement les lignes d'une page, même si je change la feuille source.
 

Skaph

XLDnaute Nouveau
Bonjour à tous,

Un essai par formules
VB:
=SIERREUR(DECALER(INDIRECT($A10&"!A1");PETITE.VALEUR(SI(INDIRECT($A10&"!C1:C100")="X";LIGNE(INDIRECT($A10&"!C1:C100"))-1);COLONNE(A:A)););"")

JHA


Bonjour,
J'ai essayé d'appliquer ça à mon fichier, ça fonctionne pour le premier, la valeur est bien reportée, mais quand j'étire les cases, rien ne se passe, il n'y a aucune autre valeur copier.

Pouvez-vous me dire quelle est l'erreur ?

Merci d'avance
 

Pièces jointes

  • excel.PNG
    excel.PNG
    48.4 KB · Affichages: 11

Skaph

XLDnaute Nouveau
Bonjour à tous,

C'est une formule matricielle à valider par Ctrl+Maj+Entree, après validation, tu dois avoir des accolades de chaque côté de la formule.
ensuite copier vers la droite

JHA


Pour la validation de la formule, j'ai bien les {} qui apparaissent, cependant maintenant quand je tire vers la droite, c'est des 0 qui s'affichent..
 

Pièces jointes

  • excel2.PNG
    excel2.PNG
    42.7 KB · Affichages: 11

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 107
dernier inscrit
cdel