1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
Private Sub CommandButton1_Click()
Dim nbcoltcd As Integer
Dim NbLignes As Integer
Dim fin As Boolean
Dim ko As Boolean
Dim trouve As Boolean
Dim datecharge As String
' Indice de la colonne traitée dans le 'TCD'
Dim i As Integer
' Indice de la colonne traitée dans la capacité
Dim j As Integer
' Nombre de colonnes de la disponiblité
Dim nbcoldispo As Integer
' Recherche du nombre de colonnes de TCD
nbcoltcd = Worksheets("TCD").UsedRange.Columns.Count
' Recherche du nombre de lignes de TCD
NbLignes = Worksheets("TCD").UsedRange.Rows.Count
' Recherche du nombre de colonnes à traiter dans le tableau "Capacité." (partie "disponibilité")
nbcoldispo = 2
Do Until Worksheets("DISPO").Cells(10, nbcoldispo).Value = ""
nbcoldispo = nbcoldispo + 1
Loop
nbcoldispo = nbcoldispo - 1
MsgBox "Nombre de colonnes à traiter dans le tableau des capacités :" & nbcoldispo
' Suppression du tableau de "charge" contenu dans l'entête de la capacité
Worksheets("DISPO").Range("B2").CurrentRegion.ClearContents
' Copie de la colonne des machines de TCD vers la feuille 'Capacité'
Worksheets("TCD").Range("A2:A" & NbLignes).Copy Destination:=Sheets("DISPO").Range("A2")
' Boucle pour traiter toutes les dates
' Fin-trt, j'ai traité toutes les dates,
' Trt-ko, je ne trouve pas ma date dans la colonne des disponibilités
ko = False
fin = False
i = 2
Do Until fin Or ko
' Recherche de la date dans la colonne de disponibilité
trouve = False
' Initialisation de la colonne traitée dans la disponibilité
j = 2
datecharge = Worksheets("TCD").Cells(2, i).Value
Do Until trouve Or ko
' MsgBox "je passe dans boucle"
If Worksheets("DISPO").Cells(10, j).Value > datecharge Then
ko = True
MsgBox "ko"
Else
If datecharge = Worksheets("DISPO").Cells(10, j).Value Then
MsgBox "Date trouvée : " & datecharge
trouve = True
End If
End If
j = j + 1
Loop
' Si trouvé alors je copie la colonne de la "Charge" vers les dispo.
If trouve Then
j = j - 1
MsgBox "Je copie la colonne n° " & i & " du tableau de tcd vers la colonne " & j & "du tableau de disponibilité."
Worksheets("TCD").Range(Cells(2, i), Cells(NbLignes, i)).Copy
MsgBox ("copie")
Worksheets("DISPO").Range(Cells(2, j)).PasteSpecial xlPasteValues
**** la recopie plante sur la ligne ci-dessous
Worksheets("TCD").Range(Cells(2, i), Cells(NbLignes, i)).Copy Destination:=Worksheets("DISPO").Range(Cells(2, j), Cells(NbLignes, j))
MsgBox "J'ai copié !"
End If
' Passage à la colonne suivante du tcd
If ko = False Then
i = i + 1
If i > nbcoltcd Then
fin = True
End If
End If
Loop
If ko Then
MsgBox "Traitement incorrect !"
End If
End Sub |
Partager