S
sasori14
Guest
Bonsoir,
Je ne m'en sors pas. Ce code tourne sur le PC ou il a été réalisé mais bug lorsqu'il est ouvert sur autres PC quelque soit la version d'Excel employée...
Une idée ? (je deviens fou !!!)🙁
Sub Ventilation()
On Error GoTo Err_Treatment
'---------------------------------------------------------------
'---------------------------------------------------------------
'- DECLARATIONS VARIABLES -
'---------------------------------------------------------------
'---------------------------------------------------------------
Dim XLS As Application 'Declaration Excel
Dim WB As Workbook 'Declaration du fichier Excel
Dim WSR As Worksheet 'Declaration de l'onglet Recap
Dim WSS As Worksheet 'Declaration de l'onglet Sortie
Dim WST As Worksheet 'Declaration de l'onglet Tables
Dim RR As Long 'Declaration de l'index de ligne courante de l'onglet Recap
Dim RS As Long 'Declaration de l'index de ligne courante de l'onglet Sortie
Dim RT As Long 'Declaration de l'index de ligne courante de l'onglet Table
Dim CT As Long 'Declaration de l'index de colone courante de l'onglet Table
'---------------------------------------------------------------
'---------------------------------------------------------------
'- INITIALISATION VARIABLES -
'---------------------------------------------------------------
'---------------------------------------------------------------
Set XLS = ActiveWorkbook.Application
Set WB = ActiveWorkbook
Set WSR = WB.Worksheets("récap")
Set WSS = WB.Worksheets("fichier de sortie")
Set WST = WB.Worksheets("tables")
RR = 2
RS = 2
XLS.Calculation = xlCalculationManual
'---------------------------------------------------------------
'---------------------------------------------------------------
'- TRAITEMENT -
'---------------------------------------------------------------
'---------------------------------------------------------------
While WSR.Cells(RR, 1).Value <> "" 'On boucle sur les ligne de la colone A. Le Traitment
' lorsque qu'une cellule vide est identifiée
RT = WST.Range("T" & WSR.Cells(RR, 2).Value).Row
CT = WST.Range("T" & WSR.Cells(RR, 2).Value).Column + 1
While WST.Cells(RT + 3, CT).Value <> ""
WSS.Cells(RS + WST.Cells(RT + 3, CT).Value - 1, 1).Value = WSR.Cells(RR, 1).Value
If WST.Cells(RT + 3, CT).Value = 1 Then
WSS.Cells(RS, 7).Value = WSR.Cells(RR, 11).Value
Else
WSS.Cells(RS + WST.Cells(RT + 3, CT).Value - 1, 7).Formula = "=R[-1]C[1]"
End If
WSS.Cells(RS + WST.Cells(RT + 3, CT).Value - 1, 8).Formula = "=RC[-1]+" & WSR.Cells(RR, 13).Value * WST.Cells(RT + 2, CT).Value
WSS.Cells(RS + WST.Cells(RT + 3, CT).Value - 1, 5).Value = WSR.Cells(RR, 7).Value * WST.Cells(RT + 1, CT).Value
WSS.Cells(RS + WST.Cells(RT + 3, CT).Value - 1, 3).Value = WST.Cells(RT, CT).Value
CT = CT + 1
Wend
RS = RS + CT - WST.Range("T" & WSR.Cells(RR, 2).Value).Column - 1
ERR_TOPO:
RR = RR + 1
Wend
Err_Treatment:
Select Case Err.Number
Case 1004
WSR.Cells(RR, 2).Interior.ColorIndex = 3
GoTo ERR_TOPO
Case Else
End Select
XLS.Calculate
XLS.Calculation = xlCalculationAutomatic
End Sub
Je ne m'en sors pas. Ce code tourne sur le PC ou il a été réalisé mais bug lorsqu'il est ouvert sur autres PC quelque soit la version d'Excel employée...
Une idée ? (je deviens fou !!!)🙁
Sub Ventilation()
On Error GoTo Err_Treatment
'---------------------------------------------------------------
'---------------------------------------------------------------
'- DECLARATIONS VARIABLES -
'---------------------------------------------------------------
'---------------------------------------------------------------
Dim XLS As Application 'Declaration Excel
Dim WB As Workbook 'Declaration du fichier Excel
Dim WSR As Worksheet 'Declaration de l'onglet Recap
Dim WSS As Worksheet 'Declaration de l'onglet Sortie
Dim WST As Worksheet 'Declaration de l'onglet Tables
Dim RR As Long 'Declaration de l'index de ligne courante de l'onglet Recap
Dim RS As Long 'Declaration de l'index de ligne courante de l'onglet Sortie
Dim RT As Long 'Declaration de l'index de ligne courante de l'onglet Table
Dim CT As Long 'Declaration de l'index de colone courante de l'onglet Table
'---------------------------------------------------------------
'---------------------------------------------------------------
'- INITIALISATION VARIABLES -
'---------------------------------------------------------------
'---------------------------------------------------------------
Set XLS = ActiveWorkbook.Application
Set WB = ActiveWorkbook
Set WSR = WB.Worksheets("récap")
Set WSS = WB.Worksheets("fichier de sortie")
Set WST = WB.Worksheets("tables")
RR = 2
RS = 2
XLS.Calculation = xlCalculationManual
'---------------------------------------------------------------
'---------------------------------------------------------------
'- TRAITEMENT -
'---------------------------------------------------------------
'---------------------------------------------------------------
While WSR.Cells(RR, 1).Value <> "" 'On boucle sur les ligne de la colone A. Le Traitment
' lorsque qu'une cellule vide est identifiée
RT = WST.Range("T" & WSR.Cells(RR, 2).Value).Row
CT = WST.Range("T" & WSR.Cells(RR, 2).Value).Column + 1
While WST.Cells(RT + 3, CT).Value <> ""
WSS.Cells(RS + WST.Cells(RT + 3, CT).Value - 1, 1).Value = WSR.Cells(RR, 1).Value
If WST.Cells(RT + 3, CT).Value = 1 Then
WSS.Cells(RS, 7).Value = WSR.Cells(RR, 11).Value
Else
WSS.Cells(RS + WST.Cells(RT + 3, CT).Value - 1, 7).Formula = "=R[-1]C[1]"
End If
WSS.Cells(RS + WST.Cells(RT + 3, CT).Value - 1, 8).Formula = "=RC[-1]+" & WSR.Cells(RR, 13).Value * WST.Cells(RT + 2, CT).Value
WSS.Cells(RS + WST.Cells(RT + 3, CT).Value - 1, 5).Value = WSR.Cells(RR, 7).Value * WST.Cells(RT + 1, CT).Value
WSS.Cells(RS + WST.Cells(RT + 3, CT).Value - 1, 3).Value = WST.Cells(RT, CT).Value
CT = CT + 1
Wend
RS = RS + CT - WST.Range("T" & WSR.Cells(RR, 2).Value).Column - 1
ERR_TOPO:
RR = RR + 1
Wend
Err_Treatment:
Select Case Err.Number
Case 1004
WSR.Cells(RR, 2).Interior.ColorIndex = 3
GoTo ERR_TOPO
Case Else
End Select
XLS.Calculate
XLS.Calculation = xlCalculationAutomatic
End Sub