Comment ajouter un nombre X de lignes après chaque ligne

Sebro -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un fichier excel reprenant une liste de magasin en colonne A.
Pour chaque magasin je voudrais ajouter une série de données en colonne B.
Pour ce faire, je voudrais rajouter un nombre de ligne entre le magasin a en cellule A1 et le magasin b en cellule A2.
L'ajout des lignes se ferait avant l'ajout des données en colonne B.

Comment puis-je réaliser cela?

Merci d'avance pour votre aide si précieuse!
A voir également:

1 réponse

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Utilises un tableau structuré et la commande Ctrl + Plus
https://fauconnier.developpez.com/tutoriels/tableaux-structures/
0
Sebro
 
Merci malheureusement c'est ce que je fais actuellement mais la liste se compose de 300 magasins entre lesquels je dois rajouter (dans différentes sheets) un nombre de lignes qui diffère d'une sheet à l'autre.
Par exemple sheet 1 : je dois rajouter 33 lignes entre le magasin A et le magasin B. Et donc magasin B doit passer de la cellule A2 à la cellule A35 et ainsi de suite pour les 300 magasins
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Où est le problème ?

Il suffit de sélectionner 33 lignes et de faire Ctrl + Plus
0
Sebro
 
Le problème est que je dois le faire 300 fois sur la première sheet et que je dois répéter l'opération sur plus d'une vingtaine de sheets... Donc je voudrais gagner du temps...
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
le nombre de lignes (=33) est-il toujours le même ?
Après insertion des 33 lignes, les 33 cellules de la colonne A resteront-elles vides ?
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Si les 2 réponses sont oui :
Option Explicit
Sub InsereLignesVides()
Dim wsh As Worksheet, dL&, pL&, nb%
  nb = 33
  Set wsh = ActiveSheet  'Ou autre
  With wsh
    dL = .Cells(.Rows.Count, 1).End(xlUp).Row
    Application.ScreenUpdating = False
    Do While dL > 2
      If .Cells(dL - 1, 1).Formula = "" Then
        pL = dL - .Cells(dL, 1).End(xlUp).Row - 1
        If nb - pL > 0 Then
          Rows(dL).Resize(nb - pL).Insert Shift:=xlDown
        End If
        dL = dL - pL
      Else
        Rows(dL).Resize(nb).Insert Shift:=xlDown
      End If
      dL = dL - 1
    Loop
    Application.ScreenUpdating = True
  End With
End Sub

Sub SupprimeLignesVides()
Dim wsh As Worksheet, dL&
  Set wsh = ActiveSheet  'Ou autre
  Application.ScreenUpdating = False
  With wsh
    dL = .Cells(.Rows.Count, 1).End(xlUp).Row
    Do While dL > 1
      If .Cells(dL, 1).Formula = "" Then
        .Cells(dL, 1).EntireRow.Delete
      End If
      dL = dL - 1
    Loop
  End With
  Application.ScreenUpdating = True
End Sub
0