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 :

Implémenter une colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2023
    Messages : 9
    Par défaut Implémenter une colonne
    Bonjour à tous,

    bonjour

    Voici le fichier Excel à partir duquel je dois réaliser un code VBA qui fera l'action suivante :

    Copier la colonne C2 de la feuil1 et venir l'insérer dans la feuil2 à la suite des colonnes déjà présentes. l'entête de cette nouvelle colonne doit prendre le nom de catégorie_mois_année.

    Pour résumer, chaque mois je vais devoir faire cette action et je veux créer une nouvelle colonne avec une entête (catégorie_mois_année) à chaque nouveau moi en y collant les données de la feuil1.

    Merci d'avance pour votre aide!
    Mariefichier_pour_exemple.xlsxfichier_pour_exemple.xlsxfichier_pour_exemple.xlsxfichier_pour_exemple.xlsx

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, je ne vois pas trop l'intérêt de développer une macro vba, après tout il s'agit juste de copier/coller une colonne non ? Ou alors quelque chose m'échappe

  3. #3
    Membre habitué
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2023
    Messages : 9
    Par défaut
    Bonjour Franc,

    Je suis assez d'accord, cependant c'est ce qu'on me demande de faire
    Je sais que c'est possible en VBA mais je suis trop novice pour le faire!

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Voici une macro qui fait le job. A copier dans un nouveau module de ton classeur et lancer via l'onglet Développeur --> Macro.
    Quand la macro s'exécute, elle prend automatiquement en compte le mois en cours, donc si tu exécutes plusieurs fois sur le même mois tu auras plusieurs colonnes avec le même mois.
    La macro cherche la première colonne vide disponible, donc si tu remplis ta feuille d'avance avec les entêtes des prochains mois, la colonne sera copiée après, à ne pas faire donc.
    Si nécessaire, changer le nom des feuilles.

    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
    38
    Sub CopierColonne()
     
        Dim ws1 As Worksheet
        Dim ws2 As Worksheet
        Dim lastRow As Long
        Dim lastColumn As Long
        Dim monthYear As String
     
        ' Définir les feuilles de calcul
        Set ws1 = ThisWorkbook.Sheets("Feuil1")
        Set ws2 = ThisWorkbook.Sheets("Feuil2")
     
        ' Obtenir le dernier numéro de ligne de la colonne C dans Feuil1
        lastRow = ws1.Cells(ws1.Rows.Count, "C").End(xlUp).Row
     
        ' Obtenir le dernier numéro de colonne dans Feuil2
        lastColumn = ws2.Cells(1, ws2.Columns.Count).End(xlToLeft).Column
     
        ' Obtenir le mois et l'année en cours
        monthYear = Format(Date, "mmmm") & "_" & Format(Date, "yyyy")
     
        ' Copier les valeurs de la colonne C de Feuil1 vers Feuil2
        ws1.Range("C2:C" & lastRow).Copy
     
        ' Coller les valeurs dans la première colonne vide de Feuil2 à partir de la ligne 2
        ws2.Cells(2, lastColumn + 1).PasteSpecial Paste:=xlPasteValues
     
        ' Renommer l'entête de la nouvelle colonne dans Feuil2
        ws2.Cells(1, lastColumn + 1).Value = "Catégorie_" & monthYear
     
        ' Centrer l'entête en hauteur et en largeur
        ws2.Cells(1, lastColumn + 1).HorizontalAlignment = xlCenter
        ws2.Cells(1, lastColumn + 1).VerticalAlignment = xlCenter
     
        ' Ajuster la largeur de colonne à la largeur de l'entête
        ws2.Columns(lastColumn + 1).AutoFit
     
    End Sub

  5. #5
    Membre habitué
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2023
    Messages : 9
    Par défaut
    Mille mercis Franc pour le temps que tu as passé à m'aider!
    Excellente journée

Discussions similaires

  1. Implémentation auto de "0" dans une colonnes avec "TRIGGER"
    Par DStel dans le forum Développement
    Réponses: 4
    Dernier message: 04/10/2012, 18h47
  2. Réponses: 2
    Dernier message: 27/04/2009, 11h39
  3. Check sur une colonne de table "en cours"
    Par in dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/07/2003, 09h47
  4. [PostGres] Suppresion d'une colonne.
    Par Gandalf24 dans le forum Requêtes
    Réponses: 4
    Dernier message: 23/05/2003, 09h02
  5. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44

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