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 :

Dupliquer une ligne lors du changement de valeur dans une colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Par défaut Dupliquer une ligne lors du changement de valeur dans une colonne
    Bonjour à tous,

    je sèche un peu sur cette manip et du coup, si vous pouvez me renseigner je suis preneur
    je sais que la manip est possible avec une boucle mais je trouve cela lent et lourd...
    je pense qu'il est possible d'utiliser la partie: Private Sub Worksheet_SelectionChange(ByVal Target As Range).
    en gros ce que je cherche à réaliser est de dupliquer une partie de la ligne lorsque la valeur de la colonne K est changée et que celle ci soit copié dans la colonne I.
    je ne sais pas si j'ai été assez clair dans ce que je cherche à faire mais je suis prêt à donner plus d'explication au besoin

    Je vous remercie d'avance de toute l'aide que vous pourrez m'apporter.


    Nom : Capture.JPG
Affichages : 153
Taille : 111,9 Ko
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Bonjour peut être comme ceci

    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 ActiveCell.Column = 9 Then
    Application.EnableEvents = False
    ligneactive = Target.Row
    derniereligne = Range("A" & Rows.Count).End(xlUp).Row + 1
    Range(Cells(derniereligne, 1), Cells(derniereligne, 7)).Value = Range(Cells(ligneactive, 1), Cells(ligneactive,7)).Value
    Cells(derniereligne, 8).Value = Cells(ligneactive, 9).Value
    Application.EnableEvents = True
    End If
    End Sub
    EnableEvents a pour but de ne pas boucler sur la macro événementielle

    Attention si tu lance la macro en pas a pas et que tu sort avant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents = True
    les macros événementielles ne fonctionnerons plus.

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Par défaut
    Bonjour et merci @a_diard pour ta réponse.

    concernant les "fonctions" (je ne connais pas le terme approprié dsl) :ligneactive et derniereligne
    il faut les déclarer à un moment non?
    un truc du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim ligneactive As "jesaispasquoi"
    Dim derniereligne As "jesaispasquoi"
    reste à savoir le "jesaispasquoi" correspondant à une ligne

    ou alors en "function"?

  4. #4
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Par défaut
    après quelque modif mineure

    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 ActiveCell.Column = 8 Then
    Application.EnableEvents = False
    ligneactive = Target.Row
    derniereligne = Range("A" & Rows.Count).End(xlUp).Row + 1
    Range(Cells(derniereligne, 1), Cells(derniereligne, 7)).Value = Range(Cells(ligneactive, 1), Cells(ligneactive, 7)).Value
    Cells(derniereligne, 9).Value = Cells(ligneactive, 11).Value
    Application.EnableEvents = True
    End If
    End Sub
    j'ai réussi à faire ce que je voulais!!
    il va peut être falloir que je revoie un peu le fonctionnement mais un grand merci!!!

  5. #5
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut déclaration des variables zen vba
    https://silkyroad.developpez.com/VBA/LesVariables/

    Ci dessus un lien vers un tuto déclaration des variables.

    "c'est mieux ce les déclarer"

    Bonne lecture.

Discussions similaires

  1. [XL-2010] Exécution macro lors d'un changement de valeur dans une cellule
    Par yoyo3d dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/01/2015, 21h06
  2. Réponses: 1
    Dernier message: 06/11/2013, 17h41
  3. Réponses: 13
    Dernier message: 21/02/2011, 21h33
  4. Réponses: 8
    Dernier message: 11/07/2009, 20h09
  5. [vb excel]Tester une valeur dans une ligne
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/09/2005, 14h58

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