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 coller une plage de cellule d'une feuille A vers la première ligne vide d'une feuille B


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut Copier coller une plage de cellule d'une feuille A vers la première ligne vide d'une feuille B
    Bonjour à tous,

    Je débute le VBA et c'est mon premier langage de programmation . Je suis sur VBA pour les nuls et je me fixe quelques exercices.

    Le premier étant de copier une colonne ou un tableau d'une feuille A vers la première ligne vide d'une feuille B. J'ai commencé avec l'enregistreur puis récupéré un code me permettant de trouver la dernière cellule vide mais je ne sais pas "l'activer".

    Ci-dessous le code enregistré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Exo1()
     
        Range("A1:A6").Select
        Selection.Copy
        Windows("Test dernière ligne.xlsx").Activate
        ActiveSheet.Paste
     
    End Sub
    Maintenant j'essaie de lui dire de d'abord choisir la première ligne vide avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim Dlig As Long
    Dlig = Range("C1").End(xlDown).Row + 1
     
    Sub Exo1()
     
        Dim Dlig As Long ' Je déclare la variable pour cette procédure en entête
        Range("A1:A6").Select
        Selection.Copy
        Windows("Test dernière ligne.xlsx").Activate
        Dlig = Range("C1").End(xlDown).Row + 1
        ActiveSheet.Paste
     
    End Sub
    J'ai essayé de mettre Dlig dans un Range, ça ne marche pas. Je me doute qu'il manque une instruction select mais à part Dlig je mets ?

    J'espère avoir été clair, merci pour votre aide

    Bonne journée.

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Raoul et bienvenu sur ce Forum,

    S'il y une règle d'or en programmation VBA, c'est bien celle qui constitue à épurer tout code retourné par l'enregistreur de macro.
    En particulier, en retirer toute méthode Activate et/ou Select qui ne servent qu'à en rendre la lecture moins facile.

    Une autre règle, non moins importante;, concerne le rattachement des objet Range à leu feuille parent, voire celle-ci au classeur auquel elle appartient.

    Pour définir une dernière ligne informée, mieux vat considérer comme point de départ la dernière ligne de la feuille de travail.

    Essaie de comprendre ce qui suit, adapte-le (noms de feuille..), et reviens pour toute question.

    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
    Option Explicit
     
    Public Sub lacopie()
     
    Dim rngcop As Range
     
    With Workbooks("Test dernière ligne.xlsx").Worksheets("lawksderlign")
            Set rngcop = .Cells(.Rows.Count, 3).End(xlUp).Offset(1, 0)
    End With
     
    ThisWorkbook.Worksheets("lawks").Range("A1:A6").Copy Destination:=rngcop
     
    Application.CutCopyMode = False
     
    Set rngcop = Nothing
     
    End Sub
    Par ailleurs, dans cette discussion, je fournis un ensemble d'espaces documentaires qui peuvent servir à un débutant.
    Rassure-toi, nous l'avons tous été

  3. #3
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut Hello
    Super merci. je vais regarder ça ce weekend.

    Bonne fin de journée.

    Mon objectif en tant que débutant : ne pas me faire submerger par les concepts

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Mon objectif en tant que débutant : ne pas me faire submerger par les concepts
    Peut-être. Néanmoins tu n'éviteras pas une acquisition des bases du langage VBA.
    Ceci étant, je te conseillerais de procéder par étape et de ne pas chercher à développer des codes trop complexes rapidement.
    Une consolidation des connaissances acquises est fondamentale si l'on veut aller plus loin.
    Du moins, c'est mon avis.

  5. #5
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut Yes
    Tout à fait conscient de ça, c'est pour ça que j'avance pas à pas en essayant d'imaginer des situations. Après les sections FAQ et forums sont des mines d'infos ne seraient ce que pour entrevoir l'étendu des possibilités.

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Après les sections FAQ et forums sont des mines d'infos
    Très bien.
    Consulte également les liens auxquels je faisais référence dans mon avant dernier post.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/12/2018, 20h19
  2. Réponses: 0
    Dernier message: 19/06/2018, 10h43
  3. [XL-2013] Copier et coller des lignes d'une pages vers la première ligne vide d'un autre fichier
    Par tommy.bezeau dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/06/2018, 10h39
  4. Copier/coller une plage de cellules
    Par Pastore dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/04/2012, 23h06
  5. Copier/coller une plage de cellules pleine de trous
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 21/05/2008, 18h57

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