Créer une plage dynamique de gestion du temps, Excel VBA
Voici une solution détaillée en VBA pour créer une plage dynamique de gestion du temps dans Excel.
Étape 1 : Préparer votre feuille Excel
Avant d’écrire le code VBA, préparez votre feuille de calcul avec les données relatives au temps. Supposons que :
- La colonne A contient les noms des tâches.
- La colonne B contient l’heure de début au format
hh:mm AM/PM. - La colonne C contient l’heure de fin au format
hh:mm AM/PM. - La colonne D contiendra la durée (calculée en heures).
Étape 2 : Écrire le code VBA
Ce code VBA définira dynamiquement une plage nommée pour vos données liées au temps et la mettra à jour automatiquement lorsque de nouvelles données seront ajoutées.
Code VBA :
Sub CreerPlageDynamiqueGestionTemps()
Dim ws As Worksheet
Dim derniereLigne As Long
Dim plageTemps As Range
Dim nomPlage As String
' Définir la feuille de calcul
Set ws = ThisWorkbook.Sheets("Feuil1") ' Changez "Feuil1" par le nom de votre feuille
' Trouver la dernière ligne avec des données dans la colonne A (Noms des tâches)
derniereLigne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' Définir la plage (Tâches + Données temporelles)
Set plageTemps = ws.Range("A2:D" & derniereLigne) ' En supposant que les en-têtes soient en ligne 1
' Nommer la plage dynamiquement
nomPlage = "PlageGestionTemps"
' Supprimer la plage nommée existante si elle existe
On Error Resume Next
ws.Names(nomPlage).Delete
On Error GoTo 0
' Créer la nouvelle plage nommée
ws.Names.Add Name:=nomPlage, RefersTo:=plageTemps
' Informer l'utilisateur
MsgBox "Plage dynamique de gestion du temps créée : " & nomPlage, vbInformation, "Succès"
End Sub
Étape 3 : Exécuter le code
1. Ouvrez Excel et appuyez sur ALT + F11 pour ouvrir l’éditeur VBA.
2. Cliquez sur Insertion > Module.
3. Copiez et collez le code VBA ci-dessus dans le module.
4. Exécutez la macro en appuyant sur F5 ou en la sélectionnant dans le menu Macro.
Explication :
1. Le code sélectionne la feuille de calcul (Feuil1).
2. Il détermine la dernière ligne de la colonne A (pour inclure toutes les entrées de temps).
3. Il crée une plage dynamique (PlageGestionTemps) de la colonne A à D.
4. Si la plage nommée existe déjà, elle est supprimée et recréée.
5. Une boîte de message confirme la création de la plage dynamique.
Sortie :
Après avoir exécuté la macro, vous pouvez utiliser la plage nommée "PlageGestionTemps" dans des formules ou pour la validation des données. La plage se met à jour automatiquement lorsque de nouvelles données temporelles sont ajoutées.