IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copie colle des lignes sous condition


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Avril 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Copie colle des lignes sous condition
    Bonjour,

    Je débute en VBA et je bloque pour créer ma macro

    J'ai un fichier qui comporte 604 lignes et 13 colonnes

    je cherche à faire une macro pour que :

    si ligne 1 comporte en cellule 1-J ou en cellule 1-L le mot TOTO (je dis bien COMPORTE et non pas EGAL) que l'intégralité de la ligne soit copiée collée dans l'onglet TOTO
    et reproduire cette requête sur les 604 lignes de mon onglet de départ.

    Qui peut m'aider ?

    Caro

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 129
    Points : 149
    Points
    149
    Par défaut
    Bonjour,

    Il faut faire une boucle en partant de la fin de la liste jusqu'à la première ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Sub supprLigneToto()
    Dim ws As Worksheet
    Dim i As Long, iMax As Long
     
    iMax = 604
    ' dans quelle feuille se place t'on
    Set ws = ThisWorkbook.Sheets(1)
     
    For i = iMax To 1 Step -1
        If InStr(ws.Cells(i, 10).value, "toto") > 0 Or InStr(ws.Cells(i, 10).value, "toto") > 0 Then
            ws.Rows(i).Delete
        End If
    Next i
    End Sub
    J'imagine que tu peux trouver un meilleur moyen de déterminer iMax selon la disposition des données dans ta feuille.

  3. #3
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If InStr(ws.Cells(i, 10).value, "toto") > 0 Or InStr(ws.Cells(i, 10).value, "toto") > 0 Then
    Pourquoi deux fois le même test ?

    Sinon un Like me semble plus adapté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ws.Cells(i, 10).value Like "*toto*" Then

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 129
    Points : 149
    Points
    149
    Par défaut
    Eratum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ' colonnes J et L
    If InStr(ws.Cells(i, 10).value, "toto") > 0 Or InStr(ws.Cells(i, 12).value, "toto") > 0 Then

  5. #5
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    Bonjour,
    Une autre solution et d'utiliser (comme tu débutes) l'enregistreur de macro afin de créer un filtre où tu mettras le paramètre "toto" dans les 2 colonnes voulus.
    Tu n'auras plus qu'à copier le résultat du filtre dans ton onglet.
    Un post a déjà été traité sur ce sujet :http://www.developpez.net/forums/d15...te-autofilter/

    Erratum :
    En fait, cette procédure créer des actions supplémentaires qui ne sont pas adéquat à ton problème
    Comme cerede je suis pour utiliser Like
    Dès que j'ai un peu plus de temps, je regarde cela de plus près

Discussions similaires

  1. [XL-2010] macro copie et colle des lignes avec condition de cellule
    Par olive72 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/01/2015, 17h34
  2. [XL-2010] copier coller des lignes sous condition avec un changement de texte sur la ligne copiée.
    Par a.ouguerzam dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 10/11/2014, 17h48
  3. Masquer des lignes sous condition
    Par linousxm dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/05/2010, 14h19
  4. copier des lignes sous conditions (dans 2 colonnes différentes)
    Par olive08 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 12/10/2007, 15h44
  5. Suppression des lignes sous condition multiple
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/06/2007, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo