Supprimer de tableau temporaire valeurs

carlos

XLDnaute Impliqué
Supporter XLD
Bonjour le forum



voici un code qui permet de coller dans la colonne 'A' tous les 'Lundis' compris entre 2 dates de travail (textbox1 et 2).
J'aimerais aussi que les 'Lundis de vacances' compris entre le textbox4 et le textbox5 ne soient pas pris en compte.


De plus, je débute dans les tabTemp ;donc si vous pouvez apporter une amélioration dans ce code , ce serait avec plaisir.
voir Piece jointe : merci
Carlos [file name=TabTemp.zip size=12811]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TabTemp.zip[/file]
 

Pièces jointes

  • TabTemp.zip
    12.5 KB · Affichages: 21

Hervé

XLDnaute Barbatruc
salut carlos

normalement les tabtemp sont chasses gardées de didiermdf ou de chti160 :)

j'ai pas bien l'habitude de travailler avec les tabtemp, je préfère les tablo.

peut etre comme ceci :



Private Sub CommandButton1_Click()
Dim L As Integer, x As Integer
Dim L2 As Integer
Dim i As Byte
Dim durée As Variant
Dim TabTemp() As Date
Dim TabTemp2() As Date
Dim TabTemp3() As Date

Columns(1).ClearContents
durée =
CDate(TextBox2.Value) - CDate(TextBox1.Value)
' Remplir le tableau de valeurs, tous les jours de la semaine.
For L = 1 To durée
x = x + 1
ReDim Preserve TabTemp(1 To x)
TabTemp(x) = CDate(TextBox1.Value) - 1 + L
Next L
'remplir 2 ieme tableau en ne gardant que les jour voulu
x = 0
For i = 1 To UBound(TabTemp)
If Weekday(TabTemp(i)) = Val(TextBox3.Value) Then
x = x + 1
ReDim Preserve TabTemp2(1 To x)
TabTemp2(x) = TabTemp(i)
End If
Next i
'Supprimer du tabTemp les jours de vacances
x = 0
For i = 1 To UBound(TabTemp2)
If TabTemp2(i) CDate(TextBox4) Then
x = x + 1
ReDim Preserve TabTemp3(1 To x)
TabTemp3(x) = TabTemp2(i)
End If
Next i



'Coller valeurs tab
If Not x = 0 Then 'ici on gere le fait que le tableau tabtemp pourrait etre vide
For L2 = 1 To UBound(TabTemp3, 1)
Cells(L2, 1).Value =
TabTemp3(L2)
Next L2
End If

End Sub


mais, 3 variables tableaux me semble un peu lourd à gérer.

salut

Message édité par: hervé, à: 26/03/2006 10:13
 

Hervé

XLDnaute Barbatruc
re

une autre facon de faire :


edition : voir pièce jointe

attention :
ton code ne tiens pas compte du lundi 26/09/05

salut [file name=TabTemp_20060326110428.zip size=10743]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TabTemp_20060326110428.zip[/file]

Message édité par: hervé, à: 26/03/2006 11:04
 

Pièces jointes

  • TabTemp_20060326110428.zip
    10.5 KB · Affichages: 19

carlos

XLDnaute Impliqué
Supporter XLD
Bonjour Hervé , Bonjour le forum

J'ai bien aimé :

For jour = CDate(TextBox1) To CDate(TextBox2)

je n'y avais pas pensé .

Tu as beaucoup simplifié les choses et c'est tres tres bien.
Je vais me coller au 'redim preserve' pour comprendre la taille du tableau et ainsi continuer mon projet.

Encore une fois merci de ton aide précieuse

Cordialement Carlos
 

Statistiques des forums

Discussions
312 489
Messages
2 088 852
Membres
103 975
dernier inscrit
denry