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 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
| Private Sub CommandButton3_Click()
Dim colonneADVid
Dim ligneADVid
Dim colonneHierVid
Dim ligneHierVid
Dim colonneLocVid
Dim ligneLocVid
Dim tableauChaine() As String
Dim finTableau
Dim ligneM
Dim ligneHier
Dim ligneHierTemp
Dim ligneLoc
Dim ligneAD
Dim nompreAD
Dim nomAD
Dim preAD
Dim nomHier
Dim preHier
Dim nomLocal
Sheets("AD").Select
ActiveSheet.Range("B2").Select
' Repère la première cellule vide de la feuille AD
While IsEmpty(ActiveCell) = False
ActiveCell.Offset(1, 0).Activate
colonneADVid = Left$(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)
ligneADVid = ActiveCell.Row
Wend
' Repère la première cellule vide de la feuille A_HIERAR
Sheets("A_HIERAR").Select
ActiveSheet.Range("B2").Select
While IsEmpty(ActiveCell) = False
ActiveCell.Offset(1, 0).Activate
colonneHierVid = Left$(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)
ligneHierVid = ActiveCell.Row
Wend
' Repère la première cellule vide de la feuille A_LOCAL
Sheets("A_LOCAL").Select
ActiveSheet.Range("B2").Select
While IsEmpty(ActiveCell) = False
ActiveCell.Offset(1, 0).Activate
colonneLocVid = Left$(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)
ligneLocVid = ActiveCell.Row
Wend
' Place les valeurs correspondantes dans la feuille Liste M en fonction des données de la feuille A_HIERAR
ligneAD = 2
ligneM = 2
ligneHier = 2
ligneLoc = 2
While ligneAD < ligneADVid
Sheets("AD").Select
nompreAD = ActiveSheet.Range("C" & ligneAD).Value
If nompreAD = "" Then
ActiveSheet.Range("C" & ligneAD).Value = "Case1 Case2 Case3"
nompreAD = ActiveSheet.Range("C" & ligneAD).Value
End If
tableauChaine = Split(nompreAD, " ")
nomAD = tableauChaine(0)
preAD = tableauChaine(1)
If UBound(tableauChaine) > 1 Then
Do Until ligneHier = ligneHierVid
Sheets("A_HIERAR").Select
nomHier = ActiveSheet.Range("B" & ligneHier).Value
preHier = ActiveSheet.Range("C" & ligneHier).Value
If nomAD = nomHier Then
If preAD = preHier Then
Sheets("AD").Select
ActiveSheet.Range("B" & ligneAD).Select
Selection.Copy
Sheets("Liste M").Select
ActiveSheet.Range("A" & ligneM).PasteSpecial
Sheets("AD").Select
ActiveSheet.Range("C" & ligneAD).Select
Selection.Copy
Sheets("Liste M").Select
ActiveSheet.Range("B" & ligneM).PasteSpecial
Sheets("AD").Select
ActiveSheet.Range("D" & ligneAD).Select
Selection.Copy
Sheets("Liste M").Select
ActiveSheet.Range("C" & ligneM).PasteSpecial
Sheets("AD").Select
ActiveSheet.Rows(ActiveCell.Row).EntireRow.Delete
ligneHier = 2
ligneM = ligneM + 1
End If
Else
ligneHier = ligneHier + 1
End If
Loop
ligneAD = ligneAD + 1
Else
ligneAD = ligneAD + 1
End If
Wend
' Repère la première cellule vide de la feuille AD
Sheets("AD").Select
ActiveSheet.Range("C2").Select
While IsEmpty(ActiveCell) = False
ActiveCell.Offset(1, 0).Activate
colonneADVid = Left$(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)
ligneADVid = ActiveCell.Row
Wend
' Place les valeurs correspondantes dans la feuille Liste M en fonction des données de la feuille A_LOCAL
ligneAD = 2
ligneM = 2
ligneHier = 2
ligneLoc = 2
While ligneAD < ligneADVid
Sheets("AD").Select
nompreAD = ActiveSheet.Range("C" & ligneAD).Value
tableauChaine = Split(nompreAD, " ")
nomAD = tableauChaine(0)
preAD = tableauChaine(1)
If UBound(tableauChaine) > 1 Then
Do Until ligneHier = ligneHierVid
Sheets("A_LOCAL").Select
nomHier = ActiveSheet.Range("A" & ligneHier).Value
preHier = ActiveSheet.Range("B" & ligneHier).Value
If nomAD = nomHier Then
If preAD = preHier Then
Sheets("AD").Select
ActiveSheet.Range("B" & ligneAD).Select
Selection.Copy
Sheets("Liste M").Select
ActiveSheet.Range("A" & ligneM).PasteSpecial
Sheets("AD").Select
ActiveSheet.Range("C" & ligneAD).Select
Selection.Copy
Sheets("Liste M").Select
ActiveSheet.Range("B" & ligneM).PasteSpecial
Sheets("AD").Select
ActiveSheet.Range("D" & ligneAD).Select
Selection.Copy
Sheets("Liste M").Select
ActiveSheet.Range("C" & ligneM).PasteSpecial
Sheets("AD").Select
ActiveSheet.Rows(ActiveCell.Row).EntireRow.Delete
ligneHier = 2
ligneM = ligneM + 1
Else
ligneHier = ligneHier + 1
End If
Else
ligneHier = ligneHier + 1
End If
Loop
ligneAD = ligneAD + 1
Else
ligneAD = ligneAD + 1
End If
Wend
End Sub |
Partager