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 :

Création d'une boucle à partir d'un code linéaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut Création d'une boucle à partir d'un code linéaire
    Bonjour à tous!

    Alors voici mon petit soucis:
    J'ai écrit un code me permettant de copier une ligne (en l'occurrence A2) pour ensuite la coller plusieurs fois en dessous (je ne prend que les champs allant de A à P).
    Par la suite, je copie 1 par 1 les cases Q2, R2, S2, T2, U2 ,V2 pour les coller sur la colonne QX correspondante.

    Voici le code:
    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
    31
    32
    33
    34
    35
    36
    37
     
     Sub Macro6()
    'copie de la ligne 3
    Rows("3:3").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2:P2").Select
    Selection.Copy
    Range("A3").Select
    ActiveSheet.Paste
    'copie du format 3
    Range("R2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("Q3").Select
    ActiveSheet.Paste
    'suppression de la colonne format 3
    Range("R1:R2").Select
    Range("R2").Activate
    Selection.ClearContents
    'copie de la ligne 3
    Rows("4:4").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A3:P3").Select
    Selection.Copy
    Range("A4").Select
    ActiveSheet.Paste
    'copie du format 3
    Range("S2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("Q4").Select
    ActiveSheet.Paste
    'suppression de la colonne format 3
    Range("S1:S2").Select
    Range("S2").Activate
    Selection.ClearContents
    End Sub
    J'aimerais faire une boucle pour que le processus s'exécute jusqu'en bas de la worksheet pour chaque ligne (Malgré mes tentatives je n'y parviens pas).

    Merci à celui qui m'aidera (si tu habites à l'est de Paris, je serais ravi de t'offrir une bonne pinte ou un café! :D

  2. #2
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Salut,
    ça donne un vertige ces Selects intempestifs.
    Sache que l'enregistreur macro est un traceur d'actions permettant pour un débutant de connaître rapidement la syntaxe de certaines expressions du modèle objet VBA. En production le code de l'enregistreur non remanié est source de bugs.
    Fais une petite recherche dans les tutos vba de dev pour améliorer ton codage.
    Une boucle n'est pas forcément utile dans ton cas.
    Et je te propose comme début d'examiner le code suivant en essayant d'imaginer ce qu'il fera avant éxecution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Range("A2:P2").Copy
    Range("A3:P9").Insert xlDown
     
    Range("r2:v2").Copy
    Range("q3:q9").PasteSpecial xlPasteAll, , , True
     
    Range("r2:v2").Clear

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    Merci beaucoup pour ton code, effectivement il est beaucoup plus elegant que le mien.
    Je comprends bien ce qu'il fait, en revanche j'ai du me méprendre dans l'explication precise du code que j'aimerais exécuter.
    Je met deux photo avant/après ainsi qu'un XLS avec l'avant en haut et l'après en bas

    Il faudrait que cela se fasse sur toute la worksheet (d'ou mon idée du boucle).

    Avant:
    Nom : Capture d’écran 2016-11-14 à 20.50.16.png
Affichages : 131
Taille : 30,3 Ko

    Après:
    Nom : Capture d’écran 2016-11-14 à 20.59.09.png
Affichages : 210
Taille : 20,8 Ko

    Si vous etes encore motivés pour m'aider
    Fichiers attachés Fichiers attachés

  4. #4
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par VBAeater Voir le message
    Je met ... ainsi qu'un XLS avec l'avant en haut et l'après en bas
    Désolé. C'est le genre d'extension que je redoute le plus, encore que par habitude, je préfère qu'on m'évite cette tâche de devoir chercher à comprendre en téléchargeant un fichier, même pour un fichier brut .txt.
    Il suffit que tu t'expliques assez bien. Le fichier, c'est à ceux qui veulent s'assurer de proposer une solution adaptée de te le réclamer.

    Si vous etes encore motivés pour m'aider


    Tu es bien marrant toi.
    Allez j'ai la comprenette parfois asse fine, parfois .
    Je vais te relire pour bien cerner, si d'ici là tu peux apporter des points d'éclaircissements qui peuvent m'aider ou d'autres, car je laisse tomber quand je ne comprends pas l'objectif de la chose. Parfois même l'utilité. C'est au gré des humeurs du jour.

    Edit :
    M'enfin :
    J'ai écrit un code me permettant de copier une ligne (en l'occurrence A2) pour ensuite la coller plusieurs fois en dessous (je ne prend que les champs allant de A à P).
    Par la suite, je copie 1 par 1 les cases Q2, R2, S2, T2, U2 ,V2 pour les coller sur la colonne QX correspondante.
    Je suis sûr que cet extrait est assez claire, que les images confirment ce qu'il faut comprendre, que le fichier est inutile, que l'exemple de code qui t'a été proposé va dans ce sens.
    Peut-être faudrait aménager pour l'insertion de lignes pour éviter un décalage avec les données des colonnes adjacentes.
    Edit 2:
    Je te suggères de modifier la ligne de code Range("q3:q9")... par A3:A9. peut-être ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    Et bien! Que de méfiance!

    La seule chose que je cherche est de transformer mon tableau comme representé sur l'image "avant" en image "après".
    Je n'ai forcé personne a ouvrir mon xls, c'est la raison pour laquelle j'ai posté des photos.

    Je pensais etre mieux accueilli sur un forum que l'on m'a conseillé (mon prof de prog mobile de l'année derniere étant redacteur/moderateur sur le site).

    Je n'ai ni menacé ni agressé personne, je pense donc que ce n'est pas des manières de parler à quelqu'un cherchant de l'aide.

  6. #6
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par VBAeater Voir le message
    ... je pense donc que ce n'est pas des manières de parler à quelqu'un cherchant de l'aide.
    Doucement. Pourquoi tu t'emportes pour presque rien ?

    Relis les Edits de ma réponse précédente..
    Je dois te dire que ce ne sont pas des réactions convenables à quelqu'un qui vient chercher de l'aide.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/08/2016, 15h46
  2. [XL-2013] VBA - Création d'une Boucle à partir d'un Tableau
    Par m.renauld dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/12/2014, 15h09
  3. [Débutant] Création d'une dll à partir d'un code Matlab
    Par JNdrix dans le forum MATLAB
    Réponses: 4
    Dernier message: 27/11/2014, 13h11
  4. Création d'une image à partir de son code binaire
    Par thefaycal dans le forum ASP
    Réponses: 11
    Dernier message: 18/05/2006, 17h39
  5. [Net]Création d'une URL à partir d'une File
    Par maxvador dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 11/12/2005, 21h22

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