Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Help pour debogage

  • Initiateur de la discussion Initiateur de la discussion sasori14
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Re : Help pour debogage

bonsoir,

peut être :

faux ?
Set WB = ActiveWorkbook

le classeur actif l'instruction est la suivante pour le classeur dont la macro s'exécute = ThisWorkbook

Vrai
Set WSR = ThisWorkbook.Worksheets("récap")
Set WSS = ThisWorkbook.Worksheets("fichier de sortie")
Set WST = ThisWorkbook.Worksheets("tables")

laurent
 
Dernière édition:
Re : Help pour debogage

Le début serais cela :

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 = ThisWorkbook.Worksheets("récap")
Set WSS = ThisWorkbook.Worksheets("fichier de sortie")
Set WST = ThisWorkbook.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


' Ici c'est faut car WST = une feuille ("récap") et WSR une autre feuille ("tables")
' C'est incompatible.
' RT = -- faux = WST.Range----- et ("T" & --- faux = WSR.Cells ----- (RR, 2).Value).Row
' ou la feuille WST ou WSR

RT = WST.Range("T" & WSR.Cells(RR, 2).Value).Row
CT = WST.Range("T" & WSR.Cells(RR, 2).Value).Column + 1

' Pour la suite je connais pas le fonctionnement de la macro
' RT = quel celulle ?
' CT = quel cellule ?

' ------------------------------ Fin de mon annalyse ici -----------------------------------

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

Laurent
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
1 K
M
Réponses
4
Affichages
975
mimich_88
M
S
Réponses
5
Affichages
978
P
Réponses
6
Affichages
2 K
Pat13127
P
S
Réponses
2
Affichages
748
sgangbadjo
S
Réponses
3
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…