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 :

Insérer une ligne blanche au dessus de chaque cellule non vide


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Comptable
    Inscrit en
    Septembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2
    Par défaut Insérer une ligne blanche au dessus de chaque cellule non vide
    Bonjour,

    Merci par avance à ceux qui prendront le temps de me lire/ répondre.

    J'ai un fichier où j'aimerais à l'aide d'une macro insérer une ligne vide au dessus de chaque case non vide dans la colonne A.

    Ex :

    XX
    vide
    XX
    vide
    vide
    XX

    Doit devenir
    XX
    vide
    "ligne vide"
    XX
    vide
    vide
    "ligne vide"
    XX

    J'espère être assez clair.

    Encore merci par avance,

    Bien cordialement,

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Ajouter des lignes vides dans une feuille Excel est généralement une mauvaise idée.
    Il est préférable d'augmenter la hauteur des lignes concernées.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Comptable
    Inscrit en
    Septembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2
    Par défaut
    Bonjour

    Merci pour votre réponse, mais dans le cas présent, j'ai besoin d'avoir des lignes insérées.

    Bien cordialement,

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Ici un idée de code :

    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
    Public Sub InsererLineVide()
        Dim feuille As Worksheet
        Set feuille = ThisWorkbook.Worksheets("Feuil1")
     
        Dim cellule As Range
        Dim iLigne As Long: iLigne = 2
     
        Do While iLigne <= feuille.Rows.Count
            Set cellule = feuille.Cells(iLigne, 1)
            cellule.Select
     
            If cellule.Value <> "" Then
                Call feuille.Rows(cellule.Row).Insert
                iLigne = iLigne + 1 'Saute la nouvelle ligne
            End If
     
            iLigne = iLigne + 1
        Loop
     
        set feuille=Nothing
        set cellule=Nothing
    End Sub
    Le cellule.Select n'est pas indispensable, il sert juste à voir où en est.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Une autre piste à tester

    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
    Sub essai_insert_vide()
     
    Dim derlign As Long, i As Long
    Dim c As Range, P As Range
     
    With Feuil1
        derlign = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 1 To derlign
            If .Cells(i, 1).Value <> "" Then
                    If P Is Nothing Then
                            Set P = .Cells(i, 1)
                    Else
                            Set P = Union(P, .Cells(i, 1))
                    End If
            End If
            '.Insert shift:=xlUp
        Next i
    End With
     
    For Each c In P
            c.EntireRow.Insert Shift:=xlUp
    Next c
     
    Set P = Nothing
     
    End Sub

Discussions similaires

  1. Réponses: 17
    Dernier message: 10/07/2018, 10h18
  2. Réponses: 2
    Dernier message: 19/10/2015, 11h59
  3. Boucle sur chaque cellule non vide d'une ligne
    Par janigrel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/02/2015, 15h46
  4. [XL-2007] Insèrer une ligne au dessus ET en dessous
    Par Vvvince dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/04/2013, 23h43
  5. Réponses: 14
    Dernier message: 06/02/2006, 11h31

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