Développer un outil de suivi de données personnalisé, Excel VBA

Développer un outil de suivi de données personnalisé, Excel VBA

Voici un guide détaillé pour développer un outil de suivi de données personnalisé avec Excel VBA. Le code que je vais partager se concentre sur l’enregistrement, la mise à jour, la suppression et l’affichage de rapports simples sur les données saisies.
Outil de Suivi de Données Personnalisé avec Excel VBA
Vue d’Ensemble
Dans cet exemple, nous allons créer un système de suivi de données simple en utilisant Excel VBA. Ce système va :
1. Permettre à l’utilisateur de saisir des données via un UserForm.
2. Enregistrer ces données dans une feuille de calcul (appelée DataLog).
3. Permettre la modification et la suppression de données existantes.
4. Générer des rapports simples pour analyser les données.
Étapes de Développement :
1. Créer la feuille de suivi des données :

  • Cette feuille sera utilisée pour stocker les données saisies via le formulaire.

2. Créer le UserForm VBA :

  • Ce formulaire servira d’interface pour que l’utilisateur saisisse les données dans le système.

3. Code VBA pour gérer les opérations de données :

  • Cela inclura l’enregistrement des nouvelles données, la mise à jour des données existantes, la suppression de données et la génération de rapports simples.

4. Créer un système de rapport :

  • Un rapport de base qui résume les données saisies et les affiche de manière organisée.

1. Créer la Feuille de Suivi des Données
1. Ouvrez un nouveau classeur Excel et créez une nouvelle feuille appelée DataLog.
2. Dans la feuille DataLog, ajoutez les en-têtes suivants dans la ligne 1 :

  • ID | Nom | Date d’Entrée | Catégorie | Montant | Commentaires

Ces colonnes serviront à stocker les données saisies via le formulaire.
2. Créer le UserForm VBA
1. Ouvrez l’éditeur Visual Basic for Applications (VBA) en appuyant sur Alt + F11.
2. Insérez un UserForm en cliquant sur Insertion > UserForm.
3. Concevez le UserForm avec les éléments suivants :

  • TextBox1 : Pour l’ID (auto-généré)
  • TextBox2 : Pour le Nom
  • TextBox3 : Pour la Date d’Entrée
  • TextBox4 : Pour la Catégorie
  • TextBox5 : Pour le Montant
  • TextBox6 : Pour les Commentaires
  • CommandButton1 : Pour « Sauvegarder les données »
  • CommandButton2 : Pour « Mettre à jour les données »
  • CommandButton3 : Pour « Supprimer les données »
  • CommandButton4 : Pour « Générer le rapport »

3. Code VBA pour les Opérations de Données
Maintenant, ajoutons le code VBA pour gérer les opérations des données.
Code pour Sauvegarder les Données
Nous allons créer un macro qui enregistre les données saisies dans le UserForm dans la feuille DataLog.

Private Sub CommandButton1_Click()
    ' Déclarer les variables
    Dim ws As Worksheet
    Dim lastRow As Long
    ' Définir la feuille de travail
    Set ws = ThisWorkbook.Sheets("DataLog")
    ' Trouver la dernière ligne vide dans la feuille DataLog
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
    ' Écrire les données dans la ligne suivante
    ws.Cells(lastRow, 1).Value = lastRow - 1  ' ID auto-généré
    ws.Cells(lastRow, 2).Value = TextBox2.Value ' Nom
    ws.Cells(lastRow, 3).Value = TextBox3.Value ' Date d'Entrée
    ws.Cells(lastRow, 4).Value = TextBox4.Value ' Catégorie
    ws.Cells(lastRow, 5).Value = TextBox5.Value ' Montant
    ws.Cells(lastRow, 6).Value = TextBox6.Value ' Commentaires
    ' Vider les champs du formulaire après l'enregistrement
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    TextBox5.Value = ""
    TextBox6.Value = ""
    ' Message de confirmation
    MsgBox "Données sauvegardées avec succès !", vbInformation
End Sub

Explication :

  • Cette procédure écrit les valeurs du formulaire dans la première ligne vide de la feuille DataLog.
  • L’ID est généré automatiquement en fonction de la ligne suivante.
  • Après avoir sauvegardé les données, les champs du formulaire sont réinitialisés pour une nouvelle saisie.

Code pour Mettre à Jour les Données
Nous allons maintenant créer un code pour mettre à jour les données en fonction de l’ID saisi par l’utilisateur.

Private Sub CommandButton2_Click()
    ' Déclarer les variables
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim foundRow As Long
    Dim userID As Long
    ' Définir la feuille de travail
    Set ws = ThisWorkbook.Sheets("DataLog")
    ' Récupérer l'ID de l'utilisateur
    userID = TextBox1.Value
    ' Vérifier si l'ID est valide
    If userID = 0 Then
        MsgBox "Veuillez entrer un ID valide", vbExclamation
        Exit Sub
    End If
    ' Trouver la ligne correspondante à l'ID
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    foundRow = 0
    For i = 2 To lastRow
        If ws.Cells(i, 1).Value = userID Then
            foundRow = i
            Exit For
        End If
    Next i
    ' Si l'ID n'est pas trouvé, afficher un message d'erreur
    If foundRow = 0 Then
        MsgBox "ID non trouvé.", vbExclamation
        Exit Sub
    End If
    ' Mettre à jour les données
    ws.Cells(foundRow, 2).Value = TextBox2.Value ' Nom
    ws.Cells(foundRow, 3).Value = TextBox3.Value ' Date d'Entrée
    ws.Cells(foundRow, 4).Value = TextBox4.Value ' Catégorie
    ws.Cells(foundRow, 5).Value = TextBox5.Value ' Montant
    ws.Cells(foundRow, 6).Value = TextBox6.Value ' Commentaires
    ' Message de confirmation
    MsgBox "Données mises à jour avec succès !", vbInformation
End Sub

Explication :

  • La macro recherche l’ID saisi dans le formulaire et trouve la ligne correspondante dans la feuille.
  • Si l’ID existe, les données sont mises à jour avec les nouvelles valeurs du formulaire.
  • Si l’ID n’existe pas, un message d’erreur est affiché.

Code pour Supprimer les Données
Créons maintenant une macro pour supprimer une entrée en fonction de l’ID saisi.

Private Sub CommandButton3_Click()
    ' Déclarer les variables
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim foundRow As Long
    Dim userID As Long
    ' Définir la feuille de travail
    Set ws = ThisWorkbook.Sheets("DataLog")
    ' Récupérer l'ID de l'utilisateur
    userID = TextBox1.Value
    ' Vérifier si l'ID est valide
    If userID = 0 Then
        MsgBox "Veuillez entrer un ID valide", vbExclamation
        Exit Sub
    End If
    ' Trouver la ligne correspondante à l'ID
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    foundRow = 0
    For i = 2 To lastRow
        If ws.Cells(i, 1).Value = userID Then
            foundRow = i
            Exit For
        End If
    Next i
    ' Si l'ID n'est pas trouvé, afficher un message d'erreur
    If foundRow = 0 Then
        MsgBox "ID non trouvé.", vbExclamation
        Exit Sub
    End If
    ' Supprimer la ligne
    ws.Rows(foundRow).Delete
    ' Message de confirmation
    MsgBox "Données supprimées avec succès !", vbInformation
End Sub

Explication :

  • La macro recherche l’ID et supprime la ligne correspondante si l’ID est trouvé.
  • Si l’ID n’existe pas, un message d’erreur est affiché.

Code pour Générer un Rapport Simple
Enfin, créons une fonction pour générer un rapport simple qui résume les données.

Private Sub CommandButton4_Click()
    ' Déclarer les variables
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim reportRange As Range
    ' Définir la feuille de travail
    Set ws = ThisWorkbook.Sheets("DataLog")
    ' Obtenir la dernière ligne avec des données
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    ' Définir la plage à imprimer (exclure les en-têtes)
    Set reportRange = ws.Range("A1:F" & lastRow)
    ' Copier et générer un rapport dans un nouveau classeur
    reportRange.Copy
    Workbooks.Add
    ActiveSheet.Paste
    ActiveWorkbook.SaveAs "RapportDonnées.xlsx"
    ' Message de confirmation
    MsgBox "Rapport généré avec succès !", vbInformation
End Sub

Explication :

  • Cette fonction copie les données de la feuille DataLog et génère un nouveau classeur avec ces données.
  • Le rapport est enregistré sous le nom « RapportDonnées.xlsx ».

Conclusion
Avec cet outil VBA dans Excel, vous pouvez facilement suivre, mettre à jour, supprimer et générer des rapports pour vos données. Le système est flexible et peut être étendu avec des fonctionnalités supplémentaires, telles que l’ajout de filtres pour les rapports, l’amélioration de l’interface du UserForm ou l’ajout de validations de données plus complexes.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x