Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Insertion paremetrable d'une ligne (vide) sur deux

  • Initiateur de la discussion Initiateur de la discussion rdaniel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rdaniel

XLDnaute Nouveau
Bonjour, 🙂je souhaiterais insérer une ligne vide toutes les deux lignes dans un tableau contenant un nombre variable de lignes. de 200 à 2500 environ
j'ai bien essayé d'enregistrer une macro mais à la cinquatieme ligne...

Mes connaissance en VBA ne me permette pas (plus)🙄d'automatiser cette tache. j'imagine bien une boucle avec la valeur de répétition saisie dans une boite de dialogue mais je ne peux pas allez plus loin.
Donc l’idéal serait ;
j'ai un tableau de X lignes non vide il faudrait insérer X lignes vides; une entre chaque ligne de données : au final le tableau possède 2X lignes
En vous remerciant de vous intéressez a mon petit projet.
Cordialement 🙂
Daniel
 
Bonsoir rdaniel, mapomme,

Si l'on ne traite que des valeurs ceci est très rapide :
VB:
Sub Insertion()
Dim tablo, ncol%, resu(), i&, n&, j%
With Feuil1 'CodeName de la feuille
    tablo = IIf(.UsedRange.Count = 1, .UsedRange.Resize(, 2), .UsedRange)
    ncol = UBound(tablo, 2)
    ReDim resu(1 To 2 * UBound(tablo), 1 To ncol)
    For i = 2 To UBound(tablo)
        If tablo(i, 1) <> "" Then
            n = n + 1
            For j = 1 To ncol
                resu(n, j) = tablo(i, j)
            Next j
        End If
        n = n + 1
    Next i
    '---restitution---
    .[A2].Resize(n, ncol) = resu
End With
End Sub

Sub RAZ()
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With Feuil1.UsedRange
    .Cells(1).EntireColumn.Insert
    .Columns(0) = "=REPT(1,RC[1]<>"""")"
    .Columns(0) = .Columns(0).Value
    Union(.Columns(0), .Cells).Sort .Columns(0), Header:=xlYes 'tri pour accélérer
    Intersect(.Columns(0).SpecialCells(xlCellTypeBlanks).EntireRow, .Cells).Delete xlUp
    .Columns(0).EntireColumn.Delete
End With
End Sub
A+
 

Pièces jointes

Dernière édition:
 
merci , excellent parfait problème résolu
je ne sais pas si il y a quelque chose a faire pour marquer resolu
Cordialement
Daniel
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…