Re : Erreur d'éxecution 1004 : La méthode range de l'objet Global à échoué
Finalement j'ai trouvé la solution.
Si jamais il faut que je copie/colle mon code pour les prochain visiteurs dite le moi.
Simple question:
Si j'ai, dans une boucle FOR plusieurs IF qui se suivent et que lorsque l'un de ces IF est vrai cela ne sert à rien de tester les IF suivants car ils seront forcements faux, existe t-il un fonction (style GoTo) afin de sauter tout les IF restant et continuer le FOR avec l'incrémentation de la variable suivante?
Voici mon code pour cette question:
Sub Macro1()
Dim CheminFichier As String
Dim NomFichier As String
Dim EquipementH, EquipementI, EquipementJ, EquipementK, EquipementL, EquipementM, EquipementN, EquipementO, EquipementP, EquipementQ, EquipementR, EquipementS, EquipementT, EquipementU, EquipementV, EquipementW, EquipementX, EquipementY, EquipementZ, EquipementAA, EquipementAB, EquipementAC, EquipementAD, EquipementAE, EquipementAF, EquipementAG, EquipementAJ, EquipementAK, EquipementAL, EquipementAM, EquipementAN, EquipementAO, EquipementAP, EquipementAQ, EquipementAR, EquipementAS, EquipementAT, EquipementAU, EquipementAV, EquipementAW, EquipementAX, EquipementAY, EquipementAZ, EquipementBA, EquipementBB, EquipementBC, EquipementBD, EquipementBE, EquipementBF, EquipementBG, EquipementBH, EquipementBI, EquipementBJ, EquipementBK, EquipementBL, EquipementBM, EquipementBN, EquipementBO, EquipementBP, EquipementBQ, EquipementBR, EquipementBS, EquipementBT, EquipementBU As Variant
Dim Excel2 As Workbook
Dim I As Integer
Dim J As Integer
Dim RangeH, RangeI, RangeJ, RangeK, RangeL, RangeM, RangeN, RangeO, RangeP, RangeQ, RangeR, RangeS, RangeT, RangeU, RangeV, RangeW, RangeX, RangeY, RangeZ, RangeAA, RangeAB, RangeAC, RangeAD, RangeAE, RangeAF, RangeAG, RangeAJ, RangeAK, RangeAL, RangeAM, RangeAN, RangeAO, RangeAP, RangeAQ, RangeAR, RangeAS, RangeAT, RangeAU, RangeAV, RangeAW, RangeAX, RangeAY, RangeAZ, RangeBA, RangeBB, RangeBC, RangeBD, RangeBE, RangeBF, RangeBG, RangeBH, RangeBI, RangeBJ, RangeBK, RangeBL, RangeBM, RangeBN, RangeBO, RangeBP, RangeBQ, RangeBR, RangeBS, RangeBT, RangeBU As Variant
Dim RangeLoc1 As Variant
Dim RangeEquip As Variant
Dim RangeLoc2 As Variant
Dim RangeQuantity As Variant
ReDim RangeH(3100), RangeI(3100), RangeJ(3100), RangeK(3100), RangeL(3100), RangeM(3100), RangeN(3100), RangeO(3100), RangeP(3100), RangeQ(3100), RangeR(3100), RangeS(3100), RangeT(3100), RangeU(3100), RangeV(3100), RangeW(3100), RangeX(3100), RangeY(3100), RangeZ(3100), RangeAA(3100), RangeAB(3100), RangeAC(3100), RangeAD(3100), RangeAE(3100), RangeAF(3100), RangeAG(3100), RangeAJ(3100), RangeAK(3100), RangeAL(3100), RangeAM(3100), RangeAN(3100), RangeAO(3100), RangeAP(3100), RangeAQ(3100), RangeAR(3100), RangeAS(3100), RangeAT(3100), RangeAU(3100), RangeAV(3100), RangeAW(3100), RangeAX(3100), RangeAY(3100), RangeAZ(3100), RangeBA(3100), RangeBB(3100), RangeBC(3100), RangeBD(3100), RangeBE(3100), RangeBF(3100), RangeBG(3100), RangeBH(3100), RangeBI(3100), RangeBJ(3100), RangeBK(3100), RangeBL(3100), RangeBM(3100), RangeBN(3100), RangeBO(3100), RangeBP(3100), RangeBQ(3100), RangeBR(3100), RangeBS(3100), RangeBT(3100), RangeBU(3100)
ReDim RangeLoc1(3100)
ReDim RangeEquip(3100)
ReDim RangeLoc2(3100)
ReDim RangeQuantity(3100)
CheminFichier = Cells(2, 1)
NomFichier = Cells(3, 1)
Workbooks.Open Filename:=CheminFichier & NomFichier
Set Excel2 = ActiveWorkbook
Workbooks("Quantitatif equipements.xlsx").Activate
EquipementH = Range("H1:H1")
EquipementI = Range("I1:I1")
EquipementJ = Range("J1:J1")
EquipementK = Range("K1:K1")
EquipementL = Range("L1:L1")
EquipementM = Range("M1:M1")
EquipementN = Range("N1:N1")
EquipementO = Range("O1:O1")
EquipementP = Range("P1😛1")
EquipementQ = Range("Q1:Q1")
EquipementR = Range("R1:R1")
EquipementS = Range("S1:S1")
EquipementT = Range("T1:T1")
EquipementU = Range("U1:U1")
EquipementV = Range("V1:V1")
EquipementW = Range("W1:W1")
EquipementX = Range("X1:X1")
EquipementY = Range("Y1:Y1")
EquipementZ = Range("Z1:Z1")
EquipementAA = Range("AA1:AA1")
EquipementAB = Range("AB1:AB1")
EquipementAC = Range("AC1:AC1")
EquipementAD = Range("AD1:AD1")
EquipementAE = Range("AE1:AE1")
EquipementAF = Range("AF1:AF1")
EquipementAG = Range("AG1:AG1")
EquipementAJ = Range("AJ1:AJ1")
EquipementAK = Range("AK1:AK1")
EquipementAL = Range("AL1:AL1")
EquipementAM = Range("AM1:AM1")
EquipementAN = Range("AN1:AN1")
EquipementAO = Range("AO1:AO1")
EquipementAP = Range("AP1:AP1")
EquipementAQ = Range("AQ1:AQ1")
EquipementAR = Range("AR1:AR1")
EquipementAS = Range("AS1:AS1")
EquipementAT = Range("AT1:AT1")
EquipementAU = Range("AU1:AU1")
EquipementAV = Range("AV1:AV1")
EquipementAW = Range("AW1:AW1")
EquipementAX = Range("AX1:AX1")
EquipementAY = Range("AY1:AY1")
EquipementAZ = Range("AZ1:AZ1")
EquipementBA = Range("BA1:BA1")
EquipementBB = Range("BB1:BB1")
EquipementBC = Range("BC1:BC1")
EquipementBD = Range("BD1:BD1")
EquipementBE = Range("BE1:BE1")
EquipementBF = Range("BF1:BF1")
EquipementBG = Range("BG1:BG1")
EquipementBH = Range("BH1:BH1")
EquipementBI = Range("BI1:BI1")
EquipementBJ = Range("BJ1:BJ1")
EquipementBK = Range("BK1:BK1")
EquipementBL = Range("BL1:BL1")
EquipementBM = Range("BM1:BM1")
EquipementBN = Range("BN1:BN1")
EquipementBO = Range("BO1:BO1")
EquipementBP = Range("BP1:BP1")
EquipementBQ = Range("BQ1:BQ1")
EquipementBR = Range("BR1:BR1")
EquipementBS = Range("BS1:BS1")
EquipementBT = Range("BT1:BT1")
EquipementBU = Range("BU1:BU1")
For I = 2 To 500
RangeLoc1(I) = Range("E" & Trim(Str(I))).Value
Next I
I = 0
Excel2.Activate
For I = 2 To 3100
RangeLoc2(I) = Range("D" & Trim(Str(I))).Value
RangeEquip(I) = Range("C" & Trim(Str(I))).Value
RangeQuantity(I) = Range("B" & Trim(Str(I))).Value
Next I
I = 0
For I = 1 To 500
Excel2.Activate
For J = 1 To 3100
If RangeLoc1(I) = RangeLoc2(J) Then
If RangeEquip(J) = EquipementH Then
RangeH(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementI Then
RangeI(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementJ Then
RangeJ(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementK Then
RangeK(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementL Then
RangeL(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementM Then
RangeM(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementN Then
RangeN(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementO Then
RangeO(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementP Then
RangeP(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementQ Then
RangeQ(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementR Then
RangeR(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementS Then
RangeS(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementT Then
RangeT(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementU Then
RangeU(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementV Then
RangeV(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementW Then
RangeW(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementX Then
RangeX(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementY Then
RangeY(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementZ Then
RangeZ(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAA Then
RangeAA(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAB Then
RangeAB(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAC Then
RangeAC(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAD Then
RangeAD(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAE Then
RangeAE(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAF Then
RangeAF(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAG Then
RangeAG(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAJ Then
RangeAJ(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAK Then
RangeAK(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAL Then
RangeAL(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAM Then
RangeAM(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAN Then
RangeAN(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAO Then
RangeAO(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAP Then
RangeAP(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAQ Then
RangeAQ(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAR Then
RangeAR(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAS Then
RangeAS(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAT Then
RangeAT(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAU Then
RangeAU(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAV Then
RangeAV(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAW Then
RangeAW(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAX Then
RangeAX(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAY Then
RangeAY(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementAZ Then
RangeAZ(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBA Then
RangeBA(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBB Then
RangeBB(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBC Then
RangeBC(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBD Then
RangeBD(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBE Then
RangeBE(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBF Then
RangeBF(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBG Then
RangeBG(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBH Then
RangeBH(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBI Then
RangeBI(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBJ Then
RangeBJ(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBK Then
RangeBK(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBL Then
RangeBL(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBM Then
RangeBM(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBN Then
RangeBN(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBO Then
RangeBO(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBP Then
RangeBP(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBQ Then
RangeBQ(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBR Then
RangeBR(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBS Then
RangeBS(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBT Then
RangeBT(I) = RangeQuantity(J)
End If
If RangeEquip(J) = EquipementBU Then
RangeBU(I) = RangeQuantity(J)
End If
Next J
Next I
Workbooks("Quantitatif equipements.xlsx").Activate
For I = 2 To 500
Range("H" & Trim(Str(I))) = RangeH(I)
Range("I" & Trim(Str(I))) = RangeI(I)
Range("J" & Trim(Str(I))) = RangeJ(I)
Range("K" & Trim(Str(I))) = RangeK(I)
Range("L" & Trim(Str(I))) = RangeL(I)
Range("M" & Trim(Str(I))) = RangeM(I)
Range("N" & Trim(Str(I))) = RangeN(I)
Range("O" & Trim(Str(I))) = RangeO(I)
Range("P" & Trim(Str(I))) = RangeP(I)
Range("Q" & Trim(Str(I))) = RangeQ(I)
Range("R" & Trim(Str(I))) = RangeR(I)
Range("S" & Trim(Str(I))) = RangeS(I)
Range("T" & Trim(Str(I))) = RangeT(I)
Range("U" & Trim(Str(I))) = RangeU(I)
Range("V" & Trim(Str(I))) = RangeV(I)
Range("W" & Trim(Str(I))) = RangeW(I)
Range("X" & Trim(Str(I))) = RangeX(I)
Range("Y" & Trim(Str(I))) = RangeY(I)
Range("Z" & Trim(Str(I))) = RangeZ(I)
Range("AA" & Trim(Str(I))) = RangeAA(I)
Range("AB" & Trim(Str(I))) = RangeAB(I)
Range("AC" & Trim(Str(I))) = RangeAC(I)
Range("AD" & Trim(Str(I))) = RangeAD(I)
Range("AE" & Trim(Str(I))) = RangeAE(I)
Range("AF" & Trim(Str(I))) = RangeAF(I)
Range("AG" & Trim(Str(I))) = RangeAG(I)
Range("AJ" & Trim(Str(I))) = RangeAJ(I)
Range("AK" & Trim(Str(I))) = RangeAK(I)
Range("AL" & Trim(Str(I))) = RangeAL(I)
Range("AM" & Trim(Str(I))) = RangeAM(I)
Range("AN" & Trim(Str(I))) = RangeAN(I)
Range("AO" & Trim(Str(I))) = RangeAO(I)
Range("AP" & Trim(Str(I))) = RangeAP(I)
Range("AQ" & Trim(Str(I))) = RangeAQ(I)
Range("AR" & Trim(Str(I))) = RangeAR(I)
Range("AS" & Trim(Str(I))) = RangeAS(I)
Range("AT" & Trim(Str(I))) = RangeAT(I)
Range("AU" & Trim(Str(I))) = RangeAU(I)
Range("AV" & Trim(Str(I))) = RangeAV(I)
Range("AW" & Trim(Str(I))) = RangeAW(I)
Range("AX" & Trim(Str(I))) = RangeAX(I)
Range("AY" & Trim(Str(I))) = RangeAY(I)
Range("AZ" & Trim(Str(I))) = RangeAZ(I)
Range("BA" & Trim(Str(I))) = RangeBA(I)
Range("BB" & Trim(Str(I))) = RangeBB(I)
Range("BC" & Trim(Str(I))) = RangeBC(I)
Range("BD" & Trim(Str(I))) = RangeBD(I)
Range("BE" & Trim(Str(I))) = RangeBE(I)
Range("BF" & Trim(Str(I))) = RangeBF(I)
Range("BG" & Trim(Str(I))) = RangeBG(I)
Range("BH" & Trim(Str(I))) = RangeBH(I)
Range("BI" & Trim(Str(I))) = RangeBI(I)
Range("BJ" & Trim(Str(I))) = RangeBJ(I)
Range("BK" & Trim(Str(I))) = RangeBK(I)
Range("BL" & Trim(Str(I))) = RangeBL(I)
Range("BM" & Trim(Str(I))) = RangeBM(I)
Range("BN" & Trim(Str(I))) = RangeBN(I)
Range("BO" & Trim(Str(I))) = RangeBO(I)
Range("BP" & Trim(Str(I))) = RangeBP(I)
Range("BQ" & Trim(Str(I))) = RangeBQ(I)
Range("BR" & Trim(Str(I))) = RangeBR(I)
Range("BS" & Trim(Str(I))) = RangeBS(I)
Range("BT" & Trim(Str(I))) = RangeBT(I)
Range("BU" & Trim(Str(I))) = RangeBU(I)
Next I
End Sub