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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
Sub Etape1()
' Concatenation des Dates et des Jours Cycle
Sheets("Calendrier").Select 'selectionne la feuille
FinLigne = ActiveSheet.UsedRange.Rows.Count + 1 'Variable nombre de lignes
Numeroligne = 2 'Variable ligne en cours
While Numeroligne < FinLigne
Sheets("Calendrier").Range("H" & Numeroligne).Value = Range("C" & Numeroligne).Value & " " & Range("B" & Numeroligne).Value & " " & Range("A" & Numeroligne).Value
Numeroligne = Numeroligne + 1
Wend
'Remplit l'onglet Raw qui servira de matrice pour le calendrier final
Worksheets("Calendrier").Range("H2:H307").Copy Worksheets("Raw").Range("A1")
Worksheets("Calendrier").Range("D2:D307").Copy Worksheets("Raw").Range("B1")
'Change la casse pour 1ere lettre en majuscule
Sheets("Raw").Select
For Each x In Range("A1", "B306")
x.Value = Application.Proper(x.Value)
Next
'Transposer les cellules et colonnes
Sheets("Raw").Activate
Range("A1:B306").Select
Selection.Copy
Sheets("Ordonne").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Range("A1").Select
'J'ai du lui declarer physiquement la dernière cellule car c'est ce qui causait l'erreur.. pas grave, ça fonctionne et c'est pas non plus le gros ajustement!
For Each cell In Sheets("Ordonne").Range("B2:KU2")
Nature = cell.Value
x = cell.Row
y = cell.Column
'action.... detecte si numerique
If IsNumeric(Nature) = True Then
'copie coller.....
'se positionne sur Form à B2 et cherche la valeur Nature
C = Sheets("Form").Range("B2:S2").Find(What:=Nature, LookAt:=xlWhole).Column
Sheets("Form").Select
Set MaPlage = Columns(C).Rows("4:11")
MaPlage.Copy
x = x + 1
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteValues
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End If
If Nature = "Pédago" Then
C = Sheets("Form").Range("W2").Find(What:=Nature, LookAt:=xlWhole).Column
Sheets("Form").Select
Set MaPlage = Columns(C).Rows("4:11")
MaPlage.Copy
'il faut recuperer les coordonnées de la colonne originale de Ordonne. Genre variable D!!!
x = x + 1
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteValues
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End If
If Nature = "Reprise" Then
C = Sheets("Form").Range("X2").Find(What:=Nature, LookAt:=xlWhole).Column
Sheets("Form").Select
Set MaPlage = Columns(C).Rows("4:11")
MaPlage.Copy
'il faut recuperer les coordonnées de la colonne originale de Ordonne. Genre variable D!!!
x = x + 1
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteValues
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End If
If Nature = "E" Then
C = Sheets("Form").Range("T2").Find(What:=Nature, LookAt:=xlWhole).Column
Sheets("Form").Select
Set MaPlage = Columns(C).Rows("4:11")
MaPlage.Copy
'il faut recuperer les coordonnées de la colonne originale de Ordonne. Genre variable D!!!
x = x + 1
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteValues
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End If
If Nature = "Ligne" Then
C = Sheets("Form").Range("U2").Find(What:=Nature, LookAt:=xlWhole).Column
Sheets("Form").Select
Set MaPlage = Columns(C).Rows("4:11")
MaPlage.Copy
'il faut recuperer les coordonnées de la colonne originale de Ordonne. Genre variable D!!!
x = x + 1
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteValues
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End If
If Nature = "Congé" Then
C = Sheets("Form").Range("V2").Find(What:=Nature, LookAt:=xlWhole).Column
Sheets("Form").Select
Set MaPlage = Columns(C).Rows("4:11")
MaPlage.Copy
'il faut recuperer les coordonnées de la colonne originale de Ordonne. Genre variable D!!!
x = x + 1
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteValues
Sheets("Ordonne").Cells(x, y).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End If
Next cell
'Creer un onglet avec 7 jours + colonne 1 avec intitulé
Dim wsData As Worksheet 'Sheet with data to parse
Dim FirstCol As Long 'This is the first column to transfer
Dim ColCnt As Long 'This is how many columns in a group to transfer
Dim LastCol As Long 'check row1 to see how many columns of data there are
Dim NewSht As Long 'how many new sheets will be created
FirstCol = 2
ColCnt = 7
Set wsData = ActiveWorkbook.Sheets("Ordonne")
Application.ScreenUpdating = False
With wsData
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For NewSht = FirstCol To LastCol Step ColCnt
Sheets.Add , After:=Sheets(Sheets.Count)
.Columns(1).Resize(, FirstCol - 1).Copy Range("A1")
.Columns(NewSht).Resize(, ColCnt).Copy Cells(1, FirstCol)
Next NewSht
End With
Application.ScreenUpdating = True
End Sub |
Partager