XL 2013 Formule ou macro pour intercaller des cellules vides dans une liste de noms

  • Initiateur de la discussion Initiateur de la discussion CHLOE90
  • 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 !

CHLOE90

XLDnaute Junior
Bonsoir le Forum,

J'essaye en vain depuis cet après midi de trouver une solution à mon problème et je me résous à vous écrire.
Voilà, j'ai une liste de noms dans un colonne qui est très longue et je souhaiterais dans la colonne voisine disposer de la même liste mais que les noms soient séparés par deux cellules vides.
Je vous joins un petit fichier pour illustration.
Merci pour votre bienveillance

Chloé
 

Pièces jointes

Hello
un exemple par macro avec ce code
VB:
Sub intercalle()
Dim tabloinit() As Variant
Dim tabloFinal() As Variant

With ActiveSheet
    Fin = .Range("B" & .Rows.Count).End(xlUp).Row
    tabloinit = .Range("B10:B" & Fin).Value
    ReDim tabloFinal(1 To 3 * UBound(tabloinit, 1), 1 To 1)
    
    For i = LBound(tabloinit, 1) To UBound(tabloinit, 1)
        tabloFinal(3 * (i - 1) + 1, 1) = tabloinit(i, 1)
        tabloFinal(3 * (i - 1) + 2, 1) = ""
        tabloFinal(3 * (i - 1) + 3, 1) = ""
    Next i
    
    .Range("C10").Resize(UBound(tabloFinal), 1) = tabloFinal
End With
End Sub
 
Hello

Le meme code avec quelques commentaires..
VB:
Sub intercalle()
'déclaration de deux tableaux vba
Dim tabloinit() As Variant
Dim tabloFinal() As Variant

With ActiveSheet 'dans la feuille active
    Fin = .Range("B" & .Rows.Count).End(xlUp).Row 'on recupère la dernière ligne non vide de la colonne B
    tabloinit = .Range("B10:B" & Fin).Value 'on met les valeurs dans le tablo
    ReDim tabloFinal(1 To 3 * UBound(tabloinit, 1), 1 To 1) 'on redimensionne le tablo final sur 3fois la taille du tabloinit (3 = 1 nom + 2 lignes vides)
    
    For i = LBound(tabloinit, 1) To UBound(tabloinit, 1) 'pour chaque ligne du tablo init
        tabloFinal(3 * (i - 1) + 1, 1) = tabloinit(i, 1) 'on met le nom dans le tablofinal
        tabloFinal(3 * (i - 1) + 2, 1) = "" 'on ajoute deux lignes vides
        tabloFinal(3 * (i - 1) + 3, 1) = ""
    Next i
    
    .Range("C10").Resize(UBound(tabloFinal), 1) = tabloFinal 'on colle le tablofinal dans la feuille
End With
End Sub
 
- 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

Retour