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 la plage d'une feuille d'un classeur et la coller dans une feuille d'un autre classeur avec condition


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 9
    Points
    9
    Par défaut Copier la plage d'une feuille d'un classeur et la coller dans une feuille d'un autre classeur avec condition
    Bonjour le forum,

    Je bloque sur un code qui me permet de copier une plage d'une feuille "BILAN" du classeur(aze.xlsx) et la coller dans une plage de la feuille"BILAN" du classeur"projet de pointage". Vous remarquerez que les classeurs sont différents.

    Lorsque le nom de l'onglet des deux feuilles des classeur aze.xlsx et projet pointage.xlsm ; est BILAN en principe le code s'applique.
    J'ai besoin de faire une boucle vu que je n'ai pas que deux feuilles sur chacun des classeurs mais plusieurs.

    Quand je lance le code ci-après il ne débogue pas, mais ça ne donne rien non plus.

    Merci d'avance pour votre retour.

    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 onglet()
    Dim WSR As Worksheets, WSC As Worksheets
    Dim WKR As Workbook, WKC As Workbook
    Dim c As Variant
    Dim  derl As Long
    Set WKR = Workbooks("aze.xlsx")
    Set WKC = Workbooks("projet pointage.xlsm")
     
    For Each WSR In WKR.Worksheets
    For Each WSC In WKC.Worksheets
     
    If WKR.WSR.Name = WKC.WSC.Name Then
    Select Case WSR.Name
    Case Is = "BILAN"
     
    derl = WKR.Range("B" & Rows.Count).End(xlUp).Row
     
    WKR.WSR.Range("B8:C" & derl).Copy WKC.WSC.Range("B10")
     
    End Select
    End If
     
    Next WSC
    Next WSR
    End Sub

  2. #2
    Expert éminent sénior
    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
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    plus de chance d'avoir une réponse dans le forum dédié au VBA que dans celui des formules de feuille de calculs !

    Sinon aucune boucle est nécessaire pour effectuer une copie ! Si le besoin a bien été exprimé …

    Consulter l'aide et l'exemple de la méthode Copy associée à un objet Range
    et les exemples dans les discussions du forum consacré au VBA Excel …

    En utilisant l'Enregistreur de macros, le code est livré sur un plateau !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Bonjour Marc-L,

    Je comprends pas pourquoi j'ai plus droit aux réponses?
    Est ce que j'ai manqué de respect à un moment quelconque lorsque j'ai ouvert cette discussion ou autres?

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Pour les questions vba, il y a une partie de ce forum y dédié http://www.developpez.net/forums/f66...ros-vba-excel/

    Sinon, question de conception, si tu connais le nom de la feuille pourquoi faire une boucle sur les feuilles. Comme si tu connais l'adresse complète d'une personne alors que tu fais du porte à porte jusqu'à retrouver la personne recherchée.

    Pour ton cas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set WSR = WKR.Worksheets("BILAN")
    Set WSC = WKC.Worksheets("BILAN")
     
    With WSR
        Derl = .Range("B" & .Rows.Count).End(xlUp).Row
        If Derl >= 8 Then .Range("B8:C" & Derl).Copy WSC.Range("B10")
    End With

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Bonjour mercatog, bonjour le forum,

    Merci pour le bout de code, mais ça ne résout pas trop mon problème.

    En fait j'ai pensé à une boucle vu que j'ai une douzaine de feuille avec des noms identiques ( noms des feuilles issues du classeur X sont les même pour le classeur Y). Je veux pas que mon code contienne une douzaine de lignes (chaque ligne pour une feuille différente).

    Merci d'avance pour votre retour.

Discussions similaires

  1. [Toutes versions] Macro pour copier le contenu d'une cellule d'un fichier excel et coller dans une form
    Par wizishop dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 16/10/2015, 12h05
  2. Réponses: 13
    Dernier message: 23/05/2013, 20h38
  3. [XL-2007] Copier une plage dans une feuille et la coller dans une autre du même classeur.
    Par kedmard dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/04/2012, 14h55
  4. Réponses: 19
    Dernier message: 13/04/2012, 08h30
  5. Réponses: 1
    Dernier message: 31/08/2009, 22h48

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