Cree un nombre de ligne x d'une cellule

Bonjour je souhaiterais cree un nombre de ligne x compris dans une cellule ici la G5 mais continuer pour tout la collone G et si le nombre est 1 ou 0.5 ne rien faire .

Et ensuite remplir la colonne de date en fonction de la date de ma ligne 5 en faisaint +1 jour achaque fois et ceci sur toute les colonne cree précedement en fonction de leur cellule mere

Merci par avance

ligne
3worrplan.xlsb (82.90 Ko)

Bonjour lbd1,

Sans fichier impossible de te donner une réponse.

Bonjour lbd1,

Sans fichier impossible de te donner une réponse.

Aucun soucis je viens de le mettre dans le message principal

1

2worrplan.xlsb (82.90 Ko)

Voici une macro a essayer:

Sub test()
Dim tablo
Dim i&
Dim derlgn&

        derlgn = Sheets("Feuil1").Range("D" & Rows.Count).End(xlUp).Row
        tablo = Sheets("Feuil1").Range("A3:G" & derlgn)

        For i = 2 To UBound(tablo, 1)

            If CInt(tablo(i, 7)) > 1 And IsNumeric(CInt(tablo(i, 7))) Then
                Sheets("Feuil1").Rows(i + 2).Resize(tablo(i, 7)).Insert Shift:=xlDown
            End If
        Next i

End Sub

Voici ton fichier en retour, j'ai modifier le code ainsi que tes formules.

5worrplan.xlsm (78.78 Ko)

Merci mais il y'a un petit

ligne

soucis

regarde le fichier que j'ai mis en pièce jointe

oupps pas vu desole

Voici le nouveau fichier avec la demande supplémentaire car je n'avais pas vu que tu avais édité ton 1er post :

3worrplan.xlsm (82.86 Ko)

Mais il me dit que mes liaison sont incorrect pour mon excel il me met dans [

pblm pblm1

Voici le nouveau fichier avec la demande supplémentaire car je n'avais pas vu que tu avais édité ton 1er post :

WORRPLAN.xlsm

il Me faudrais juste ton fichie xlam fonction personnaliseer dans ton appdata

dsl je me suis trompé voici le bon fichier.

3worrplan.xlsm (81.66 Ko)

dsl je me suis trompé voici le bon fichier.

WORRPLAN.xlsm

Niquel Merci Beaucoup

Et saurais tu faire par la meme occasion copier la raison de la cellule mere Colonne D au cellules Filles ?

Voici le nouveau code :

Sub test()
Dim tablo
Dim i&, j&, derlgn&
Dim c As Boolean

        derlgn = Sheets("Feuil1").Range("D" & Rows.Count).End(xlUp).Row
        tablo = Sheets("Feuil1").Range("A3:G" & derlgn)

        For i = UBound(tablo, 1) To 3 Step -1
        c = False

            If tablo(i, 7) <> Empty And tablo(i, 7) <> "" Then
                If CInt(tablo(i, 7)) > 1 And IsNumeric(CInt(tablo(i, 7))) Then
                    Sheets("Feuil1").Rows(i + 3).Resize(tablo(i, 7) - 1).Insert Shift:=xlDown
                        For j = 1 To CInt(tablo(i, 7)) - 1
                            If c = False Then
                                Sheets("Feuil1").Range("E" & j + i + 2) = CDate(Sheets("Feuil1").Range("E" & i + 2)) + 1: c = True
                            Else
                                Sheets("Feuil1").Range("E" & j + i + 2) = CDate(Sheets("Feuil1").Range("E" & j + i + 1)) + 1
                            End If
                                Sheets("Feuil1").Range("B" & j + i + 2) = Sheets("Feuil1").Range("B" & i + 2)
                                Sheets("Feuil1").Range("D" & j + i + 2) = Sheets("Feuil1").Range("D" & i + 2)
                        Next j
                End If
            End If
        Next i

End Sub

Cette méthode fonctionne mais n'est pas adapté à des grands tableaux ( environ > 10000 lignes ), plus ton tableau sera grand plus le temps d’exécution sera long. Si le temps d’exécution devient long il faudra changer le code pour utiliser des variables de types "Array" pour avoir un temps d’exécution presque instantanées.

Et pour le coup vu que le nombre de jour a ete distribuer peut on remplacer le nombre de jour par des 1 et laisser le 0.5 par 0.5? Puis mettre a cote si cellule = 1 cellule d'a coter = ALL puis encore a coter C et si 0.5 = AM et encore a coter C?

Je n'ai pas bien compris ta demande car en te lisant j'ai l'impression que tu auras "C" partout comme tu veux mettre des "1" pour chaque jours ?

Ps: plutôt que demander des nouvelles choses à chaque fois, il aurait était mieux de penser à tout cela avant et de demander la totalitée de tes requêtes car cela engendre des modifications ne code.

En gros le fichier de dois mettre tout dans une autre feuille avec mes petit bouton vba que j'ai mis sur mon fichier et en gros je dois arriver a la fin a la convertir en csv pour workplan je doit le mettre comme ca a la fin c'est un exemple mais en gros il doit y avoir le 1;all;C ou 0.5;AM;C

5csv-wp.csv (1.79 Ko)

Voici un code a essayer:

Sub test()
Dim tablo
Dim i&, j&, derlgn&
Dim c As Boolean

        derlgn = Sheets("Feuil1").Range("D" & Rows.Count).End(xlUp).Row
        tablo = Sheets("Feuil1").Range("A3:G" & derlgn)

        For i = UBound(tablo, 1) To 3 Step -1
        c = False
            With Sheets("Feuil1")
                If tablo(i, 7) <> Empty And tablo(i, 7) <> "" Then
                    If CInt(tablo(i, 7)) = 1 Then .Range("H" & i + 2) = "ALL": .Range("I" & i + 2) = "C"
                    If CInt(tablo(i, 7)) > 1 And IsNumeric(CInt(tablo(i, 7))) Then
                        .Range("G" & i + 2).ClearContents
                        .Rows(i + 3).Resize(tablo(i, 7) - 1).Insert Shift:=xlDown
                            For j = 1 To CInt(tablo(i, 7)) - 1
                                If c = False Then
                                    .Range("E" & j + i + 2) = CDate(.Range("E" & i + 2)) + 1: c = True
                                Else
                                    .Range("E" & j + i + 2) = CDate(Sheets("Feuil1").Range("E" & j + i + 1)) + 1
                                End If
                                    .Range("G" & j + i + 2) = 1: .Range("H" & j + i + 2) = "ALL": .Range("I" & j + i + 2) = "C"
                                    .Range("B" & j + i + 2) = .Range("B" & i + 2)
                                    .Range("D" & j + i + 2) = .Range("D" & i + 2)
                            Next j
                    Else
                        If CDbl(tablo(i, 7)) = 0.5 Then .Range("H" & i + 2) = "AM": .Range("I" & i + 2) = "C"
                    End If
                End If
            End With
        Next i

End Sub
Rechercher des sujets similaires à "cree nombre ligne"