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

Excel Discussion :

Insertion de lignes automatiques avec copie suivant condition


Sujet :

Excel

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Mars 2015
    Messages : 2
    Par défaut Insertion de lignes automatiques avec copie suivant condition
    Bonjour à tous,

    Je rencontre un soucis et j'ai besoin de vos lumières. Je n'arrive pas à passer, dans une feuille de calcul de :

    A B
    L1 a x1, x2
    L2 b x3
    L3 c x4, x5, x6

    au résultat suivant :

    A B
    L1 a x1
    L1' a x2
    L2 b x3
    L3 c x4
    L3' c x5
    L3' c x6

    Sachant que le fichier comporte plusieurs centaines de lignes, je ne sais pas comment m'y prendre.

    Merci pour votre aide.

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour Toresupra,

    Voilà un petit code qui fait la manip sur ton exemple :

    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
    Sub test()
        'Variable de la dernière ligne à traiter
    Dim derniere_ligne As Long
    derniere_ligne = ActiveSheet.[A1].End(xlDown).Row
        'Déclaration des variables de boucles er d'indice de tableau
    Dim i As Long: Dim j As Long: Dim longueur_tab As Long: Dim t() As String
        'Boucle décrémenté (step -1) pour monter dans les lignes en insérant vers le bas sans changer le dessus
    For i = derniere_ligne To 1 Step -1
        t = Split(Cells(i, 2).Value, ", ")
        If UBound(t) = 0 Then
            'rien car une valeur donc une seule ligne et pas de copie à faire
        Else
            Cells(i, 2).Value = t(0)
            For j = 1 To UBound(t)
                Rows(i + j - 1).Copy
                Rows(i + j - 1).Insert Shift:=xlDown
                Application.CutCopyMode = False
                Cells(i + j, 2).Value = t(j)
            Next j
        End If
    Next i
     
     
    End Sub
    Petites précisions :
    J'ai supposé que dans ta colonne à spliter le séparateur est ", " (virgule suivi d’espace)
    J'ai placé ton exemple dans la plage [A1:B3] donc certains indice de colonne sont en dur dans mon code.

    Tu as juste à adapter

  3. #3
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Citation Envoyé par Toresupra Voir le message
    Sachant que le fichier comporte plusieurs centaines de lignes, je ne sais pas comment m'y prendre.
    Oublié un truc important :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test
     
    Application.ScreenUpdapting = false 'en debut de code
     
        'tout le code
     
    Application.ScreenUpdapting = true 'en fin de code
     
    End sub
    Sinon ça pique au yeux pendant l'execution

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Mars 2015
    Messages : 2
    Par défaut
    Super, c'est parfait.
    Je te remercie.

    Par contre la commande pour masquer l'affichage fait planter la macro...

  5. #5
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    En première ligne (après le Sub) : Application.ScreenUpdating = False.

    et en dernière ligne (avant le End Sub) : Application.ScreenUpdating = True.

    Chez moi ça marche très bien

Discussions similaires

  1. Retour à la ligne automatique avec un viewbox
    Par Oberown dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 06/07/2011, 22h10
  2. retour à la ligne automatique avec la balise <pre>
    Par Jiyuu dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 25/04/2010, 19h08
  3. Retour à la ligne automatique avec reportlab
    Par Jiyuu dans le forum Bibliothèques tierces
    Réponses: 0
    Dernier message: 22/06/2009, 19h08
  4. Retour à la ligne automatique avec le package listings
    Par ska38 dans le forum Mise en forme
    Réponses: 6
    Dernier message: 04/01/2009, 15h42
  5. [VBA-E]Insertion de ligne automatique
    Par binouse18 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/05/2007, 17h26

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