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 :

Copier ligne a la suite sous conditions [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Par défaut Copier ligne a la suite sous conditions
    Bonjour ,
    Je ne suis pas tres fort en VBA et je n'arrive pas a m'en sortir

    Mon souhait : Lorsque je coche la case de la feuil4 colone A j'ai une formule qui met "oui" dans la colonne P de le feuil1 et j'aimerais que si il y a oui dans cette colonne la ligne associée soir copier sur la feuil2 a la suite.
    Mais ça ne marche pas par contre si je met oui manuellement dans la colonne P de la feuil1 ça marche bien
    Y'a-t-il une modification de la macro a effectuer ou faut-il plutot associer la macro a un bouton ??

    Merci d'avance

    Voila le code que j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count > 1 Then Exit Sub
        If Target.Column = 16 Then
            If UCase(Target.Value) = "OUI" Then
                Range("A" & Target.Row).Resize(1, 5).Copy
                ActiveSheet.Paste Destination:=Worksheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
                Application.CutCopyMode = False
            End If
        End If
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Les formules s'exécutent dans un autre fil (thread) que celui de VBA et la modification,de par leur fait, de valeurs de cellules ne génère aucun évènement Change concernant la cellule impactée par la formule.
    Il te faut donc soit (moins lourd) utiliser l'évènement Change de la cellule déclenchant la nouvelle valeur de la par la formule, soit (plus lourd) procéder à ton "intervention" lors de l'évènement Sheet_Calculate.
    On m' "entendra" souvent dire qu'il n'est pas toujours astucieux de mélanger "torchons" (VBA) et "serviettes" (Excel). D'autres auront, je le sais, un autre avis. Question de goûts et de couleurs et n'en parlons donc plus ...

  3. #3
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Par défaut
    Merci pour ta reponse mais malheureusement pour moi c'est un peu du chinois , pourrais tu me detailler un peu le truc ?

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonsoir
    ton code fonctionne et fait le copiage des 5 premiers colonne si la colonne P de la feuille 1 égal à "oui"
    je crois que t'as pas inséré le code au bon endroit
    il faut que ça soit au feuil1 / worksheet / change et non pas un module

    si tu cherche un code à associer à un bouton que tu mettra dans feuil1 voiçi un code développé par un des membres de ce super site (vu que je suis aussi débutant en VBA)
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub CopierSiOui()
     
      Dim Lig     As Long
      Dim Col     As String
      Dim NbrLig  As Long
      Dim NumLig  As Long
     
      ' néttoyer la feuille 2
      Sheets("feuil2").Select
      Sheets("feuil2").Range("A1:Z100").Select
      Selection.ClearContents
      '****************
      Sheets("Feuil2").Activate ' feuille de destination
      Col = "P"                 ' colonne de la donnée = "oui"
      NumLig = 0
      With Sheets("Feuil1")     ' feuille source
      NbrLig = .Cells(65536, Col).End(xlUp).Row
      For Lig = 1 To NbrLig
        If .Cells(Lig, Col).Value = "oui" Then
          .Cells(Lig, Col).EntireRow.Copy
          NumLig = NumLig + 1
          Cells(NumLig, 1).Select
          ActiveSheet.Paste
        End If
      Next
      End With
     
    End Sub
    bonne continuation

  5. #5
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Par défaut
    Merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Copier lignes et certaines colonnes sous condition
    Par CactusMalus dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/11/2014, 13h05
  2. [XL-2007] Copier/coller de ligne entre 2 feuilles sous conditions
    Par Tito1 dans le forum Excel
    Réponses: 0
    Dernier message: 13/11/2012, 18h32
  3. Copier/coller dans plusieurs feuilles sous condition
    Par lilou86 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/11/2009, 12h18
  4. Effacer une ligne dans un etat sous condition
    Par denisfavre dans le forum IHM
    Réponses: 5
    Dernier message: 23/11/2006, 17h18
  5. Réponses: 5
    Dernier message: 19/06/2006, 14h17

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