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 :

Macro Copier Coller avec fonction DECALER


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mai 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2018
    Messages : 5
    Par défaut Macro Copier Coller avec fonction DECALER
    Bonjour à tous,

    Completement novice dans le VBA je souhaite mettre en place une macro qui me permettrait de copier/coller des cellules puis de les insérer mais de manière roulante, je m'explique :

    Imaginons des colonnes
    ABCD*EF*G
    Je souhaite copier/coller les colonnes EF et les insérer devant G
    Donc la colonne G deviendrait I
    = ABCDEF-*GH*-I

    Puis en réactivant la macro refaire la même chose
    Copier *GH* qui collé donnerait IJ et I deviendrait K
    = ABCDEFGH-IJ-K

    Ainsi de suite, donc toujours copier coller les 2 colonnes avant la dernière et les rajouter devant celle-ci

    J'ai tenté de faire un enregistrement de macro, puis rajouter la fonction décaler (offset) mais ça ne marche absolument pas
    Quelqu'un aurait il une solution ?

    Voici mon code erroné :
    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
    Sub Macro6()
    '
    ' Macro6 Macro
    '
     
    '
        Columns("E:F").Select
        ActiveCell.Offset(0, 2).Activate
        Selection.Copy
        Columns("G:G").Select
        ActiveCell.Offset(0, 2).Activate
        Selection.Insert Shift:=xlToRight
        Range("H7").Select
        ActiveCell.Offset(0, 2).Activate
        Application.CutCopyMode = False
        Range("G1").Select
        ActiveCell.Offset(0, 2).Activate
        ActiveCell.FormulaR1C1 = "A MODIFIER"
        Range("H1").Select
        ActiveCell.Offset(0, 2).Activate
        ActiveCell.FormulaR1C1 = "A MODIFIER"
        Range("H2").Select
    End Sub

    Merci pour votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    contrôle de gestion - data management
    Inscrit en
    Mai 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : contrôle de gestion - data management
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2018
    Messages : 33
    Par défaut
    Bonjour, veillez à toujours avoir des titres sur la ligne 1 et ceci devrait faire l'affaire :

    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
    Sub offset()
     
    Dim Wb As Workbook
    Dim Ws As Worksheet
    Set Wb = ThisWorkbook
    Set Ws = Wb.Worksheets("nomfeuille") 'changer "nomfeuille" par le nom de la feuille sur laquelle la macro doit agir
     
    For i = 1 To 3 'dans l'exemple 3 est le nombre de fois que la macro doit éxécuter la manipulation
     
        lastCol = Ws.Range("A1").End(xlToRight).Column
     
        For j = 1 To 2
            Columns(lastCol).EntireColumn.Insert
        Next j
     
        Range(Columns(lastCol - 2), Columns(lastCol - 1)).Copy
        Range(Columns(lastCol), Columns(lastCol + 1)).PasteSpecial xlPasteAll
     
    Next i
     
    End Sub
    A+

  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
    Je ne suis pas sûr d'avoir compris ta demande, mais si ce que tu souhaites c'est copier/insérer les deux colonnes précédant la dernière, ceci devrait le faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Copier2AVD()
        Dim Der As Range
     
        Der =  ActiveSheet.UsedRange.Columns.Count
        Range(Cells(1, Der - 2), Cells(1, Der - 1)).EntireColumn.Copy
        Cells(1, Der).EntireColumn.Insert Shift:=xlShiftToRight
        Application.CutCopyMode = False
    End Sub

  4. #4
    Membre à l'essai
    Femme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mai 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2018
    Messages : 5
    Par défaut
    Bonjour à tous

    Tous les mois je dois mettre à jour un fichier de suivi
    Ex :
    Janvier, Février, Mars, Avril ... Commentaire

    Je voudrais donc une macro qui puisse me copier par exemple AVRIL et le copier/coller et insérer (à renommer MAI) devant la cellule COMMENTAIRE et ainsi de suite chaque mois
    Donc ensuite le mois suivant copier le mois de MAI puis le réinsérer devant COMMENTAIRE

    Voila,
    Je ne suis pas sure d'être claire
    Voici un schema de ce que je voudrai (peut-être que ça aidera)




    Fichier actuel :
    Janvier - Février - Mars - Avril - Commentaire

    Ce que la macro doit exécuter :
    1) Copier le mois d'Avril
    2) L'insérer devant la cellule Commentaire

    Janvier - Février - Mars - Avril -*Avril (que je renommerai manuellement MAI)* - Commentaire
    ==> Janvier - Février - Mars - Avril - Mai - Commentaire

    Et le mois suivant rebelotte
    Fichier : Janvier - Février - Mars - Avril - Mai - Commentaire

    Macro :
    1) Copier Mai
    2) Insérer le mois de Mai devant Commentaire

    Donc :
    Janvier - Février - Mars - Avril - Mai -*Mai (à renommer Juin)* - Commentaire
    Etc jusqu'a décembre.

    Je ne sais pas si c'est possible mais je l'espère
    Sinon, merci encore pour votre aide !

  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
    Citation Envoyé par beginnervba Voir le message
    Je ne sais pas si c'est possible mais je l'espère
    Tu ne sembles pas avoir remarqué que des solutions t'ont déjà été proposées.
    Les as-tu au moins testées ?

  6. #6
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Au delà des solutions proposées, je m'interroge sur le copier-coller d'un mois existant pour en faire un autre : dans nombre de cas, ce type de pratique entraîne des erreurs.

    Soit Mai est strictement identique à Avril et on peut s'interroger sur la raison de dupliquer, soit Mai n'a rien à voir avec Avril et il y risque d'oublier de supprimer ou modifier là où c'est différent, auquel cas il vaudrait mieux utiliser une colonne type que la colonne d'un mois rempli...

Discussions similaires

  1. [XL-2003] Macro Copier Coller Avec CheckBox et Conditions
    Par HoLbOrN dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 15/11/2017, 13h09
  2. [XL-2002] Macro Copier coller avec formule
    Par Nathalie35000 dans le forum Excel
    Réponses: 3
    Dernier message: 23/12/2013, 20h42
  3. [XL-2007] Macro- Copier-coller avec conditions
    Par natou_pc dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 12/05/2013, 18h57
  4. [XL-2000] macro copier coller avec condition ne marche pas
    Par antfo dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/03/2010, 10h54
  5. Macro copier/coller avec tri
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2008, 12h44

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