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 :

[VBA][Dupliquer une colonne]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut [VBA][Dupliquer une colonne]
    Hello les gens,

    J'ai pondu le code suivant, et sur l'étape Step4 je cherche à dupliquer (élégamment) la colonne E de ma feuille tout simplement (juste après la colonne E en fait).
    Je suis certain que la question a du être abordé ici ou là mais je n'arrive pas à trouver.

    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
    39
    40
    41
    42
    43
    44
    45
    46
     
     
    Sub openAndTransfomTheExtract(ByVal extractFileName As String, ByVal extractionDataSheetName As String, ByRef extractionWB As Workbook)
    'Ouvre le fichier cible
    extractFileName = Application.GetOpenFilename()
    Set extractionWB = Workbooks.Open(Filename:=extractFileName)
     
    'Convertir l'extraction au format attendu et supposé être immuable:
    'Supprimer l'image, les 3+1 lignes, duppliquer la colonne "Création" en "Création2", créer Tableau1, affecter formule à "Création2"
    'With Sheets(extractionDataSheetName)
    With extractionWB.Worksheets(extractionDataSheetName)
        'Step1: delete img
        .Shapes.Range(Array("Picture 1")).Delete
        'Step2: delete 3 first lines
        .Rows("1:3").Delete Shift:=xlUp
        'Step3: delete last line
        '.Rows(.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row).Clear
        .Rows(.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row).Delete
        'Step4: Duplicate column E
        '.Range("E:E").Select
        ''.Columns("E:E").Select
        ''Selection.Copy
        '.Column("E:E").Insert
        '.Range("E:E").Copy [E1] 'Shift:=xlToRight
        'extractionWB.Worksheets.FillAcrossSheets Range("E:E"), xlFillWithAll
        '.Columns("E:E").Copy .Columns("E:E")
        ''Selection.Insert Shift:=xlToRight
        Application.CutCopyMode = False
        'Step5: Rename Column F
        .Range("F1").FormulaR1C1 = "Création2"
     
        'Step6: create Tableau1
        .ListObjects.Add(xlSrcRange, .UsedRange(), , xlYes).Name = _
           "Tableau1"
     
        'Step7: affecter la formule à la colonne "Création2"
        .Range("F2").Select
        ActiveCell.FormulaR1C1 = _
            "=CONCATENATE(YEAR( [@Création]),""/"",IF(MONTH([@Création])<10,""0"",""""),MONTH([@Création]))"
     
    End With
     
     
     
     
    End Sub
    PS: Je bute également sur un autre point, mais cela fera l'objet de nouveaux post?
    Je souhaite créer un tableau avec ma feuille une fois mais modification réalisée:
    Nom : Sans titre.jpg
Affichages : 832
Taille : 17,9 Ko

    Merci beaucoup à tous pour votre contribution.

  2. #2
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour,
    j'ai testé ça chez moi, ça semble faire ce que vous souhaitez, vous n'avez plus qu'a l'adapter à vos besoins
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test()
    Dim Ws As Worksheet
    Set Ws = Sheets("Feuil1")
    With Ws
    Range("B:B").Insert (Column)
    Range("B:B").Value = Range("A:A").Value
    End With
    End Sub
    Cordialement

  3. #3
    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
    Plus sûr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Columns(1).Copy
    Columns(2).Insert

  4. #4
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Plus sûr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Columns(1).Copy
    Columns(2).Insert
    ça écrase le contenu d'une colonne (en l'occurrence indice 2) au lieu de dupliquer non ? Je souhaite en dupliquant insérer mes valeurs (au format source) dans une nouvelle colonne et ce juste après la colonne source.

  5. #5
    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
    Avant de poser la question, fais le test.

    "Inser", c'est pourtant parlant comme nom de méthode, non ?

  6. #6
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    Merci pour vos réponse.
    @Menhir:
    ça marche bien mais ma question portait sur l'indice.
    Du coup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Columns(5).Copy 'colonne E
    Columns(5).Insert'colonne E
    Marche bien pour moi.

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

Discussions similaires

  1. Code Vba, comparer une colonne avec une autre
    Par Michael54 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/02/2015, 14h20
  2. [XL-2007] VBA "défusionner" une colonne
    Par admdg dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/11/2014, 14h46
  3. [XL-2007] [Problème Maro Vba ] Exporter une colonne en fichier Texte
    Par TuPicol dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/03/2014, 21h11
  4. dupliquer une colonne
    Par esperal dans le forum R
    Réponses: 2
    Dernier message: 24/12/2012, 18h07
  5. Access Vba Figer Une Colonne A Un Instant
    Par titeZ dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/07/2007, 22h00

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