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 :

Insertion des lignes avec une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    J'ai une feuille avec 5000 lignes et je voudrais qu'après 21 lignes
    6 lignes soient ajoutées si quelqu'un veux bien m'aider.

    Merci d'avance

    J'ai oublié de preciser que l'action doit se faire tous les 21 lignes de la feuille jusqu'à la fin.

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Points : 335
    Points
    335
    Par défaut
    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 Macro7()
    Dim i As Integer
     
    For i = 21 To 5000 Step 21
     
        Rows(i).Select
         Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Rows(i + 1).Select
         Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Rows(i + 2).Select
         Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Rows(i + 3).Select
         Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Rows(i + 4).Select
         Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Rows(i + 5).Select
         Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
     
    Next i
     
     
     
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Analyste financier
    Inscrit en
    Août 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste financier
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Si j'ai bien compris, tu souhaites conserver un "écart" de 21 lignes entre chaque groupe de 6 lignes insérés?

    Si c'est le cas, je pense qu'il faut alors (en complément de la réponse de had4789) suivre le nombre de groupes de 6 lignes déjà insérés afin de savoir où insérer le groupe suivant...

    Je m'explique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Insertion()
        Dim groupeDe6Lignes As Integer, i As Integer
     
        groupeDe6Lignes = 0
     
        For i = 22 To 5000 Step 21
            Rows((i + groupeDe6Lignes * 6) & ":" & (i + groupeDe6Lignes * 6) + 6).Select
            Selection.Insert Shift:=xlDown
            groupeDe6Lignes = groupeDe6Lignes + 1
        Next
    End Sub
    En espérant que cela t'aide

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Je vous remercie les gars

    Celui ci aussi marche très bien sauf que le code le fait à l'infini
    ou peut etre j'etais impatient.

    Sinon ça marche et fait bien ce que je voulais.

    Merci à vous.
    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 ajoutligne()
     
    NbLignes = Range("A1").End(xlDown).Row
    multiple = 21
    NbAjout = 6
    fin = Int(NbLignes / 21)
    i = 0
    Do
     
        Rows((multiple + 1) + (multiple + 6) * i).EntireRow.Insert
        Rows((multiple + 1) + (multiple + 6) * i).EntireRow.Insert
        Rows((multiple + 1) + (multiple + 6) * i).EntireRow.Insert
        Rows((multiple + 1) + (multiple + 6) * i).EntireRow.Insert
        Rows((multiple + 1) + (multiple + 6) * i).EntireRow.Insert
        Rows((multiple + 1) + (multiple + 6) * i).EntireRow.Insert
        NbLignes = NbLignes + 6
        i = i + 1
     
    Loop Until i = fin
     
    End Sub

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

Discussions similaires

  1. Masquer des lignes avec une condition
    Par mjp06 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/03/2019, 19h23
  2. rajouter des doublons avec une macro dans une colonne
    Par Banel dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/08/2008, 23h58
  3. Réponses: 4
    Dernier message: 24/04/2008, 09h31
  4. Modifer des liens avec une macro
    Par NemKa dans le forum VBA Word
    Réponses: 4
    Dernier message: 25/06/2007, 11h45
  5. Pb d'insertion d'image avec une macro sur Excel 2007
    Par tigrou42 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/05/2007, 00h48

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