XL 2013 Insérer une ligne + Supprimer toutes les lignes vides après la dernière

BENAM69

XLDnaute Occasionnel
Bonjour à tous,

J'ai réussi à faire un fichier qui me permettait de mettre en forme certaines informations.
J'ai fait des recherches un peu partout sur les forums mais je n'ai pas réussi à réaliser correctement.
J'aimerai à chaque fois qu'il détecte "Délai confirmé", il m'insère une ligne juste avant cette cellule. Pour la première détection c'est nickel, mais c'est juste les autres qui ne fonctionne pas correctement.

J'aimerai aussi supprimer toutes les lignes vides après la dernière cellules non vide. Je ne veux pas que cela supprime les lignes vides entre la 1ère ligne non vide et la dernière, parce que sinon insérer une ligne quand il détecte "Délai confirmé" ne servira à rien.
En effet, j'ai juste envie qu'il me fasse les bordures de la première à la dernière ligne non vide des colonnes A à K. Mais je n'ai pas réussi donc je supprime toutes les lignes vides à partir de la dernière ligne non vide détectée.

Je sais supprimer une ligne entière mais pas conditionner pour supprimer toutes les lignes vides après la dernière ligne détectée comme non vide. :
VB:
Rows(Range("A" & Rows.Count).End(xlUp).Row).Delete


Quelqu'un saurait le code pour résoudre mes 2 problèmes ou même simplifier mon code (mais ça ce n'est pas une priorité de simplifier le code)?

Voici en PJ le fichier.

Merci de votre aide

Benam69
 

Pièces jointes

  • Test V3.xlsm
    67.1 KB · Affichages: 8

Jacky67

XLDnaute Barbatruc
Bonjour,
Par certain d'avoir compris ce qu'il faut inserer
Une piste avec une feuille modèle avec 2 plages nommées..
**Code et PJ modifiés
VB:
Sub Insérer_lignes()
    Dim OS As Worksheet    'déclare la variable OS (Onglet Source)
    Dim DL As Integer    'déclare la variable DL (Derni?re Ligne)
    Dim I As Integer    'déclare la variable I (Incr?ment)
    Set OS = Worksheets("Sheet1")    'définit l'onglet OS
    If Application.CountA(OS.[1:1]) = 11 Then
        Application.ScreenUpdating = False
        DL = OS.Cells(Application.Rows.Count, "A").End(xlUp).Row    'définit la dernière ligne éditée DL de la colonne A de l'onglet DL
        OS.Rows(DL).Delete: DL = DL - 1
        [titre1].Copy
        OS.[a1].PasteSpecial Paste:=xlPasteAllUsingSourceTheme
        OS.[a1].CurrentRegion.PasteSpecial Paste:=xlPasteColumnWidths
        For I = DL To 2 Step -1  'boucle sur toutes les lignes I du tableau des valeurs (en partant de la derniere)
            If Left(Cells(I, 1), 16) = "Délai confirmé :" Then
                [titre2].Copy
                OS.Cells(I, 1).EntireRow.Insert
            End If
        Next
        OS.[a1].CurrentRegion.Borders.Weight = xlThin
    End If
End Sub
 

Pièces jointes

  • Test V3.1.xlsm
    118.8 KB · Affichages: 6
Dernière édition:

BENAM69

XLDnaute Occasionnel
Bonjour,
Par certain d'avoir compris ce qu'il faut inserer
Une piste avec une feuille modèle avec 2 plages nommées..
**Code et PJ modifiés
VB:
Sub Insérer_lignes()
    Dim OS As Worksheet    'déclare la variable OS (Onglet Source)
    Dim DL As Integer    'déclare la variable DL (Derni?re Ligne)
    Dim I As Integer    'déclare la variable I (Incr?ment)
    Set OS = Worksheets("Sheet1")    'définit l'onglet OS
    If Application.CountA(OS.[1:1]) = 11 Then
        Application.ScreenUpdating = False
        DL = OS.Cells(Application.Rows.Count, "A").End(xlUp).Row    'définit la dernière ligne éditée DL de la colonne A de l'onglet DL
        OS.Rows(DL).Delete: DL = DL - 1
        [titre1].Copy
        OS.[a1].PasteSpecial Paste:=xlPasteAllUsingSourceTheme
        OS.[a1].CurrentRegion.PasteSpecial Paste:=xlPasteColumnWidths
        For I = DL To 2 Step -1  'boucle sur toutes les lignes I du tableau des valeurs (en partant de la derniere)
            If Left(Cells(I, 1), 16) = "Délai confirmé :" Then
                [titre2].Copy
                OS.Cells(I, 1).EntireRow.Insert
            End If
        Next
        OS.[a1].CurrentRegion.Borders.Weight = xlThin
    End If
End Sub

Salut Jacky67,

C'est parfait rien à dire c'est ce que je souhaitais.

Merci ^^

Benam69
 

Discussions similaires

Statistiques des forums

Discussions
313 206
Messages
2 096 215
Membres
106 534
dernier inscrit
JOACHIM N T