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 :

Collage de taille variable à la suite de données [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Par défaut Collage de taille variable à la suite de données
    Bonjour,

    Je m'arrache les cheveux depuis 2 jours sur ce problème : je veux copier une plage de 2 colonnes de nombre de lignes variables à la suite d'une plage de données sur une autre worksheet. J'ai tenté beaucoup de choses qui ont fonctionné à un moment parfois. J'ai rencontré 2 types d'erreur : erreur définie par l'objet et surtout "la méthode Copy a échoué".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim StartRow As Integer: StartRow = ThisWorkbook.Worksheets(2).Range("A:B").SpecialCells(xlCellTypeBlanks).Row
    ThisWorkbook.Worksheets(1).Range("A11:B60").Copy ThisWorkbook.Worksheets(2).Range("A:B").Rows(StartRow)
    Le code ci-dessus a fonctionné mais maintenant donne l'erreur "la méthode Copy a échoué".

    Auriez-vous des idées ?

    Merci

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    en destination de copie indiquer juste la première cellule ! (le coin supérieur gauche)

     Feuil1.[A11:B60].Copy Feuil2.Cells(Rows.Count, 1).End(xlUp)(2)   …

    ___________________________________________________________________________________________________________
    Je suis Paris, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonsoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    Dim StartRow As Long
    StartRow = ThisWorkbook.Worksheets(2).Range("A" & Rows.Count).End(xlUp).Row+1
    ThisWorkbook.Worksheets(1).Range("A11:B60").Copy ThisWorkbook.Worksheets(2).Range("A:B").Rows(StartRow)
    End Sub

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    'soir Ben !

    T'as oublié de décaler d'une ligne car ainsi la dernière ligne de la feuille de destination est écrasée par la première recopiée !
    (correction effectuée)

    Jette aussi un œil au code de mon précédent message …

  5. #5
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Hi
    +1 Marc on va à l'essentiel
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Par défaut
    Merci beaucoup ! Je vais essayer dès demain (toujours pas de pc)

    Edit :

    J'ai réussi grâce à ta réponse Marc-L encore merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ThisWorkbook.Worksheets(1).Range("A11:B60").Copy ThisWorkbook.Worksheets(2).Cells(Rows.Count, 1).End(xlUp)(2)
    ThisWorkbook.Worksheets(1).Range("A11:B60").ClearContents
    Ce forum est vraiment sympa. Il y a beaucoup de contributeurs experts et prêts à aider les autres

    Je remercie tous ceux grâce à qui j'ai progressé en VBA sur ce site (c'est la deuxième question que je pose), notamment Pierre Fauconnier, Marc-L, Docmarti, unparia dont les réponses m'ont beaucoup aidé !

    J'espère pouvoir apporter ma contribution à ce forum également à l'occasion ^^

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

Discussions similaires

  1. [Débutant] Ecrire bit à bit des données de taille variable dans un byte[] ?
    Par StringBuilder dans le forum C#
    Réponses: 2
    Dernier message: 20/07/2016, 17h37
  2. Import avec plage de données de taille variable
    Par Laurent04 dans le forum Débutez
    Réponses: 4
    Dernier message: 25/02/2013, 16h43
  3. Réponses: 6
    Dernier message: 15/11/2012, 09h35
  4. Comment calculer la taille d'une base de données ?
    Par say dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 01/04/2011, 16h48
  5. Réponses: 1
    Dernier message: 17/10/2006, 17h37

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