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 :

Macro Bouton Copier Coller vers une ligne vide. [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Octobre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2019
    Messages : 10
    Par défaut Macro Bouton Copier Coller vers une ligne vide.
    Bonjour à tous, je suis nouveau sur ce forum et je viens déjà solliciter votre aide :-).
    J'ai le code suivant qui me copie une sélection d'une Feuille vers une autre feuille.
    Si je fais une nouvelle sélection, lors du copier / coller ça m'écrase la précédente copie, je voudrais que ça vienne s'ajouter en dessous.
    Merci d'avance pour l'aide que vous pourrez m'apporter.
    Bonne journée.
    Cordialement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButtonNNO_Click()
    Application.ScreenUpdating = False
        Dim xSheet As Worksheet
        Dim ySheet As Worksheet
        Set xSheet = ActiveSheet
        Set ySheet = Sheets("Relance ECM")
            If xSheet.Name <> "Definitions" And xSheet.Name <> "fx" And xSheet.Name <> "Needs" Then
                xSheet.Range("B:M ").Copy
                ySheet.Range("B7:M7 ").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            End If
     
        Application.ScreenUpdating = True
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Il faut trouver la dernière ligne de la feuille ySheet et lui ajouter 1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Lig_y_Suiv = ySheet.Range("B" & Rows.Count).Row + 1
    ySheet.Range("B7:M" & Lig_y_Suiv).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Cdlt

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Octobre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2019
    Messages : 10
    Par défaut
    Bonjour,

    merci pour votre réponse.

    J'ai remplacé ma ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ySheet.Range("B7:M7 ").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Lig_y_Suiv = ySheet.Range("B" & Rows.Count).Row + 1
    ySheet.Range("B7:M" & Lig_y_Suiv).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Et j'ai une fenêtre d'erreur d'exécution 1004 : Méthode 'Range' de l'objet '_Worksheet' a échoué.
    En mode débogage la 2ème ligne apparait en surbrillance.

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Il faut donner la plage réelle à copier (exemple en rouge), j'ai modifié les 2 lignes suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                xSheet.Range("B7:M10").Copy 
                Lig_y_Suiv = ySheet.Range("B" & Rows.Count).End(xlUp).Row + 1
                ySheet.Range("B" & Lig_y_Suiv).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Cdlt

  5. #5
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Octobre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2019
    Messages : 10
    Par défaut
    Rebonjour ARTURO83,

    J'ai modifié les 3 lignes. Cette fois-ci plus de message d'erreur mais la zone copiée ne s'incrémente pas dans ma feuille destination (Relance ECM)
    J'ai essayé de modifier et de jouer sur les plages mais sans succès.

    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
    Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
        Dim xSheet As Worksheet
        Dim ySheet As Worksheet
        Set xSheet = ActiveSheet
        Set ySheet = Sheets("Relance ECM")
            If xSheet.Name <> "Definitions" And xSheet.Name <> "fx" And xSheet.Name <> "Needs" Then
                'xSheet.Range("B7:M7 ").Copy
                'ySheet.Range("B7:M7 ").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                xSheet.Range("B7:M7").Copy
                Lig_y_Suiv = ySheet.Range("B" & Rows.Count).End(xlUp).Row + 1
                ySheet.Range("B" & Lig_y_Suiv).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            End If
     
    Application.ScreenUpdating = True
    End Sub

  6. #6
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2015
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 64
    Par défaut
    Hello,

    pour coller à la première ligne vide, tu peux aussi partir là-dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sheets(2).Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteAll, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False

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

Discussions similaires

  1. [XL-2003] Macro pour copier coller automatiquement une ligne selon un critère
    Par Hardeads dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/09/2019, 16h16
  2. Réponses: 5
    Dernier message: 16/01/2015, 22h17
  3. copier coller d'une ligne vers nouvelle table (trigger)
    Par cedric190985 dans le forum SQL
    Réponses: 1
    Dernier message: 18/05/2011, 09h08
  4. Copier/coller d'une ligne entière avec petits détails
    Par alexg33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/07/2010, 16h00
  5. [AC-2007] Problème copier/coller d'une ligne excel
    Par christophe31 dans le forum VBA Access
    Réponses: 8
    Dernier message: 09/03/2010, 14h50

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