Dechiffrage code avec sheets(ws)
Bonjour à tous
Je suis tout nouveau sur ce forum et j'ai suivi cet été les formations de ce site en cours vba et vba avancé !
Je dois dépanner un fichier excel avec un développement assez pointu.
Sur une des macro, je bug sur les questions ci-dessous auquel je suis demandeur d'info car la je bloque :
- sheets(ws) = est ce que cela implique toutes les feuilles non cachées du fichier excel ? et quelle est l'action fait cette macro
- variable i : n° de semaines ?
- variable j : compte le nombre d'onglets ?
N'hésitez pas si je peux vous donner des précisions.
Merci d'avance
Sub Historique(ws As String)
Sheets(ws).Activate ‘ammb74 : besoin d'info sur WS ???? ****
y = Sheets(ws).Range("A1040000").End(xlUp).Row
'Calcul du stock
NSemaine = Sheets("Rapport").Range("C19") ‘ammb74 : (C18) ****
compteur = 0
AGenceI = Sheets("Rapport").Range("B23")
BO = Sheets("Rapport").Range("B24")
AgenceR = Sheets("Rapport").Range("B27")
GT = Sheets("Rapport").Range("B28")
Application.Calculation = xlManual
For i = 2 To 7 ‘ammb74: ceci concerne les semaines 2 à 7 ?
For j = 2 To y
If Sheets("Onglet HISTORIQUE").Range("AF" & j).Value > 1 And Sheets("Onglet HISTORIQUE").Range("AB" & j).Value = Sheets("Onglet HISTORIQUE").Range("A" & i) Then
compteur = compteur + 1
End If
Next j
Sheets("Onglet HISTORIQUE").Cells(i, NSemaine + 1).Value = compteur
compteur = 0
Next i
For i = 7 To 33
For j = 2 To y
If Sheets(ws).Range("AF" & j) > 1 And Sheets(ws).Range("AC" & j) = Sheets("Onglet HISTORIQUE").Range("A" & i) Then
'MsgBox sheets(ws).Range("AH" & i)
compteur = compteur + 1
End If
Next j
Sheets("Onglet HISTORIQUE").Cells(i, NSemaine + 1).Value = compteur
compteur = 0
Next i
For i = 34 To 39
For j = 2 To y
If Sheets(ws).Range("AF" & j) > 1 And Sheets(ws).Range("Z" & j) = Sheets("Onglet HISTORIQUE").Range("A" & i) Then
'MsgBox sheets(ws).Range("AH" & i)
compteur = compteur + 1
End If
Next j
Sheets("Onglet HISTORIQUE").Cells(i, NSemaine + 1).Value = compteur
compteur = 0
Next i
For i = 34 To 39
For j = 2 To y
If Sheets(ws).Range("AF" & j) > 1 And Sheets(ws).Range("AA" & j) = Sheets("Onglet HISTORIQUE").Range("A" & i) Then
'MsgBox sheets(ws).Range("AH" & i)
compteur = compteur + 1
End If
Next j
Sheets("Onglet HISTORIQUE").Cells(i, NSemaine + 1).Value = compteur
compteur = 0
Next i
‘ammb74 : Plus de condition pour les semaines 39 à 52 ???? ****
Application.Calculation = xlAutomatic
End SubBonjour
Pas facile sans voir le fichier et toutes les macros... Sinon un premier jet
- sheets(ws) = est ce que cela implique toutes les feuilles non cachées du fichier excel ? et quelle est l'action fait cette macro
ws est une variable qui doit être déclarée et référencée dans un autre macro
- variable i : n° de semaines ?
Non sinon on aurait fait intervenir Nsemaine dans la boucle i.
- variable j : compte le nombre d'onglets ?
je ne pense pas. J concerne plutot les lignes d'une feuille. On part de 2 à à la dernière ligne de la feuille ws
Si vous voulez comprendre mieux le code :
- positionnez vous sur la première ligne de code
- appuyez sur la touche F9 de votre clavier pour mettre un point d'arrêt.
- Démarrer les macros. Une fois que la macro que vous postez sera exécutée elle va s'arrêter sur le point d'arrêt.
- Continuer en appuyant sur la touche F8 pour analyser ce que le code fait