Expliquer toutes abréviations de la procédure Sub Générer_TablesMensuelles
- Messages
- 1'214
- Excel
- 2024 FR
- Inscrit
- 18/07/2014
- Emploi
- Retraité fonction publique territoriale
Bonsoir à toutes et à tous,
J'avoue que personnellement je ne suis plus un fanatique des abréviations. Aussi, suisèje un peu perdu par toutes les abréviations employées dans le module MGéstionTablesMensuelles, procédure Sub Générer_TablesMensuellesMMR. Merci de me dire ce que signifient les différentes abréviations utilisées dans le fichier Comptabilitébegoodv1-3.xlsm. Je vous joints également mon fichier menusx.xlsm dans lequel, pour la procédure ci avant mentionnée, j'ai commencé à écrire ce que représentaient les abréviations, sans garantie de leur exactitude.
Fichier Comptabilitébegoodv1-3.xlsm :
Mon fichier menus.xlsm :
D'avance merci pour votre aide. Bonnes fin de soirée, nuit et continuation à toutes et à tous. Prenez bien soin de vous.
Bonjour,
Je doute sincèrement que quiconque puisse vous aider à ce sujet ici.
Une abréviation est toujours associée à un contexte que, dans ce cas précis, nous n'avons pas. Je vous conseille de vous rapprocher de la personne qui a écrit ce code si vous voulez un descriptif des abréviations utilisées dans ses nommages.
À bientôt.
Bonsoir,
un essai :
Sub Générer_TablesMensuellesMMR()
Dim tDeb As Double ' temps de début afin de faire un top départ
tDeb = Timer ' on lui attribue l'heure actuelle du système
Dim i As Long, j As Long, n As Long
Const nLig = 23 ' nombre de ligne
Const nCol = 8 ' nombre de colonne
Dim tBDMenus() As Variant ' tableau Base de Données des menus
tBDMenus = Range("TabBDMenus").Value ' on le rempli en récupérant les données de la plage
Dim tEnTêteMMR As Variant ' tableau regroupant les différents intitulé du tableau de sortie
tEnTêteMMR = Array("Date", "Légume", "Viande", "Dessert", "Jour férié", "Nature", "Numéro", "Mois")
Dim Tablo(12), Tj(12), Temp(nLig, nCol)
For i = 1 To 12
Tablo(i) = Temp
Tj(i) = 1
Next i
For i = 1 To UBound(tBDMenus, 1)
If tBDMenus(i, 2) = "MMR" Then
n = Month(tBDMenus(i, 3))
Tablo(n)(Tj(n), 1) = Format(tBDMenus(i, 3), "dddddd")
Tablo(n)(Tj(n), 2) = tBDMenus(i, 5)
Tablo(n)(Tj(n), 3) = tBDMenus(i, 19)
Tablo(n)(Tj(n), 4) = tBDMenus(i, 27)
Tablo(n)(Tj(n), 5) = tBDMenus(i, 35)
Tablo(n)(Tj(n), 6) = tBDMenus(i, 2)
Tablo(n)(Tj(n), 7) = tBDMenus(i, 34)
Tablo(n)(Tj(n), 8) = tBDMenus(i, 36)
Tj(n) = Tj(n) + 1
End If
Next i
Application.ScreenUpdating = False
Dim ws As Worksheet, p As Range ' ws feuille ou onglet, p pour une plage
Set ws = Sheets("Tables MMR")
Set p = ws.Range("A:H")
With p
.Clear
.Font.Bold = True
.Font.Size = 14
.Range("A1").Value = "Tables menus midi retraite de l'année " & Range("Année_en_Cours").Value
For i = 1 To 12
If Tj(i) = 1 Then Tj(i) = 2
.Range("A" & Rows.Count).End(xlUp).Offset(2, 0).Value = "TableMMR" & i
ws.ListObjects.Add(xlSrcRange, .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Resize(1, nCol), , xlYes).Name = "TableMMR" & i
Range("TableMMR" & i).Resize(Tj(i) - 1, nCol) = Tablo(i)
Range("TableMMR" & i & "[[#Headers]]").Value = tEnTêteMMR
'.Range("A" & Rows.Count).End(xlUp).Offset(2, 0).Value = "Générée le, " & Format(Date, "dddddd")
'.Range("A" & Rows.Count).End(xlUp).Offset(-1, 0).Resize(1, nCol).Delete
Next i
'.Cells(2, 1).Value = Timer - tDeb ' ici on affiche le temps que le code a mit pour tourner
End With
End Sub@ bientôt
LouReeD
- Messages
- 1'214
- Excel
- 2024 FR
- Inscrit
- 18/07/2014
- Emploi
- Retraité fonction publique territoriale
Bonjour LouReeD,
Merci pour vos explications, c'est plus clair maintenant. et pour dddddd, cela permet d'avoir une date longue, sous la forme Lundi 27 octobre 2025 par exemple ? Pourrez-vous, s'il vous plaît, continuer pour les autres lignes non encore documentées ? d'avance merci.
Tablo(n)(Tj(n), 1) = Format(tBDMenus(i, 3), "dddddd") : le 1 : numéro de la colonne du tableau destinataire; le 3 : numéro de la colonne du tableau source.
Tableau destinataire : TableMMR1 (et ainsi de suite jusqu'à 12); Tableau source : TabBDMenus. Tablo : il remplace le nom du tableau destinataire (remplace n'est peut-être pas le terme approprié).
Bonjour à tous,
@Budgets : Il me semble que vous n'écoutez pas les conseils que l'on peut vous donner, avant de mettre un million de commentaires demarez par le début. Faites quelques recherches et vous trouverez sur ce site et ailleurs plein de documentation sur la programmation.
- Par exemple pour les tableaux.
- Ou en plus général.
- Pour l'aide de Microsoft et les fonctions Excel.
- Et pour finir l'aide Microsoft pour les références VBA.
Voilà pour un début vous avez pas mal de lecture. Dans votre explorateur Web faites-vous donc des liens bien ordonnés pour pouvoir y accéder à vos envies.
Voilà mon menu typique concernant la programmation. Prenez donc le temps à la lecture, et faite des essais sur de petits classeurs de test.