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 une partie d'une colonne vers une autre feuille [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Employé voulant apprendre à automatiser
    Inscrit en
    Février 2018
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Employé voulant apprendre à automatiser

    Informations forums :
    Inscription : Février 2018
    Messages : 61
    Par défaut Copier une partie d'une colonne vers une autre feuille
    Bonjour à tous,

    J'aurai besoin de conseils pour copier 3 colonnes d'une Sheet1 vers une Sheet2, il s'agit des colonnes B, D et F, seulement je voudrais copier la colonne seulement à partir de la ligne 3

    J'ai essayé quelque chose du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Sheets("Sheet1").Range("B3" & Rows.Count).End(xlDown).Row.Copy Sheets("Sheet2").Columns(1)
    Sheets("Sheet1").Range("D3" & Rows.Count).End(xlDown).Row.Copy Sheets("Sheet2").Columns(2)
    Sheets("Sheet1").Range("F3" & Rows.Count).End(xlDown).Row.Copy Sheets("Sheet2").Columns(3)
    Ainsi que :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sheets("Belfius").Range("B3").End(xlDown).Row.Copy Sheets("Reconciliation").Columns(1)
    Sheets("Belfius").Range("D3").End(xlDown).Row.Copy Sheets("Reconciliation").Columns(2)
    Sheets("Belfius").Range("F3").End(xlDown).Row.Copy Sheets("Reconciliation").Columns(3)

    Mais ça ne fonctionne pas, je pourrai utiliser une fonction select puis copier le reste mais ça ferait encore moins clean, auriez-vous quelques idées ?

    Merci d'avance

  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,

    un bon code n'ayant rien besoin de sélectionner, juste travailler directement sur les objets (notion incomprise vu le code Row !)
    comme pourtant indiqué dans l'aide VBA interne de Range.Copy :

    With [Sheet1!A1].CurrentRegion.Rows
    .Item("3:" & .Count).Range("B:B,D:D,F:F").Copy [Sheet2!A1]
    End With

    ___________________________________________________________________________________________________________

       :arrow:  Merci de cliquer sur :plusser: en bas à droite de chaque message ayant aidé puis sur :resolu: pour clore cette discussion …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre averti
    Homme Profil pro
    Employé voulant apprendre à automatiser
    Inscrit en
    Février 2018
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Employé voulant apprendre à automatiser

    Informations forums :
    Inscription : Février 2018
    Messages : 61
    Par défaut
    Salut Marc,

    Ca n'a pas fonctionné,

    Premièrement parce que la cellule A1 est une cellule fusionné dans ma "Sheet1",

    Deuxièmement, lorsque j'enlève la fusion (ce que je ne suis pas censé faire), ça m'a copié les colonnes sur la "Sheet 2" en cellule A3 au lieu de A1

    Je suppose du coup que du coup ça a copié les colonnes B D et F, alors que je veux seulement copier à partir de B3, D3 et F3 (ne pas copier ce qu'il y a sur les 2 premières lignes)

  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

    Cela fonctionne de mon côté mais effectivement cela peut échouer avec une feuille conçue avec les pieds !
    Et ce n'est pas forcément un problème de cellules fusionnées …     Et tu supposes mal …

    Tu peux utiliser ta méthode pour trouver le numéro de la dernière ligne
    et à partir de la cellule B3 redimensionner la source à copier via la propriété   Resize  
    ou encore juste avec un Range entre la cellule de début et celle de fin …

  5. #5
    Membre averti
    Homme Profil pro
    Employé voulant apprendre à automatiser
    Inscrit en
    Février 2018
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Employé voulant apprendre à automatiser

    Informations forums :
    Inscription : Février 2018
    Messages : 61
    Par défaut
    En fait l'idée c'est de ne pas toucher la feuille, c'est supposé être une reconciliation que je fais issu de deux sources différentes,
    Je copie les données d'une source dans ma "Sheet 1" et je laisse la feuille telle qu'elle, grâce à ma macro j'ai déjà rajouter une colonne avec formule, supprimer les lignes dont la cellule est à 0 et trier les données en fonction de plusieurs critères, dernière étape, j'aimerai maintenant commencer la reconciliation.

    Pour cela j'ai besoin de copier les lignes de mes colonnes dans une autre feuille, le nombre de lignes étant variable d'un jour à l'autre je ne peux pas vraiment l'adapter du style "B3:B415", et je ne souhaite pas non plus faire un truc du style "B3:B65360"

    Quant au ton utilisé, sans commentaires....

  6. #6
    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

    Aucun souci, niveau grand débutant, en suivant l'aide VBA de Range.Copy :

    Range({premier cellule}, {dernière cellule}).Copy {DestinationPremièreCellule}

    Remplacer les éléments entre accolades par des objets référant aux cellules correspondantes …

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/02/2018, 08h33
  2. Validation d'une partie d'un XML sur une partie d'un XSD
    Par EJO64 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 02/02/2015, 09h05
  3. copier le contenu de cellule d'une colonne vers une autre feuille.
    Par vile-coyote dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/11/2010, 06h25
  4. Copier le contenu d'une colonne vers une autre table
    Par papay dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2009, 16h27
  5. Copier une colonne vers une autre dans la même table
    Par Thalys dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/09/2008, 14h29

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