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 :

copie entre deux feuilles [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Par défaut copie entre deux feuilles
    Bonjour,

    Je me remet à Excel après de looooooongues années... Et je bug

    J'ai un classeur avec 2 feuilles.
    Je voudrais copier la valeur d'une cellule de la feuille 1 sur dix lignes de la colonne B de la feuille 2.
    Puis refaire ça pour une autre cellule de la feuille 1 (mais cette fois ci dans la colonne A)
    Puis copier une plage de cellule de la feuille 1 à copier dans la feuille 2 à partir de la colonne C (il y a 10 lignes dans cette plage de cellules)

    Mon code qui ne fonctionne pas
    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
    19
    20
    21
    22
    23
    24
    25
     
    Sub Bouton2_Cliquer()
    Dim der_ligne As Long
    Dim i As Long
     
    Dim ws_1 As Worksheet   'feuille du Planificateur annuel
    Dim ws_2 As Worksheet   'feuille de DBActivités
    Dim ws_3 As Worksheet   'feuille cachée avec les calculs, liste de valeurs pour les listes déroulantes, les critères de filtres etc...
     
    'définir les feuilles de données
    Set ws_1 = Worksheets(1)    'feuille du Planificateur annuel
    Set ws_2 = Worksheets(2)    'feuille de DBActivités
    Set ws_3 = Worksheets(3)
     
    'identifier la dernière ligne remplie du tableau DBActivités (feuille 2) dans lequel on va coller les infos de la feuille 1
    der_ligne = ws_2.Cells(Rows.Count, 1).End(xlUp).Row
     
    'copier les infos de rdv (plage P6:V17 de la feuille 1) dans la feuille 2 (en C4:I13)
    For i = 1 To 10
        ws_1.Range(ws_1.Cells(4, 17)).Copy ws_2.Range(ws_2.Cells(der_ligne + 1, 2)) 'copie de la valeur de la date de la cellule Q4 de la feuille 1 vers la feuille 2, colonne B et sur 10 lignes
        ws_1.Range(ws_1.Cells(4, 19)).Copy ws_2.Range(ws_2.Cells(der_ligne + 1, 1))    'copie de la valeur de l'intervenant de la cellule S4 de la feuille 1 vers la feuille 2, colonne A et sur 10 lignes
        ws_1.Range(ws_1.Cells(i, 16), ws_1.Cells(i, 23)).Copy ws_2.Range(ws_2.Cells(der_ligne + 1, 3), ws_2.Cells(der_ligne + 1, 9))'copie de la plage P6:V17 vers la feuille 2
    Next
     
    End Sub
    Avez-vous des suggestions?
    Je ne comprends pas ce que je ne fait pas correctement dans l'utilisation des range et autres Cells
    Pourtant ce n'est pas un code compliqué...

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Pour la premiere ligne il me semble que ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ws_2.Cells(der_ligne + 1, 2) = ws_1.Cells(4, 17) 'copie de la valeur de la date de la cellule Q4 de la feuille 1 vers la feuille 2, colonne B et sur 10 lignes
    suffirait

    dans la boucle For i = 1 To 10

    la date est copiée 10 fois dans la méme cellule

    der_ligne est chargé avant la boucle et ne change pas de valeur.



    a tester et a généraliser si c'est le cas.

    je pense que le : n'est pas utile, pourquoi ne pas copier les 10 lignes en une seule fois.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Par défaut
    Bonjour a_diard,

    Merci pour ton retour et suggestions.
    Pour la première ligne, je vais tester. Mais en effet, ça me semble plus simple.
    Concernant la boucle, je vais introduire une petite modif pour que la valeur de la cellule de la feuille 1 soit repliquée dans les cellules de la colonne souhaitée.

    Par contre je ne comprends pas ta dernière question... Comment copier les 10 lignes en une fois?

  4. #4
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    avec ceci:

    Tu colle la date sur 10 lignes sur la feuille 2

    ws_2.Range(ws_2.Cells(der_ligne + i, 2), ws_2.Cells(der_ligne + i + 9, 2)) = ws_1.Cells(4, 17) 'copie de la valeur de la date de la cellule Q4 de la feuille 1 vers la feuille 2, colonne B et sur 10 lignes

  5. #5
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Je pense que ceci doit repondre a ton besoin:

    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
    19
    20
    Sub Bouton2_Cliquer()
    Dim der_ligne As Long
    Dim i As Long
     
    Dim ws_1 As Worksheet   'feuille du Planificateur annuel
    Dim ws_2 As Worksheet   'feuille de DBActivités
    Dim ws_3 As Worksheet   'feuille cachée avec les calculs, liste de valeurs pour les listes déroulantes, les critères de filtres etc...
     
    'définir les feuilles de données
    Set ws_1 = Worksheets(1)    'feuille du Planificateur annuel
    Set ws_2 = Worksheets(2)    'feuille de DBActivités
    Set ws_3 = Worksheets(3)
     
    'identifier la dernière ligne remplie du tableau DBActivités (feuille 2) dans lequel on va coller les infos de la feuille 1
    der_ligne = ws_2.Cells(Rows.Count, 1).End(xlUp).Row
     
    ws_2.Range(ws_2.Cells(der_ligne + 1, 2), ws_2.Cells(der_ligne + 10, 2)) = ws_1.Cells(4, 17) 'copie de la valeur de la date de la cellule Q4 de la feuille 1 vers la feuille 2, colonne B et sur 10 lignes
        ws_2.Range(ws_2.Cells(der_ligne + 1, 1), ws_2.Cells(der_ligne + 10, 1)) = ws_1.Cells(4, 19)   'copie de la valeur de l'intervenant de la cellule S4 de la feuille 1 vers la feuille 2, colonne A et sur 10 lignes
          ws_1.Range(ws_1.Cells(1, 3), ws_1.Cells(10, 5)).Copy ws_2.Range(ws_2.Cells(der_ligne + 1, 3), ws_2.Cells(der_ligne + 10, 5)) 'copie une Zone de 10 lignes et 2 colonnes de Feuille1 ("C1:D10")vers feuille2 zone décalée de 10 lignes à chaque fois.
    End Sub

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Par défaut
    Merci a_diard !!

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

Discussions similaires

  1. Copie de valeur entre deux feuille
    Par HenrySavoyard dans le forum Excel
    Réponses: 2
    Dernier message: 03/02/2020, 20h14
  2. [XL-2010] Copie de valeurs entre deux feuilles selon condition (texte)
    Par Beginner23 dans le forum Macros et VBA Excel
    Réponses: 35
    Dernier message: 25/04/2017, 15h55
  3. [XL-2007] VBA - Copie de données entre deux feuilles et restructuration
    Par Allure dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/09/2013, 00h53
  4. Copie de données entre deux feuilles avec condition "Année"
    Par ElPibeOro dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/07/2013, 15h58
  5. [XL-2010] Copie de données entre deux feuilles sans doublons
    Par ElPibeOro dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/05/2013, 15h07

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