Plusieurs conditions à remplir du type « IF cell

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 !

JULIANSAT

XLDnaute Junior
Bonjour à tous.

Je vais essayer d’être clair avec pour support le fichier Excel joint.

En feuille « Import » je récupère des données de la CAO.

Sur les 4 feuilles suivantes je souhaite récupérer des listes en fct de certaines conditions :

-Feuille « ListePlan » : Récupérer les lignes qui répondent à :
o Une valeur existe dans la cellule "FormatPlan"
o Une valeur existe dans la cellule « N°Plan »
o Cellule vide pour « Stock » (pas de valeur « OUI »)

- Feuille « Achat » : Récupérer les lignes qui répondent à :
o La valeur "achat" existe dans la cellule « Article »
o Cellule vide pour « Stock » (pas de valeur « OUI »)

- Feuille « ERP » : Récupérer les lignes qui répondent à :
o Valeur "oui" pour cellule "Stock"

- Feuille « PoidsParFamille » : Synthèse des poids / famille matière avec les conditions suivantes :
o Une valeur existe dans la cellule "Poids"
o Une valeur existe dans la cellule " N°Plan "
o Une valeur existe dans la cellule "FamilleMatière"
o Cellule vide pour « Stock » (pas de valeur « OUI »)

Comment fait on pour indiquer qu’il y a plusieurs conditions à remplir du type « IF cell » ???

Exemple : If Cell.Offset(0, 1) <> "" Then ET If Cell.Offset(0, 2) = "achat" Then ET .......


Merci bcp

Cordialement

Julian



Macro en conctruction (TransfertListePlan en construction)

Sub Transfert()


Dim Cell As Range
Sheets("ListePlan").Range("A20:K1000").Clear
With Sheets("Import")
For Each Cell In .Range("B5:B" & .Range("B65536").End(xlUp).Row)
If Cell.Offset(0, 1) <> "" Then
If Cell.Offset(0, 2) = "achat"
Cell.EntireRow.Copy Destination:=Sheets("ListePlan").Range("A" & Sheets("ListePlan").Range("A65536").End(xlUp).Row + 1)
End If
Next
End With
End Sub
..............
 

Pièces jointes

Re : Plusieurs conditions à remplir du type « IF cell

Bonjour à tous.

Dranreb, j'ai ajouté des "And" ( If Cell.Offset(0, 1) <> "" And Cell.Offset(0, 2) <> "" And Cell.Offset(0, 4) = "" Then)
dans la première macro pour export des lignes "ListePlan".
J'obtiens un résultat pas bon (voir feuille "ListePlan" , résultat en ligne 20. Je devrais obtenir les lignes 5 à 8 .
D'ou vient le pb ?
Merci bcp.
Julian
 

Pièces jointes

Re : Plusieurs conditions à remplir du type « IF cell

Bonsoir.
Le test marche: 3 copies sont effectuées. Mais seule la dernière reste car elles sont toutes collées au même endroit parce que rien n'est jamais mis dans la colonne A et donc le Range("A65536").End(xlUp).Row + 1 est toujours le même.
Calculez le donc plutôt dans une variable L As Long au début, incrémentez la avant chaque Cell.EntireRow.Copy Destination:=Sheets("ListePlan").Rows(L)
Cordialement
 
Re : Plusieurs conditions à remplir du type « IF cell

Bonsoir à tous


VB:
Sub Transfert()
Dim Cell As Range
    Sheets("ListePlan").Range("A20:K1000").Clear
    With Sheets("Import")
        For Each Cell In .Range("B5:B" & .Range("B65536").End(xlUp).Row)
            If Cell.Offset(0, 0) <> "" And Cell.Offset(0, 1) <> "" And Cell.Offset(0, 3) = "" Then
                Cell.EntireRow.Copy Destination:=Sheets("ListePlan").Range("B" & Sheets("ListePlan").Range("B65536").End(xlUp).Row + 1).Offset(0, -1)
            End If
        Next
        End With
End Sub
fonctionne à condition que Sheets("ListePlan").Range("B19") ne soit pas vide.​


ROGER2327
#5588


Lundi 9 Pédale 139 (Saint Remezy, évêque in partibus - fête Suprême Quarte)
13 Ventôse An CCXX, 9,6422h - fumeterre
2012-W09-6T23:08:29Z
 
Re : Plusieurs conditions à remplir du type « IF cell

Bonjour à tous.

Merci beaucoup DranReb et Roger.

Roger cela fonctionne très bien.
J'ai mis un espace en B19 (stp pourquoi cette valeur ne doit pas être vide ?)

Je vais travailler sur les 2 autres tests.

Bon dimanche

Julian
 
Re : Plusieurs conditions à remplir du type « IF cell

Re...


(...)
J'ai mis un espace en B19 (stp pourquoi cette valeur ne doit pas être vide ?)
(...)
Parce que si B19 est vide ainsi que toute la colonne B en dessous,
Code:
Destination:=Sheets("ListePlan").Range("B" & Sheets("ListePlan").Range("B65536").End(xlUp).Row + 1)
renverra à une cellule de la colonne B au dessus de B19. Par conséquent les données collectées se trouveront plus haut dans la feuille que ce que vous souhaitez. (Essayez sur une copie du classeur pour voir ce qui se passe si B19 est vide.)​


ROGER2327
#5589


Mardi 10 Pédale 139 (Nativité de Saint Tancrède, jeune homme - fête Suprême Quarte)
14 Ventôse An CCXX, 7,5610h - vélar
2012-W09-7T18:08:47Z
 
Re : Plusieurs conditions à remplir du type « IF cell

Bonsoir

Désolé pour vous déranger de nouveau.

En feuille 5 "PoidsParFamille" je réalise une synthèse des poids par famille de matière (voir fichier excel).

la macro : Sub TransfertListePoidsParFamille() fonctionne, hormis que je souhaite que la synthèse débute à partir de la cellule A20 et non A5.

Autre question, je souhaite que les cellules comportent des bordures.

Merci bcp et bonne semaine.

Julian
 

Pièces jointes

- 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
2
Affichages
153
Réponses
4
Affichages
243
Réponses
0
Affichages
459
Réponses
7
Affichages
968
Retour