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 :

VBA Macro Copier une Ligne Selectionnée avec modif [XL-2016]


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
    Consultant fonctionnel
    Inscrit en
    Juillet 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juillet 2018
    Messages : 7
    Par défaut VBA Macro Copier une Ligne Selectionnée avec modif
    Bonjour a tous
    je suis nouveau sur le forum
    je débute avec VBA , voilà mon soucis ^^

    j'ai créé un Bouton "Dupliquer" dans mon Tableau

    et je veux Copier une Ligne que j'ai sélectionné qui comportent 12 cellules (cette premiere partie de mon code fonctionne)

    maintenant je veux que mes cellules 3,4 et 5 dans la ligne qui a été copiée soient vide
    j'ai rajouté : Cells(nvlLig, 3) = ""
    mais mon erreur vient a partir d'ici


    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
     
     Sub Dupliquer()
     
    ' dupliquer une ligne sélectionnée
    Dim nvlLig As Long
    Dim NbLigneSelec, NbLigne As Integer
     
    NbLigne = Range("A" & Rows.Count).End(xlUp).Row     'n° de la dernière ligne non vide de la colonne A
    NbLigneSelec = Selection.Rows.Count
     
        If NbLigneSelec = 1 Then                'détecte la ligne sélectionnée
            Selection.EntireRow.Copy            'copie la ligne selectionné
     
            Range("A" & NbLigne + 1).Select     'selectionne la ligne apres la derniere ligne du tableau
            ActiveSheet.Paste                   'colle la selection
     
            Application.CutCopyMode = False
        End If
     
        'Complète les cellules
     
        Cells(nvlLig, 3) = ""
        Cells(nvlLig, 4) = ""
        Cells(nvlLig, 5) = ""
     
    End Sub
    Merci d'avance pour votre Aide =)

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Ton code pique un peu les yeux. Je reprends donc un peu plus que nécessaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Dupliquer()
       If Selection.Rows.Count = 1 Then Selection.EntireRow.Copy Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
       Range("A" & Rows.Count).End(xlUp).Offset(0, 2).Resize(1, 3).ClearContents
    End Sub
    Je n'ai pas testé, il y a donc peut-être un peu de débugage à faire.

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juillet 2018
    Messages : 7
    Par défaut
    Merci ça fonctionne , par contre je ne comprend pas a quel moment il efface les cellules x)

    par contre je viens trouver l'erreur dans mon code , meme s'il "pique les yeux" , je le remet avec les explications pour ceux qui sont dans mon cas , qui auraient besoin des explications avec

    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
     
     Sub Dupliquer()
     
    ' dupliquer une ligne sélectionnée
    Dim NbLigne As Integer
     
    NbLigne = Range("A" & Rows.Count).End(xlUp).Row     'n° de la dernière ligne non vide de la colonne A
    NbLigneSelec = Selection.Rows.Count
     
        If NbLigneSelec = 1 Then                'détecte la ligne sélectionnée
            Selection.EntireRow.Copy            'copie la ligne selectionné
     
            Range("A" & NbLigne + 1).Select     'selectionne la ligne apres la derniere ligne du tableau
            ActiveSheet.Paste                   'colle la selection
     
            Application.CutCopyMode = False
        End If
     
        'Complète les cellules
     
        Cells(NbLigne + 1, 3) = ""
        Cells(NbLigne + 1, 4) = ""
        Cells(NbLigne + 1, 5) = ""
     
    End Sub

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par kib4h Voir le message
    je ne comprend pas a quel moment il efface les cellules x)
    "ClearContents" ça ne te semble pas explicite ?

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juillet 2018
    Messages : 7
    Par défaut
    Citation Envoyé par Menhir Voir le message
    "ClearContents" ça ne te semble pas explicite ?
    si ... mais c'était a quel moment il effaçait les cellules 3,4 et 5 (et pas le reste de la ligne)
    (Je rappelle que je débute dans le VBA :p )

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par kib4h Voir le message
    si ... mais c'était a quel moment il effaçait les cellules 3,4 et 5 (et pas le reste de la ligne)
    Tu regardes dans l'aide VBA en ligne (qui est très bien faite) chaque élément de cette ligne de code.
    Pour accéder à l'aide d'un élément, tu places simplement ton curseur sur cet élément et tu appuies sur la touche F1.

    (Je rappelle que je débute dans le VBA :p )
    Par contre, en lecture je suppose que tu as une certaine expérience je suppose.
    Donc, prends le temps de lire l'aide avant de demander des explications.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/11/2017, 16h22
  2. [XL-2003] copier des valeur d'une ligne selectionnées
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 12/02/2010, 07h58
  3. copier une ligne selectionne dans un autre onglet
    Par calvi2002 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2009, 12h09
  4. Réponses: 2
    Dernier message: 08/01/2007, 19h36
  5. [VBA-E]selectionner une ligne repérée avec activecell
    Par titou007 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/03/2006, 15h24

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