Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

extraire des couples

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 !

sonskriverez

XLDnaute Occasionnel
Bonjour le Forum,

J'ai une feuille avec un nbr de lignes variables, je flager les lignes (en colonne C) dont le N° (colonne A) à forcément le coupe A et B (colonne B) ou B et A.

Un exemple devrait plus parlant, merci de votre aide
 

Pièces jointes

Re : extraire des couples

re

essaie

=SI(ESTVIDE(A2);SI(D1="ok";"ok";"no");SI(ET(ESTVIDE(A4);ESTVIDE(B4));SI(OU(B2&B3="AB";B2&B3="BA");"ok";"no");SI(ESTVIDE(A4);"no";SI(OU(B2&B3="AB";B2&B3="BA");"ok";"no"))))

brut de fonderie, cela doit se simplifier

remplacer le D1 par C1, j'ai testé en colonne D
 
Re : extraire des couples

Bonjour Eric S, le forum

C'est bon la troisième formule fonctionne dans l'exemple, je vais essayer dans la matinée sur le fichier (2350 lignes).
Si cela ne te dérange pas pourrais-tu m'expliquer la formule, c'est toujours bon de comprendre comment cela fonctionne.

Merci
 
Re : extraire des couples

Bonjour

l'imbrication des SI permet de passer en revue tous les cas :

=SI(ESTVIDE(A2);SI(C1="ok";"ok";"no");SI(ET(ESTVID E(A4);NON(ESTVIDE(B4)));"no";SI(OU(B2&B3="AB";B2&B 3="BA");"ok";"no")))

d'abord si en A la cellule est vide, je regarde l'état de la cellule en C de la ligen au dessus car c'est elle qui le sert de référence (1ère ligne du groupe si non vide en A)

je m'occupe ensuite des cellules avec A non vide

comme il me faut forcément 2 lignes par groupe (pour avoir une chance d'avoir un A et un B, je regarde 2 lignes en dessous si A est vide et B rempli (cela signifie que que je n'ai qu'une ligne dans mon groupe ou au moins trois donc je ne peux pas avoir un seul A et un seul B)

enfin je regarde si avec la ligne d'en dessous je peux recomposer AB ou BA

il reste peut-être un bug si sur 3 lignes consécutives A est renseigné

il faudrait donc peut-être modifier

=SI(ESTVIDE(A2);SI(C1="ok";"ok";"no");SI(ET(ESTVID E(A4);NON(ESTVIDE(B4)));"no";si(estvide(A3).SI(OU(B2&B3="AB";B2&B 3="BA");"ok";"no");"no")))

a tester
 
Re : extraire des couples

Bonjour

normalement une macro doit être simple à réaliseren écrivant des conditions comme

if then

else

endif

si besoin je peux regarder mais lundi seulement

pour balayer les lignes en macro il faudrait prendre en référence la colonne B pour déterminer la dernière ligne

for i=1 to derligne=range("B65536").end(xlup).row

next
 
Re : extraire des couples

Bonsoir
à essayer un emacro non optimisée qui reprend les "si" imbriqués

Sub essai()
'
For i = 2 To Range("B65536").End(xlUp).Row
'par défaut on écrira "no" sinon on forcera le "ok"
Cells(i, 3) = "no"
'=SI(ESTVIDE(A2);SI(C1="ok";"ok";"no")
If IsEmpty(Cells(i, 1)) Then
If Cells(i - 1, 3).Value = "ok" Then
Cells(i, 3) = "ok"
End If
Else
'SI(ET(ESTVIDE(A4);NON(ESTVIDE(B4)));"no"
If IsEmpty(Cells(i + 2, 1)) And Not IsEmpty(Cells(i + 2, 2)) Then
Else
'SI(ESTVIDE(A3); "no"
If Not IsEmpty(Cells(i + 1, 1)) Then
Else
'SI(OU( B2&B3="AB";B2&B3="BA");"ok";"no")
If Cells(i, 2).Value = "A" And Cells(i + 1, 2).Value = "B" Then Cells(i, 3) = "ok"
If Cells(i, 2).Value = "B" And Cells(i + 1, 2).Value = "A" Then Cells(i, 3) = "ok"
End If
End If
End If
Next
End Sub
 
- 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

Réponses
10
Affichages
306
Réponses
34
Affichages
916
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…