Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 prise en compte weekend et ferier

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

sebastien34

XLDnaute Nouveau
bonjour a tous,

j'ai deux tableaux, le "feuil1" qui est ma base de travail, alimenté par un logiciel extérieur (je ne peux donc pas faire de modification).
le deuxième (livraison)qui est le tableau généré par VGA.

il s'agit de livraisons par différents fournisseurs.
les jours sont divisé en 2, une colonne pour les commandes et une pour les livraison.

mon soucie est que les weekends et féries ne sont pas pris en compte

si quelqu'un a des idées, je suis preneur.
merci a tous
 

Pièces jointes

bonjour Bebere,
merci d'avoir pris le temps de regarder mon fichier.
j'ai du mal m'expliqué,
sur la feuil( c'est un copié/coller) d'une extraction du logiciel.
dessus tu retrouve, les différents entrepôts livreurs avec les jours de commandes.(elle n'est pas modifiable)

sur la feuille livraison,
je recopie les entrepôts et les jours de commande, ensuite je cherche a visualiser les jours de livraison.
exemple: contrat 01, commande le 03/05/18, livraison le 04/05/18.

la ou je rencontre des problèmes, c'est par exemple commande le 04/05/18 livraison le 05.
c'est un samedi, il ne le prend pas en compte, idem pur la commande du 05.
 
la commande est indiqué par un chiffre sur une des journée
exemple: feuille Livraison
ligne n°3 bordeaux contrat 1
date du 03/05/18 colonne "commande"= chiffre 1
cela veux dire que le 3 mai j'ai une commande.

le chiffre indique le nombre de jour avant livraison
c'est a dire que la je serais livrais le 04 mai (03/05 + 1 = 04 mai)
si j'ai le chiffre 2 a la place je serais livre le 05 mai.

je suis livré les samedis et jours fériés, mais mon fichier VGA ne pas pas en compte les weekends et fériés.
il faut que je trouve la syntaxe pour avoir tous les jours de la semaine
 
Bonsoir
Sebastien
je pense que la fonction workday pose problème,mis une addition à la place
ajout d'un point devant range("E1") ligne autofill

Code:
Sub calculdelais()
Application.ScreenUpdating = False
Dim Tablo() As Variant
Dim TabFinal() As Variant

With Sheets("Feuil1")
    Tablo = .UsedRange.Value
End With
With Sheets("livraison")
    .UsedRange.Clear
End With

NbCol = 2 * (UBound(Tablo, 2) - 4) + 4
ReDim TabFinal(1 To UBound(Tablo, 1), 1 To NbCol)

For i = LBound(Tablo, 1) To UBound(Tablo, 1)
    For j = LBound(Tablo, 2) To 4
        TabFinal(i, j) = Tablo(i, j)
    Next j
   
    For j = 5 To UBound(Tablo, 2)
        If i = 1 Then
            jour = Split(Tablo(i, j), " ")(1)
            TabFinal(i, 2 * j - 5) = DateSerial(2018, Split(jour, "/")(1), Split(jour, "/")(0)) 'les dates
        Else
        If Tablo(i, j) <> "" Then
            TabFinal(i, 2 * j - 5) = Tablo(i, j)
        TabFinal(i, 2 * j - 4) = TabFinal(1, 2 * j - 5) + Tablo(i, j) 'Format(WorksheetFunction.WorkDay(TabFinal(1, 2 * j - 5), TabFinal(i, 2 * j - 5)), "yyyy/mm/dd")
        End If
        End If
    Next j
Next i
With Sheets("Livraison")
    .Range("A1").Resize(UBound(TabFinal, 1), UBound(TabFinal, 2)) = TabFinal
    'Mise en forme de la feuille
    .Rows("1:1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    .Range("A2:D2").Cut Destination:=.Range("A1:D1")
    .Range("E1").FormulaR1C1 = "Com"
    .Range("F1").FormulaR1C1 = "Livr"
    .Range("E1:F1").AutoFill Destination:=.Range("E1").Resize(1, NbCol - 4), Type:=xlFillDefault
   
    For i = 5 To NbCol Step 2
        With .Cells(2, i).Resize(1, 2)
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlBottom
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = True
        End With
    Next i

    With .Cells
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
    End With
    .Columns("E").Resize(, NbCol - 5).ColumnWidth = 12
   
    .UsedRange.Select
   
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
End With
Application.ScreenUpdating = True
End Sub
 
bonjour Bebere,
désole pour la réponse qui a un peu traîner, mais je suis a l’hôpital quelques jours.
j'ai rajouté le point, mais je ne comprend pas se que tu veux dire par "mais une addition a la place".
il faut dire que je ne suis pas très doué en VBA.🙁
en fait je voudrai juste que le calcul des livraisons se face mêmes pour les samedi et dimanche, exemple: le 12 et 13 mai sur le document.
 
bonjour Bebere,
j'ai un code qui bloque.

Code:
   With Sheets("livraison")
        .ListObjects("TblLivraison").Unlist    'TblLivraison
        .UsedRange.Clear
    End With

pense tu qui est possible de rester sur l'ancien format du tableau de livraison?, il est plus claire a lire.
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…