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
|
//Déclaration variable
Public OccurDeuxiemeSigne As Integer
Function NbOccurences(chaine As String, caractère As String) As Integer
OccurDeuxiemeSigne = 0
For n = 1 To Len(chaine)
If Mid(chaine, n, 1) = "<" Then
c = c + 1
If c = 2 Then
OccurDeuxiemeSigne = n
End If
End If
Next
NbOccurences = c
End Function
'---------------------------------------------------------------------------------------
' Procedure : RecuperationComplete
' Author : Administrateur
' Date : 30/09/2010
' Purpose : Récupère toutes les variables du fichier analyse de la colonne demandée
'---------------------------------------------------------------------------------------
Sub RecuperationComplete(typeAnalyse As String, nomCellule As String, formeA As Integer)
Dim recupVar As String, recupVal As String
Dim NewLig As Long, positionTemp As Long
Dim i As Integer, nbOccur As Integer
Dim positionMaximum As Long, positionMinimum As Long
Dim EstNumerique As Boolean, valeurNonNumérique As Boolean
Dim Cible As String, varTemp As String, premierePartie As String, deuxiemePartie As String
EstNumerique = True
Set wbkAnalyse = ThisWorkbook
Set shAnalyse = wbkAnalyse.Sheets("contrôle arrivage-final")
On Error GoTo errorValidation
For i = cNumLigneDebutTableau To cNumLigneFinTableau
If shAnalyse.Range(nomCellule & i) <> "" Then
ValTemp = ""
positionTemp = 0
valeurNonNumérique = False
positionMaximum = InStr(shAnalyse.Range(nomCellule & i).Value, "<")
positionMinimum = InStr(shAnalyse.Range(nomCellule & i).Value, ">")
EstNumerique = IsNumeric(shAnalyse.Range(nomCellule & i).Value)
nbOccur = NbOccurences(shAnalyse.Range(nomCellule & i).Value, "<")
With shExemple
NewLig = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If nbOccur = 2 Then
valeurNonNumérique = True
positionTemp = InStr(shAnalyse.Range(nomCellule & i).Value, "<")
.Range("K" & NewLig).Value = Left(shAnalyse.Range(nomCellule & i).Value, positionTemp - 1)
positionTemp2 = Len(shAnalyse.Range(nomCellule & i).Value) - OccurDeuxiemeSigne
.Range("J" & NewLig).Value = Right(shAnalyse.Range(nomCellule & i).Value, positionTemp2)
ElseIf positionMaximum <> 0 Then
valeurNonNumérique = True
.Range("J" & NewLig).Value = Replace(Mid(shAnalyse.Range(nomCellule & i).Value, positionMaximum + 1), "%", "")
ElseIf positionMinimum <> 0 Then
valeurNonNumérique = True
.Range("K" & NewLig).Value = Replace(Mid(shAnalyse.Range(nomCellule & i).Value, positionMinimum + 1), "%", "")
ElseIf EstNumerique = False Then
valeurNonNumérique = True
.Range("L" & NewLig).Value = shAnalyse.Range(nomCellule & i).Value
End If
'Première cellule on met la forme d'analyse (numéro dans Waste)
.Range("C" & NewLig).Value = formeA
'Cellule suivante On récupère le numéro de lot
.Range("E" & NewLig).Value = shAnalyse.Range(cNumLot).Value
.Range("A" & NewLig).Value = shAnalyse.Range(cNumLot).Value
'Cellule suivante On récupère le type d'analyse
.Range("D" & NewLig).Value = typeAnalyse
'Cellule suivante On récupère le code d'analyse
.Range("G" & NewLig).Value = shAnalyse.Range("AA" & i).Value
'Cellule suivante On récupère la valeur de la mesure
If valeurNonNumérique = True Then
.Range("I" & NewLig).Value = ""
Else
.Range("I" & NewLig).Value = shAnalyse.Range(nomCellule & i).Value
End If
'Cellule suivante On récupère le numéro de commande traitement
.Range("F" & NewLig).Value = shAnalyse.Range(nomCellule & cNumLigneCmdTraitement).Value
'Cellule suivante on récupère la description du code d'analyse
.Range("M" & NewLig).Value = shAnalyse.Range("A" & i).Value
End With
End If
Next i
Exit Sub
errorValidation:
'Appelle la procédure qui envoit un mail à JFM en cas d'erreur
'Il faut récupérer : nom procédure, nom fichier, nom numéro lot, code erreur excel, description erreur
Call EnvoiMailErreurValidation("RecuperationComplete", wbkAnalyse.Name, Err.Number, Err.Description, wbkAnalyse.Path)
End Sub |
Partager