Inserer des lignes jours sur separer une periode sur 2 colonnes

Bonjour

Je souhaite créer un bouton pour actionner une macro capable de :

- insérer et recopier autant de fois une ligne qu'il y a de jours dans une période répartie sur 2 colonnes (date début - date fin)

Exemple :

image

Un passionné saurait il m'aider en ce sens ? Bien cordialement, bon week end

Je viens de tenter celà, mais je bloque pour ajouter un jour à "B"

Private Sub CommandButton1_Click()
Dim Dlig As Integer
Dim X As Integer

Dlig = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row

For X = Dlig To 3 Step -1
If Day(Cells(X, "B")) <> Day(Cells(X, "C")) Then
Rows(X + 1 & X + 1 & X + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Cells(X + 1, "A").Value = Cells(X, "A").Value
Cells(X + 1, "B").Value = CDate(Cells(X, "B").Value)
Cells(X + 1, "C").Value = CDate(Cells(X, "C").Value)


End If
Next X
End Sub

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?

14classeur1-v1.xlsm (24.07 Ko)
Option Explicit

Dim tablo, tabloR()
Dim i&, j&, k&, n&, nb&

Sub InsérerDesLignes()

    tablo = Range("A1").CurrentRegion
    k = 0
    For i = 2 To UBound(tablo, 1)
        nb = DateValue(tablo(i, 3)) - tablo(i, 2)
        If nb = 0 Then
            ReDim Preserve tabloR(1 To 4, 1 To k + 1)
            tabloR(1, k + 1) = tablo(i, 1)
            tabloR(2, k + 1) = tablo(i, 2)
            tabloR(3, k + 1) = tablo(i, 3)
            tabloR(4, k + 1) = tablo(i, 4)
            k = k + 1
        Else
            For n = 1 To nb + 1
                ReDim Preserve tabloR(1 To 4, 1 To k + 1)
                tabloR(1, k + 1) = tablo(i, 1)
                tabloR(2, k + 1) = tablo(i, 2) + n - 1
                tabloR(3, k + 1) = tablo(i, 2) + n - 1
                tabloR(4, k + 1) = tablo(i, 4)
                k = k + 1
            Next n
        End If
    Next i
    Range("A2").Resize(UBound(tabloR, 2), 4) = Application.Transpose(tabloR)
End Sub

Bye !

Bonjour GMB

Tu n'imagines comment tu me simplifies la vie.... cela fait trois jours complets avec mon collègue que nous recherchons différentes solutions pour des tableaux avec plus de 1.000 lignes ....

Il y a juste un petit bug pour la troisième ligne, il ne prend pas en compte le changement de mois.... est il possible d'y remédier ?

Un grand merci en attendant !!! Ca mériterait au moins un apéro .... Yo




Bonsoir à tous !

Une proposition via Power Query :

Sur la base du fichier de Gmb (merci à lui pour le temps consacré à la création du fichier.... ) et à partir du tableau structuré (t_Data), Power Query retourne un tableau qui devrait correspondre à l'attente exprimée. J'ai opté pour la présentation de la date fin comme indiqué dans l'image pour le test 1 et le test 2, le test 3 présentant une différence. A modifier le cas échéant.

Je précise que Power Query est nativement intégré à votre version Excel.

14yoleb56.xlsm (36.09 Ko)

Ah ! ces formats américains !

Nouvelle version.

13classeur1-v2.xlsm (24.29 Ko)

Bye !

Bonjour à tous,
Une autre proposition Power Query.
Cdlt.

11yoleb56.xlsx (19.53 Ko)

Merci à tous pour ces propositions !!!! Celà fonctionne....

Rechercher des sujets similaires à "inserer lignes jours separer periode colonnes"