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 de ligne à chaque nouveau nom [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut insertion de ligne à chaque nouveau nom
    Bonjour à tous

    Dans la colonne F de mon tableau j'ai des noms qui se succède et avec un nombre différent
    Les noms sont trier.

    Je cherche à insérer 3 ligne à chaque changement de nom sur la colonne F, est que dans la 3eme lignes inséré je copie la ligne 1 du tableau

    Merci pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Voici une piste :
    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
     
    Sub Inserer()
     
        Dim PlageTitre As Range
        Dim Plage As Range
        Dim I As Long
        Dim J As Integer
     
        'défini la plage des titres sur la ligne 1 de la feuille active
        'et la plage à boucler sur la colonne A à partir de A2. A adapter...
        With ActiveSheet
     
            Set PlageTitre = .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft))
            Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
     
        End With
     
        'boucle depuis le bas à la recherche des noms différents
        For I = Plage.Count - 1 To 1 Step -1
     
            'si trouvé, insère 3 lignes...
            If Plage(I + 1).Value <> Plage(I).Value Then
     
                For J = 1 To 3
     
                    Plage(I + 1).EntireRow.Insert
     
                Next J
     
                'puis colle les valeurs de la ligne des titres
                Range(Plage(I + 3), Plage(I + 3).Offset(, PlageTitre.Count - 1)).Value = PlageTitre.Value
     
            End If
     
        Next I
     
    End Sub
    Hervé.

  3. #3
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    Merci

    super ton code est implacable

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

Discussions similaires

  1. [Toutes versions] Insertion automatique de ligne à chaque ajout de feuille
    Par choup67 dans le forum Macros et VBA Excel
    Réponses: 95
    Dernier message: 03/07/2009, 10h42
  2. [Bash] Insertion texte sous chaque ligne
    Par eZula dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 16/12/2007, 18h44
  3. [Tableaux] Insertion dynamique ligne dans un tableau
    Par masseur dans le forum Langage
    Réponses: 12
    Dernier message: 28/03/2006, 14h53
  4. ouvrir un page avec un nouveau nom
    Par pmartin8 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/12/2005, 19h24

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