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 des données d'une feuille en une autre avec une constante de 4.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 1
    Par défaut Copier des données d'une feuille en une autre avec une constante de 4.
    Bonsoir,

    J'aimerais avoir de l'aide sur mon code VBA. Il s'agit de prendre des données de la feuille dénommée "Détail_des_titres" pour les remplir dans la feuille du même classeur dénommée "Feuil3". Le souci c'est que j'ai trouvé un code pour réaliser le travail que je veux faire, seulement, elle est très longue et j'aimerais savoir comment la réduire pour une plus grande efficience et une plus grande flexibilité du code.

    Voilà mon code pour seulement pour le mois de janvier (en colonne)

    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
    26
    27
    28
    29
    30
    Range("F3").Value = "=Détail_des_titres!K10"
    Range("F4").Value = "=Détail_des_titres!K14"
    Range("F5").Value = "=Détail_des_titres!K18"
    Range("F6").Value = "=Détail_des_titres!K22"
    Range("F7").Value = "=Détail_des_titres!K26"
    Range("F8").Value = "=Détail_des_titres!K30"
    Range("F9").Value = "=Détail_des_titres!K34"
    Range("F10").Value = "=Détail_des_titres!K38"
    Range("F11").Value = "=Détail_des_titres!K42"
    Range("F12").Value = "=Détail_des_titres!K46"
    Range("F13").Value = "=Détail_des_titres!K51"
    Range("F14").Value = "=Détail_des_titres!K55"
    Range("F15").Value = "=Détail_des_titres!K60"
    Range("F16").Value = "=Détail_des_titres!K65"
    Range("F17").Value = "=Détail_des_titres!K69"
    Range("F18").Value = "=Détail_des_titres!K74"
    Range("F19").Value = "=Détail_des_titres!K78"
    Range("F20").Value = "=Détail_des_titres!K83"
    Range("F21").Value = "=Détail_des_titres!K87"
    Range("F22").Value = "=Détail_des_titres!K91"
    Range("F23").Value = "=Détail_des_titres!K95"
    Range("F24").Value = "=Détail_des_titres!K100"
    Range("F25").Value = "=Détail_des_titres!K104"
    Range("F26").Value = "=Détail_des_titres!K108"
    Range("F27").Value = "=Détail_des_titres!K112"
    Range("F28").Value = "=Détail_des_titres!K117"
    Range("F29").Value = "=Détail_des_titres!K121"
    Range("F30").Value = "=Détail_des_titres!K125"
    Range("F31").Value = "=Détail_des_titres!K130"
    Range("F32").Value = "=Détail_des_titres!K134"
    Il s'agit de réalisé un budget des titres.

    Ce que je recherche c'est que le code puisse aller prendre à chaque intervalle de 4 en ligne ou en colonne, les données de la feuille "Détail_des_titres" pour les remplir dans la feuille "Feuil3". Je n'arrive pas, je suis vraiment un novice dans la programmation.

    Merci d'avance pour votre aide. je vous joint mon fichier.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    A adapter, je passe par des tableaux au cas où tu aies de nombreuses données à traiter (plus rapide)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub details()
    Dim i As Long, DerCel As Range, TbD, tbF(), Wd As Worksheet, Wf As Worksheet, x As Long
    Set Wd = Sheets("Détail_des_titres"): Set Wf = Sheets("Feuil3")
    x = 0
    Set DerCel = Wd.Range("K" & Wd.Rows.Count).End(xlUp)
    TbD = Wd.Range("K10", DerCel)
    For i = 1 To UBound(TbD, 1) Step 4
      x = x + 1
      ReDim Preserve tbF(1 To x)
      tbF(x) = TbD(i, 1)
    Next i
    Wf.Range("F3").Resize(UBound(tbF), 1) = Application.Transpose(tbF)
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    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, bonjour !

    Citation Envoyé par wendkouni Voir le message
    Je n'arrive pas, je suis vraiment un novice dans la programmation.
    Un code ne s'avère pas nécessaire surtout quand on est un novice dans le domaine !

    En cas de difficulté pour coder, la première question à se poser : « est-ce réalisable directement dans Excel ? »
    Et ici, la réponse est oui via une simple formule de calculs !

    Une fois la formule trouvée (en la recopiant depuis la première cellule vers le bas),
    si vraiment un code est nécessaire, il suffit d'une seule ligne de code pour copier les données dans la plage !

    Voilà, voilà !

    _________________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

Discussions similaires

  1. [XL-2010] copier des données de plusieurs feuilles excel dans une seule feuille
    Par haifaben dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/03/2016, 09h45
  2. [XL-2007] Copier des données sur plusieurs feuilles suivant certains critères
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/09/2014, 19h04
  3. Réponses: 12
    Dernier message: 27/07/2014, 10h51
  4. [Toutes versions] Macro pour copier des données de différentes feuilles
    Par Pyramide33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/04/2012, 21h47
  5. Réponses: 19
    Dernier message: 13/04/2012, 08h30

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