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
| 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 |
Partager