Report de donnée chaque fin de mois sur ligne non soldée

Bonjour à Tous,

Je dois créer un fichier de suivi de chantier mensuel.

Pour cela je créer un onglet par mois. Chaque mois je rentre mes chantiers lignes par lignes, puis je gère leur état d'avancement.

Mon soucis est que j'aimerais que chaque fin de mois cela me reporte les chantiers non livrer dans l'onglet du mois suivant avec leur état d'avancement.

Merci de votre aide.

Je vous joint le fichier.

20classeur1.xlsx (37.71 Ko)

Bonjour,

Ci-joint une proposition à tester.

Le bouton "Créer le mois suivant" duplique l'onglet du mois et supprime dans le nouvel onglet les chantiers livrés (colonne Q)

Bonne journée

Bouben

Bonjour le forum,

Q31 :

=SI(P31="";"Non LIVRE";"LIVRE")

Feuille novembre : B31 :

=SI(LIGNE()-30>NB.SI(octobre!$Q:$Q;"Non LIVRE");"";INDEX(octobre!B:B;PETITE.VALEUR(SI(octobre!$Q:$Q="Non LIVRE";LIGNE(A:A);"");LIGNE()-30)))

Formule matricielle à valider avec CTRL MAJ ENTREE

A tirer vers la droite, puis vers le bas.

mfc

Bonjour à tous

Ma contribution

16classeur1-14.xlsm (46.11 Ko)

Merci Bouben pour ton retour. Je suis entièrement satisfaite.

Pourriez-vous me communiquer le détail de la manip, pour que je comprenne mieux ?

Bonjour,

Le code est commenté, Si point particulier à expliquer, merci de préciser lequel !

Bouben

   'recherche du mois en cours
    iTrouve = -1
    For iMois = 1 To 12
        If ActiveSheet.Name = MonthName(iMois) Then
            iTrouve = iMois
            Exit For
        End If
    Next iMois

    'nom du futur onglet
    If iTrouve = -1 Then
        'non reconni
        sSuivant = InputBox("Veuillez saisir le nom du nouvel onglet !")
        If sSuivant = "" Then
            Exit Sub 'abandon
        End If
    Else
        If iTrouve = 12 Then
            sSuivant = MonthName(1)
        Else
            sSuivant = MonthName(iTrouve + 1)
        End If
    End If

    'vérif onglet pas encore créé
    If OngletExist(sSuivant) Then
        MsgBox "Cet onglet existe déjà !" & vbCrLf & sSuivant & vbCrLf & "=> abandon", vbExclamation
        Exit Sub
    End If

    'copie du mois actif
    oShActif.Copy After:=Worksheets(Worksheets.Count)
    'renommage
    Set oShSuivant = Worksheets(Worksheets.Count)
    oShSuivant.Name = sSuivant

    'suppression des lignes livrées
    iLig = 31 'première ligne renseignée
    bFin = False
    While Not bFin
        If oShSuivant.Range("B" & iLig).Value = "" Then
            bFin = True 'on est sur le dernier
        Else
            If oShSuivant.Range("Q" & iLig).Value = "LIVRE" Then
                'suppression de la ligne (et reste sur la même ligne)
                oShSuivant.Rows(iLig).Delete
            Else
                'passe à la ligne suivante
                iLig = iLig + 1
            End If
        End If
    Wend

    Set oShActif = Nothing
    Set oShSuivant = Nothing
    
Rechercher des sujets similaires à "report donnee chaque fin mois ligne soldee"