Explication de termes d'une macro
Résolu
jenor
Messages postés
51
Statut
Membre
-
jenor Messages postés 51 Statut Membre -
jenor Messages postés 51 Statut Membre -
Bonjour,
J'aurai à nouveau besoin de vous pour m'expliquer les termes d'une macro qui m'a été donné. Pouvez-vous insérer un commentaire à chaque ligne ... (s'arrêter juste avant Case 2 biensûr)? Je débute avec VBA, et je ne comprends pas grand chose (même avec l'aide Excel).
Voici la macro :
Je vous remercie par avance pour votre réponse.
J'aurai à nouveau besoin de vous pour m'expliquer les termes d'une macro qui m'a été donné. Pouvez-vous insérer un commentaire à chaque ligne ... (s'arrêter juste avant Case 2 biensûr)? Je débute avec VBA, et je ne comprends pas grand chose (même avec l'aide Excel).
Voici la macro :
Private Sub PutFormulas(cas As Integer) Dim nbLi As Long nbLi = Feuil1.[A1].CurrentRegion.Rows.Count With Feuil1.Range("C" & nbLi + 1) .EntireRow.Insert Select Case cas Case 1 .Offset(-1, 0).Formula = .Offset(-2, 0).Formula .Offset(-1, 1).Formula = .Offset(-2, 1).Formula Case 2 .Offset(-1, 0).Formula = .Offset(-2, 0).Formula .Offset(-1, 1).Formula = 0 Case 3 .Offset(-1, 0).ClearContents .Offset(-1, 1).Formula = .Offset(-2, 1).Formula End Select End With End Sub
Je vous remercie par avance pour votre réponse.
A voir également:
- Explication de termes d'une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Foyer netflix explication - Accueil - Guide streaming
- Paris multiple 2/6 explication ✓ - Forum Loisirs / Divertissements
3 réponses
Bonjour
Cdlmnt
Private Sub PutFormulas(cas As Integer) Dim nbLi As Long ' nombre (.Count) de lignes (.Rows) de la plage occupée à partir de A1 dans la feuille 1 ' la plage occupée part de A1 ' jusqu'à la dernière ligne contenant une valeur ' jusqu'à la dernère colonne contenant une valeur nbLi = Feuil1.[A1].CurrentRegion.Rows.Count ' pour la cellule "C" & nbLi+1 de la feuille 1 ' pour exemple : si Nbli = 10, la suite se refèrera à C11 With Feuil1.Range("C" & nbLi + 1) ' insertion d'une ligne à la ligne 11 .EntireRow.Insert ' selon la valeur de cas Select Case cas ' si cas = 1 Case 1 ' Formule en C10 = formule en C9 .Offset(-1, 0).Formula = .Offset(-2, 0).Formula ' Formule en D10 = formule en D9 .Offset(-1, 1).Formula = .Offset(-2, 1).Formula Case 2 .Offset(-1, 0).Formula = .Offset(-2, 0).Formula .Offset(-1, 1).Formula = 0 Case 3 ' suppression du contenu de C10 .Offset(-1, 0).ClearContents .Offset(-1, 1).Formula = .Offset(-2, 1).Formula End Select End With End Sub
Cdlmnt
Bonjour Jenor, bonjour le forum,
Private Sub PutFormulas(cas As Integer) Dim nbLi As Long 'déclare la variable nbLi (nombre de lignes) de type Long (compris entre -2 147 483 648 et 2 147 483 647) nbLi = Feuil1.[A1].CurrentRegion.Rows.Count 'définit la variable nbLi (le nombre de lignes) 'CurrentRegion correspond à toutes les cellules autour de A1 sans qu'une ligne ou une colonne vide ne les sépare 'de cet ensemble de cellules on en compte le nombre de lignes (ça correspond à [Ctrl]+[*] dans une cellule)... 'Offset est le décalage (x, y) par rapport à une cellule. x correspond aux lignes (positif on descend, négatif on monte), 'y correspond au colonnes (positif vers la droite, négatif vers la gauche) With Feuil1.Range("C" & nbLi + 1) 'prend en compte la cellule ligne nbLi + 1, colonne C de l'onglet Feuil1 ( c'est la base pour le décalage) .EntireRow.Insert 'insère une ligne Select Case cas 'agit en fonction de la variable cas définie comme entier dans la procédure Case 1 'si cas vaut 1 'renvoie la formule de la cellule deux lignes au-dessus de la base, dans la cellule une ligne au-dessus de la base .Offset(-1, 0).Formula = .Offset(-2, 0).Formula 'renvoie la formule de la cellule deux lignes au-dessus une colonne à à droite de la base, dans la cellule une ligne au-dessus une colonne à droite de la base .Offset(-1, 1).Formula = .Offset(-2, 1).Formula Case 2 'si cas vaut 2 'renvoie la formule de la cellule deux lignes au-dessus de la base, dans la cellule une ligne au-dessus de la base .Offset(-1, 0).Formula = .Offset(-2, 0).Formula 'renvoie zéro dans le cellule une ligne au-dessus une colonne à droite de la base .Offset(-1, 1).Formula = 0 Case 3 'si cas vaut 3 'efface la cellule une ligne au-dessus de la base .Offset(-1, 0).ClearContents 'renvoie la formule de la cellule deux lignes au-dessus une colonne à à droite de la base, dans la cellule une ligne au-dessus une colonne à droite de la base .Offset(-1, 1).Formula = .Offset(-2, 1).Formula End Select 'fin de l'action en fonction de la variable cas End With 'fin de la prise en compte de la cellule ligne nbLi + 1, colonne C de l'onglet Feuil1 (base) End Sub