| 12
 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
 
 | Sub transfert()
Dim Ligne_lue As Long
Dim Ws1 As Worksheet, Ws2 As Worksheet, Ws3 As Worksheet
 
Application.ScreenUpdating = False
Set Ws1 = Worksheets("Feuil1")
Set Ws2 = Worksheets("IMPORT DU TERRAIN")
Set Ws3 = Worksheets("qualite")
 
'initialisation du n° de ligne à copier
Ligne_lue = 2
'Recherche de la dernière ligne renseignée de la feuille "Feuil1".
DerLig1 = Ws1.Range("A" & Ws1.Rows.Count).End(xlUp).Row
With Ws2
While .Cells(Ligne_lue, 1) <> ""
    'Détermination du n° de la ligne de la feuille "Feuil1" où est effectuée la copie.
    Ligne_copie = DerLig1 + Ligne_lue - 1
    'separateur des cellule plaquette
    .Cells(Ligne_lue, 1).Copy
    Ws1.Cells(Ligne_copie, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Selection.TextToColumns Destination:=Ws1.Cells(Ligne_copie, 4), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, Other:=True, OtherChar _
        :="-", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
 
    .Cells(Ligne_lue, 2).Copy
    Ws1.Cells(Ligne_copie, 3).PasteSpecial Paste:=xlPasteValues
 
    Ws1.Cells(Ligne_copie, 1) = Ligne_lue - 1
 
    'recherche du code de l'essence
    'Ws1.Cells(Ligne_copie, 2).FormulaR1C1 = "=VLOOKUP(RC[1],qualite!R2C4:R28C5,1)"
    Ws1.Cells(Ligne_copie, 2) = Application.WorksheetFunction.VLookup(Ws2.Cells(Ligne_lue, 3), Ws3.Range("$D$2:$E$28"), 1)
 
    .Cells(Ligne_lue, 3).Copy
    Ws1.Cells(Ligne_copie, 7).PasteSpecial Paste:=xlPasteValues
 
    'Operation sur diametre en m
    'Ws1.Cells(Ligne_copie, 8).FormulaR1C1 = "='IMPORT DU TERRAIN'!RC[-3]/100"
    Ws1.Cells(Ligne_copie, 8) = Ws2.Cells(Ligne_lue, 5) / 100
 
    'Conditions pour ID IT
    'Ws1.Cells(Ligne_copie, 6).FormulaR1C1 = "=IF(RC[-1]="""","""",IF(RC[-1]<90,""ID"",""IT""))"
    If Ws1.Cells(Ligne_copie, 5) <> "" Then
        If Ws1.Cells(Ligne_copie, 5) < 90 Then
            Ws1.Cells(Ligne_copie, 6) = "ID"
        Else
            Ws1.Cells(Ligne_copie, 6) = "IT"
        End If
    Else
        Ws1.Cells(Ligne_copie, 6) = ""
    End If
 
    'reduction longueur en m
    'Ws1.Cells(Ligne_copie, 9).FormulaR1C1 = "=IF('IMPORT DU TERRAIN'!RC[-5]=0,0,'IMPORT DU TERRAIN'!RC[-5]/100)"
    If Ws2.Cells(Ligne_lue, 4) = 0 Then
        Ws1.Cells(Ligne_copie, 9) = 0
    Else
        Ws1.Cells(Ligne_copie, 9) = Ws2.Cells(Ligne_lue, 4) / 100
    End If
 
    'Qualité
    'Ws1.Cells(Ligne_copie, 10).FormulaR1C1 = "=VLOOKUP('IMPORT DU TERRAIN'!RC[-3],qualite!R2C1:R13C2,2)"
    Ws1.Cells(Ligne_copie, 10) = Application.WorksheetFunction.VLookup(Ws2.Cells(Ligne_lue, 7), Ws3.Range("$A$2:$B$13"), 1)
 
    'calcul pieces
    'Ws1.Cells(Ligne_copie, 11).FormulaR1C1 = "=IF(RC[-5]=""ID"",0,1)"
    If Ws1.Cells(Ligne_copie, 6) = "ID" Then
        Ws1.Cells(Ligne_copie, 11) = 0
    Else
        Ws1.Cells(Ligne_copie, 11) = 1
    End If
 
    'Calcul mesures
    'Ws1.Cells(Ligne_copie, 12).FormulaR1C1 = "=IF(RC[-4]<>0,1,0)"
    If Ws1.Cells(Ligne_copie, 8) <> 0 Then
        Ws1.Cells(Ligne_copie, 12) = 1
    Else
        Ws1.Cells(Ligne_copie, 12) = 0
    End If
 
    'Calcul grumes
    'Ws1.Cells(Ligne_copie, 13).FormulaR1C1 = "=IF(RC[-7]="""",1,0)"
    If Ws1.Cells(Ligne_copie, 6) = "" Then
        Ws1.Cells(Ligne_copie, 13) = 1
    Else
        Ws1.Cells(Ligne_copie, 13) = 0
    End If
 
    'Calcul volume net
    'Ws1.Cells(Ligne_copie, 14).FormulaR1C1 = "=ROUND((RC[-7]-RC[-5])*RC[-6]*RC[-6]*PI()/4,3)"
    '=ARRONDI((G2-I2)*H2*H2*PI()/4;3)
    Ws1.Cells(Ligne_copie, 14) = Round((Ws1.Cells(Ligne_copie, "G") - Ws1.Cells(Ligne_copie, "I")) * Ws1.Cells(Ligne_copie, "H") * Ws1.Cells(Ligne_copie, "H") * WorksheetFunction.Pi / 4, 3)
 
    'Calcul volume brut
    'Ws1.Cells(Ligne_copie, 15).FormulaR1C1 = "=ROUND(RC[-8]*RC[-7]*RC[-7]*PI()/4,3)"
    '=ARRONDI(G2*H2*H2*PI()/4;3)
    Ws1.Cells(Ligne_copie, 15) = Round(Ws1.Cells(Ligne_copie, "G") * Ws1.Cells(Ligne_copie, "H") * Ws1.Cells(Ligne_copie, "H") * WorksheetFunction.Pi / 4, 3)
 
    'Nom propriétaire
    .Range("A1").Copy
    Ws1.Cells(Ligne_copie, 17).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
 
    'Parcelle
    .Range("B1").Copy
    Ws1.Cells(Ligne_copie, 18).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
 
    'Date
    .Range("C1").Copy
    Ws1.Cells(Ligne_copie, 19).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
 
    Ligne_lue = Ligne_lue + 1
 
Wend
End With
Application.ScreenUpdating = True
End Sub |