Transfert lignes d'une feuille sous conditions  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

Transfert lignes d'une feuille sous conditions

Messagepar zyglur » 04 Fév 2012, 00:22

Bonjour,

Je voudrais tranférer des lignes d'une feuille vers une autre quand ses lignes remplissent certaines conditions.
Il faut que mon article ai une quantité >0 ET que l'une des valeurs au moins des colonnes P,T,X ou AB soit supérieure à 0.1%.
Dans ce cas seulement je voudrais recopier que certaines cellules de la lignes sur une autre feuille.
J'ai mis le fichier en .xlsm car mon fichier final est comme ca. Il faut que ca se fasse par vba et pas par MFC.
La feuille de départ "Liste produits", la feuille de destination "HorsLimites" et la feuille de résultats souhaités sont dans le fichier joint.

Merci à vous .

Zyglur
Fichiers joints
HorsLimite.xlsm
(22.12 Kio) Téléchargé 5 fois
zyglur
Membre habitué
 
Messages: 82
Inscription: 11 Avr 2011, 15:54
Version Excel: 2007 FR

Re: Transfert lignes d'une feuille sous conditions

Messagepar Darzou » 04 Fév 2012, 01:23

Bonsoir,

Un essai en pièces jointes.

Pour lancer le code c'est le gros bouton tout moche et pour les bordures c'est de la MFC.

Je vous laisse vérifier, me suis peut être trompé dans la concordance entre les colonnes.

Cdlt,

Darzou
Fichiers joints
HorsLimite V2.01.xlsm
(34.26 Kio) Téléchargé 5 fois
Darzou
Membre habitué
 
Messages: 81
Inscription: 17 Déc 2010, 04:20
Version Excel: 2010

Re: Transfert lignes d'une feuille sous conditions

Messagepar dubois » 04 Fév 2012, 01:53

Bonjour à tous,

Avec un filtre élaboré
Attention: certains en-têtes n'étaient pas orthographiés à l'identique dans les 2 feuilles,
je les ai recopiés dans "HorsLimites"
Code: Tout sélectionner
Sub Filtre()
Dim Lg&, f As Worksheet
    Application.ScreenUpdating = False
    Set f = Sheets("HorsLimites")
       
    With Sheets("Liste produits")
        Lg = .Range("c" & Rows.Count).End(xlUp).Row
        .Range("aq2") = "=AND(i3>0,OR(p3>0.1%,t3>0.1%,x3>0.1%,ab3>0.1%))" 'critères
                 
        .Range("a2:an" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        .Range("aq1:aq2"), CopyToRange:=f.Range("a2:q2"), Unique:=False
        .Range("aq2").ClearContents
    End With
End Sub

Je trouve 7 articles

Amicalement
Claude
Fichiers joints
zyglur_Filtre.xlsm
(33.53 Kio) Téléchargé 8 fois
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9258
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: Transfert lignes d'une feuille sous conditions

Messagepar Darzou » 04 Fév 2012, 02:31

Bonsoir tous,

Au cas où... mon code corrigé d'une mauvaise interprétation de vos conditions... Mais l'idée du filtre reste quand même largement plus "propre" que ce que j'ai à proposer ^^.

Cdlt,

Darzou
Fichiers joints
HorsLimite V2.02.xlsm
(35.82 Kio) Téléchargé 7 fois
Darzou
Membre habitué
 
Messages: 81
Inscription: 17 Déc 2010, 04:20
Version Excel: 2010

Re: Transfert lignes d'une feuille sous conditions  Sujet résolu

Messagepar zyglur » 04 Fév 2012, 16:52

Bonjour Darzou
Bonjour Claude.

Un grand merci à tous les 2.

Effectivement, il y avait 7 articles, je n'avais pas fais correctement ma mfc qui colorise l'article depassant les 0.1% ce qui m'a trompé quand j'ai fais un copier coller.
Les 2 solutions fonctionnent correctement, j'ai quand meme opté pour celle de Claude que j'ai eu un peu de mal a décortiquer, mais qui va me permettre de simplifier quelques codes car jusqu'a maintenant je faisait comme Darzou, et ca fais des codes a rallonge.

Merci encore.

Zyglur
zyglur
Membre habitué
 
Messages: 82
Inscription: 11 Avr 2011, 15:54
Version Excel: 2007 FR


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Exabot [Bot], Google Adsense [Bot] et 51 invités