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 avec un range


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    copier avec un range
    Bonjour tout le monde!

    J'essaye de copier une colonne sous son titre jusqu'au dernier element d'un workbook ouvert vers le workbook actuel mais jai toujours un erreur j'tuilise excel 2013 voici mon code:
    La fonction range_finer me donne le numero de la colonne selon le titre recherché. Ensuite je trouve la derniere ligne non vide avec une loop rng est un range et quand je veux copier j'obtient l'erreur 1004? quelqu'un a une idée.
    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
     
     colonne = range_finder(OpenBook, ThisWorkbook, wscopy, wsdest, Titrecolonne(13))
        ligne = 1
        Do While (IsEmpty(wscopy.Cells(ligne, colonne).Value)) = VRAI
            ligne = ligne + 1
        Loop
     
        ligne = ligne - 1
     
        'ligne = Cells(1, 1).End(xlDown).Row
     
        'Ligne = Cells(Rows.Count, Colonne).End(x1down).Row
        Set Rng = Range(Cells(2, colonne), Cells(ligne, colonne))
        OpenBook.Activate
        OpenBook.Sheets(2).Range("Rng").Copy

  2. #2
    Membre à l'essai
    code changé
    j'ai changer mon code et le copy semble marcher mais le paste ne marche pas

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Set Rng = Range(Cells(2, colonne), Cells(ligne, colonne))
        OpenBook.Activate
        Sheets(2).Select
        Range(Cells(2, colonne), Cells(ligne, colonne)).Copy
        ThisWorkbook.Activate
        Sheets(1).Select
        ThisWorkbook.Sheets(1).Range("A30").Paste

  3. #3
    Membre à l'essai
    code changé encore
    Avec ce code je reussi a paste sur le bon document mais il copy du meme document au lieu du document OpenBook?

    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
    colonne = range_finder(OpenBook, ThisWorkbook, wscopy, wsdest, Titrecolonne(13))
        ligne = 1
        Do While (IsEmpty(wscopy.Cells(ligne, colonne).Value)) = VRAI
            ligne = ligne + 1
        Loop
     
        ligne = ligne - 1
     
        'ligne = Cells(1, 1).End(xlDown).Row
     
        'Ligne = Cells(Rows.Count, Colonne).End(x1down).Row
        Set Rng = Range(Cells(2, colonne), Cells(ligne, colonne))
        OpenBook.Activate
        Sheets(2).Select
        Range(Cells(2, colonne), Cells(ligne, colonne)).Copy
        ThisWorkbook.Activate
        Sheets(1).Select
        ActiveSheet.Paste Destination:=Range("A30")

  4. #4
    Rédacteur

    Bonjour,
    Eternel problème.
    Une cellule a comme parent sa feuille qui elle même a comme parent son classeur donc en utilisant l'objet Range sans préciser sa parentalité complète VBA va choisir par défaut la cellule de la feuille active (qui fait partie du classeur actif)

    Si vous avez deux lieux de résidence et qu'à la personne au téléphone, vous dites "je suis dans mon salon", il ne saura pas si vous parlez du salon de la maison A ou de la maison B
    En revanche, si vous dites, "je suis dans le salon de ma maison de campagne". Il y a des chances de lever toute ambiguïté sur le lieu où vous vous trouvez.

    Donc avec le VBA, le code ci-dessous ne laisse pas la place au hasard
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Workbooks("Compta2019.xlsx").Worksheets("Budget").Copy After:=Workbooks("ComptaRecap").Worksheets("Sommaire")

    Et bien entendu Workbooks("Compta2019.xlsx") comme Worksheets("Budget") et les autres peuvent être remplacés par des variables objets
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

###raw>template_hook.ano_emploi###