Attribute VB_Name = "Geol" Function Geol(Nombre, Optional Eres As String, Optional TypeAnnee As Integer, Optional Datation As Integer) Dim Nb As Integer Nb = 0 If IsMissing(TypeAnnee) Then TypeAnnee = 1 If TypeAnnee = 2 Then Nombre = Nombre / 1000 ElseIf TypeAnnee = 3 Then Nombre = Nombre / 1000000 Else Nombre = Nombre End If If IsMissing(Datation) Then Nombre = Nombre If Datation = 2 Then If Nombre < 0 Then Nombre = Evaluate("=Abs(" & Nombre & ")") + 370 Else: Nombre = 370 - Nombre If Nombre < 0 Then Rep = "Dans le Futur" GoTo Fin End If End If Else: Nombre = Nombre End If Nombre = Application.Round(Nombre, 2) Nombre = Evaluate("=Abs(" & Nombre & ")") If IsMissing(Eres) Then Ere = "S" If Eres Like "*1*" Then Ere = Ere & "E" If Eres Like "*2*" Then Ere = Ere & "Q" If Eres Like "*3*" Then Ere = Ere & "S" If Eres Like "*4*" Then Ere = Ere & "P" If Eres Like "*5*" Then Ere = Ere & "T" ' Test E If Ere Like "*E*" Then Nb = Evaluate("=match(" & Nombre & " ,{0,65,235,570,4600})") Rep = Evaluate("=INDEX({""Cénozoïque"",""Mésozoïque"",""Paléozoïque"",""Antécambrien"",""Avant la Terre"" }," & Nb & ")") & " " End If 'Test Q If Ere Like "*Q*" Then Nb = Evaluate("=match(" & Nombre & " ,{0,1.9,65,235,570,4600})") If Ere Like "*E*" Then Rep = Rep & Evaluate("=INDEX({""Quaternaire"",""Tertiaire"",""Secondaire"",""Primaire"","""","""" }," & Nb & ")") & " " Else Rep = Rep & Evaluate("=INDEX({""Quaternaire"",""Tertiaire"",""Secondaire"",""Primaire"",""Antécambrien"",""Avant la Terre"" }," & Nb & ")") & " " End If End If 'Test S If Ere Like "*S*" Then Nb = Evaluate("=match(" & Nombre & " ,{0,1.9,23,65,135,195,235,290,340,400,440,500,570,4600})") If Ere Like "*E*" Then Rep = Rep & Evaluate("=INDEX({""Actuel"",""Néogène"",""Paléogène"",""Crétacé"",""Jurassique"",""Trias"",""Permien"",""Carbonifère"",""Dévonien"",""Silurien"",""Ordovicien"",""Cambrien"","""",""""}," & Nb & ")") & " " Else Rep = Rep & Evaluate("=INDEX({""Actuel"",""Néogène"",""Paléogène"",""Crétacé"",""Jurassique"",""Trias"",""Permien"",""Carbonifère"",""Dévonien"",""Silurien"",""Ordovicien"",""Cambrien"",""Antécambrien"",""Avant la Terre""}," & Nb & ")") & " " End If End If 'Test P If Ere Like "*P*" Then Nb = Evaluate("=match(" & Nombre & " ,{0,0.00001,1.9,5.3,23,35,54,65,100,135,150,175,195,235,290,315,340,365,380,400,440,460,480,500,515,540,570,4600})") If Ere Like "*E*" And Not Ere Like "*S*" Then If Nb < 15 Then Rep = Rep & Evaluate("=INDEX({""Holocène"",""Pleistocène"",""Pliocène"",""Miocène"",""Oligocène"",""Eocène"",""Paléocène"",""Crétacé Supérieur"",""Crétacé Inférieur"",""Malm"",""Dogger"",""Lias"",""Trias"",""Permien""}," & Nb & ")") & " " Else Rep = Rep & Evaluate("=INDEX({""Silésien"",""Dinantien"",""Néodévonien"",""Mésodévonien"",""Eodévonien"",""Silurien"",""Ordovicien Supérieur"",""Ordovicien Moyen"",""Ordovicien Inférieur"",""Potsdamien"",""Acadien"",""Géorgien"","""",""""}," & Nb - 14 & ")") & " " End If ElseIf Ere Like "*S*" Then If Nb < 15 Then Rep = Rep & Evaluate("=INDEX({""Holocène"",""Pleistocène"",""Pliocène"",""Miocène"",""Oligocène"",""Eocène"",""Paléocène"",""Supérieur"",""Inférieur"",""Malm"",""Dogger"",""Lias"","""",""""}," & Nb & ")") & " " Else Rep = Rep & Evaluate("=INDEX({""Silésien"",""Dinantien"",""Néodévonien"",""Mésodévonien"",""Eodévonien"","""",""Supérieur"",""Moyen"",""Inférieur"",""Potsdamien"",""Acadien"",""Géorgien"","""",""""}," & Nb - 14 & ")") & " " End If Else If Nb < 15 Then Rep = Rep & Evaluate("=INDEX({""Holocène"",""Pleistocène"",""Pliocène"",""Miocène"",""Oligocène"",""Eocène"",""Paléocène"",""Crétacé Supérieur"",""Crétacé Inférieur"",""Malm"",""Dogger"",""Lias"",""Trias"",""Permien""}," & Nb & ")") & " " Else Rep = Rep & Evaluate("=INDEX({""Silésien"",""Dinantien"",""Néodévonien"",""Mésodévonien"",""Eodévonien"",""Silurien"",""Ordovicien Supérieur"",""Ordovicien Moyen"",""Ordovicien Inférieur"",""Potsdamien"",""Acadien"",""Géorgien"",""AntéCambrien"",""Avant la Terre""}," & Nb - 14 & ")") & " " End If End If End If 'Test T If Ere Like "*T*" Then Select Case Nombre Case 0 To 0.009 If Not Rep Like "*Holocène*" Then Rep = Rep & "Holocène" Case 0.01 To 0.4 Rep = Rep & "Tyrrhénien" Case 0.5 To 0.99 Rep = Rep & "Sicilien" Case 1 To 1.89 Rep = Rep & "Calabrien" Case 1.9 To 3.59 Rep = Rep & "Plaisancien" Case 3.6 To 5.29 Rep = Rep & "Redonien" Case 5.3 To 8.99 Rep = Rep & "Messinien" Case 9 To 11.99 Rep = Rep & "Tortonien" Case 12 To 14.99 Rep = Rep & "Serravalien" Case 15 To 16.99 Rep = Rep & "Langhien" Case 17 To 19.99 Rep = Rep & "Burdigalien" Case 20 To 22.99 Rep = Rep & "Aquitanien" Case 23 To 26.99 Rep = Rep & "Chattien" Case 27 To 30.99 Rep = Rep & "Stampien" Case 31 To 34.99 Rep = Rep & "Sanoisien" Case 35 To 36.99 Rep = Rep & "Bartonien Ludien" Case 37 To 38.99 Rep = Rep & "Bartonien Marinésien" Case 39 To 40.99 Rep = Rep & "Bartonien Auversien" Case 41 To 42.99 Rep = Rep & "Lutétien Biarritzien" Case 43 To 44.99 Rep = Rep & "Lutétien Moyen" Case 45 To 46.99 Rep = Rep & "Lutétien Inférieur" Case 47 To 50.49 Rep = Rep & "Ypérien Cuisien" Case 50.5 To 53.99 Rep = Rep & "Yprésien Sparnacien" Case 54 To 59.99 Rep = Rep & "Thanétien" Case 60 To 64.99 Rep = Rep & "Danien" Case 65 To 71.99 Rep = Rep & "Maestrichtien" Case 70 To 75.99 Rep = Rep & "Campanien" Case 76 To 81.99 Rep = Rep & "Santonien" Case 82 To 87.99 Rep = Rep & "Coniacien" Case 88 To 90.99 Rep = Rep & "Turonien Angoumien" Case 91 To 93.99 Rep = Rep & "Turonien Ligérien" Case 94 To 99.99 Rep = Rep & "Cénomanien" Case 100 To 102.49 Rep = Rep & "AlBien Vraconien" Case 102.5 To 103.74 Rep = Rep & "Albien Moyen" Case 103.75 To 104.99 Rep = Rep & "Albien Inférieur" Case 105 To 107.99 Rep = Rep & "Aptien Clansayésien" Case 108 To 111.99 Rep = Rep & "Aptien Gargasien" Case 112 To 114.99 Rep = Rep & "Aptien Bédoulien" Case 115 To 119.99 Rep = Rep & "Barrémien" Case 120 To 124.99 Rep = Rep & "Hauterivien" Case 125 To 129.99 Rep = Rep & "Valanginien" Case 130 To 134.99 Rep = Rep & "Berriasien" Case 135 To 137.49 Rep = Rep & "Portlandien Purbeckien" Case 137.5 To 139.99 Rep = Rep & "Portlandien Bononien" Case 140 To 141.99 Rep = Rep & "Kimméridgien Virgulien" Case 142.5 To 144.99 Rep = Rep & "Kimméridgien Ptérocérien" Case 145 To 147.4 Rep = Rep & "Oxfordien Rauracien" Case 147.5 To 149.99 Rep = Rep & "Oxfordien Argovien" Case 150 To 155.99 Rep = Rep & "Callovien" Case 156 To 161.99 Rep = Rep & "Bathonien" Case 162 To 167.99 Rep = Rep & "Bajocien" Case 168 To 174.99 Rep = Rep & "Aalénien" Case 175 To 179.99 Rep = Rep & "Toarcien" Case 180 To 182.49 Rep = Rep & "Piensbachien Domérien" Case 182.5 To 184.99 Rep = Rep & "Piensbachien Carixien" Case 185 To 189.99 Rep = Rep & "Sinémurien" Case 190 To 194.99 Rep = Rep & "Hettangien" Case 195 To 199.99 Rep = Rep & "Rhétien" Case 200 To 204.99 Rep = Rep & "Keuper Norien" Case 205 To 209.99 Rep = Rep & "Keuper Carnien" Case 210 To 214.99 Rep = Rep & "Lettenkhole" Case 215 To 224.99 Rep = Rep & "Muschelkalk" Case 225 To 234.99 Rep = Rep & "Butsandstien" Case 235 To 249.99 Rep = Rep & "Thuringien" Case 250 To 269.99 Rep = Rep & "Saxonien" Case 270 To 289.99 Rep = Rep & "Autunien" Case 290 To 299.99 Rep = Rep & "Stéphanien" Case 300 To 309.99 Rep = Rep & "Westphalien" Case 310 To 319.99 Rep = Rep & "Namurien" Case 320 To 329.99 Rep = Rep & "Viséen" Case 330 To 339.99 Rep = Rep & "Tournaisien" Case 340 To 347.99 Rep = Rep & "Famennien" Case 348 To 364.99 Rep = Rep & "Frasnien" Case 365 To 371.99 Rep = Rep & "Givétien" Case 372 To 379.99 Rep = Rep & "Couvinien" Case 380 To 385.99 Rep = Rep & "Coblencien Emsien" Case 386 To 392.99 Rep = Rep & "Coblencien Siegénien" Case 393 To 399.99 Rep = Rep & "Gedinnien" Case 400 To 409.99 Rep = Rep & "Pridolien" Case 410 To 419.99 Rep = Rep & "Ludlowien" Case 420 To 429.99 Rep = Rep & "Wenlockien" Case 430 To 439.99 Rep = Rep & "Llandoverien" Case 440 To 449.99 Rep = Rep & "Ashgillien" Case 450 To 459.99 Rep = Rep & "Caradocien" Case 460 To 469.99 Rep = Rep & "Llandeilien" Case 470 To 479.99 Rep = Rep & "Llanvirnien" Case 480 To 489.99 Rep = Rep & "Arenigien" Case 490 To 499.99 Rep = Rep & "Tremadocien" Case 500 To 514.99 If Not Ere Like "*P*" Then Rep = Rep & "Potsdamien" Case 515 To 539.99 If Not Ere Like "*P*" Then Rep = Rep & "Acadien" Case 540 To 569.99 If Not Ere Like "*P*" Then Rep = Rep & "Géorgien" Case 570 To 4600 If Rep <> "Ant*" Then Rep = "AntéCambrien" Case Is > 4600 If Rep <> "Avant*" Then Rep = "Avant la Terre" End Select End If Fin: Geol = Rep End Function