Plusieurs conditions à remplir du type « IF cell

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

  • Support pour question.xls
    44.5 KB · Affichages: 50

JULIANSAT

XLDnaute Junior
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

  • Support pour question N2.xls
    45 KB · Affichages: 44

Dranreb

XLDnaute Barbatruc
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
 

ROGER2327

XLDnaute Barbatruc
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
 

JULIANSAT

XLDnaute Junior
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
 

ROGER2327

XLDnaute Barbatruc
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
 

JULIANSAT

XLDnaute Junior
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

  • Support pour question N3.xls
    76.5 KB · Affichages: 44

Discussions similaires

Réponses
0
Affichages
154
Réponses
7
Affichages
534

Statistiques des forums

Discussions
312 249
Messages
2 086 604
Membres
103 260
dernier inscrit
NHOURRA