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 :

Modification de tableaux de données de colonnes en lignes [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Par défaut Modification de tableaux de données de colonnes en lignes
    Bonjour,

    Dans une feuille de calcul, le code ci-dessous me permet de copier 200 lignes des colonnes A à D et de les coller en dessous 80 fois :

    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
    Range("A2:D200").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
     
    Dim nb As Long, nblig As Long, c As Range, i As Long
     
    nblig = Selection.Rows.Count
    Set c = Selection.Range("A2:d200")
    Selection.Copy
    Application.ScreenUpdating = False
    For i = 1 To 80
    c.Offset(nblig * i).Resize(Selection.Rows.Count, Selection.Columns.Count) = Selection.Value
    Next i
    Application.CutCopyMode = False
    End Sub
    Je cherche à reproduire cette action par colonne, tant que l’en-tête de la colonne suivante n’est pas vide (colonnes F, G, H…) et copier les données dans la colonne E, en dessous de celles déjà copiées (lignes 201, 401…).
    Je cherche une macro pour cette opération qui est à réaliser pour plusieurs tableaux qui ont plus de 100 colonnes.

    Espérant être clair, je vous remercie pour votre aide

    Pierre

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Comme ta macro pique un peu les yeux, je l'ai réécrite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       Dim Source As Range, Fois As Long
       Set Source = Range("A2:D200")
       For Fois = 1 To 80
          Source.Copy Cells(Row.Count, 1).End(xlUp).Offset(1, 0)
       Next Fois
    Pour copier les colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Col As Long
    Col = 6
    While Cells(1, Col) <> ""
       Range(Cells(2, Col), Cells(Rows.Count, Col).End(xlUp).Copy Cells(Rows.Count, 5).End(xlUp).Offset(1, 0)
       Col = Col + 1
    Wend
    Je n'ai pas testé, tu auras donc peut-être du débugage à faire.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Par défaut
    Bonjour,

    Merci pour la réponse, lorsque je lance l'une ou l'autre macro, les lignes ci-dessous bloquent (objet attendu ou séparateur de liste)...je dois préciser des éléments dans ces lignes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Source.Copy Cells(Row.Count, 1).End(xlUp).Offset(1, 0)
     
    Range(Cells(2, col), Cells(Rows.Count, Col).End(xlUp).Copy Cells(Rows.Count, 5).End(xlUp).Offset(1, 0)
       Col = Col + 1

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    C'est pour ça que j'ai écrit que TU aurais peut-être du débugage à faire.
    Essaye de comprendre le code que je t'ai transmis plutôt que de faire un simple "copier/coller".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Source.Copy Cells(Row.Count, 1).End(xlUp).Offset(1, 0)
    J'ai oublié un "s" à "Rows".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(2, Col), Cells(Rows.Count, Col).End(xlUp).Copy Cells(Rows.Count, 5).End(xlUp).Offset(1, 0)
    J'ai oublié une ")" après le "xlUp".

    Essaye quand même d'un peu chercher par toi-même avant de demander.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Par défaut
    C'est noté, je cherche comprendre et à utiliser ce code et je reviendrai vers vous.

    J'essaye de passer le cap des enregistrements de macro et copier coller de codes déjà fait...je suis très débutant dans cette démarche.

    Merci pour la réactivité des réponses,

    Cdt,

    Pierre

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par SABORD Voir le message
    J'essaye de passer le cap des enregistrements de macro et copier coller de codes déjà fait...je suis très débutant dans cette démarche.
    Si tu veux progresser, il faut passer un peu de temps à te former pour avoir des bases sérieuses.
    Lire ça : https://bidou.developpez.com/article/VBA/

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

Discussions similaires

  1. [AC-2016] Demande d'aide pour créer une base de données en maths
    Par syllabozoo dans le forum Access
    Réponses: 8
    Dernier message: 24/09/2017, 22h45
  2. demande d'aide pour modification d'une macro
    Par personalités dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/07/2015, 21h07
  3. Demande d'aide pour modéliser ma base de données
    Par nell57 dans le forum Modélisation
    Réponses: 2
    Dernier message: 03/01/2014, 23h03
  4. Réponses: 0
    Dernier message: 06/11/2012, 18h38
  5. Réponses: 4
    Dernier message: 03/06/2012, 09h08

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