Créer une procédure de sauvegarde

Fermé
RED_14 - Modifié le 9 avril 2018 à 10:06
yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 - 8 avril 2018 à 19:22
Bonjour,

je dois réaliser un tp pour mon cours de VBA. Il s'agit d'un cours d'introduction. Dans mon problème la procédure que je dois créer intitulé "sauvegarde" reçoit un tableau de résultat. Le tableau reçu est lié avec un type "t_resultat" que j'ai réalisé plus tôt. La procédure "sauvegarde" efface tout les résultats sur une feuille excel intitulé "Resultat" et inscrit les résultats dans le tableau reçu.

J'ai aussi créé une fonction "nb_item" et deux procédure "ecrire" et "effacer" que je croix qu'il faux utiliser pour résoudre le problème.
Je croix qu'il faux faire ces étapes pour résoudre le problème :

Étape : 1
Utiliser la fonction "nb_items" pour trouver combien il y a de resultat
sur la feuille "Resultat"

Étape : 2
Utiliser la procédure "effacer" pour effacer les resultats sur la feuille
"Resultat"

Étape : 3
Utiliser la procédure "ecrire" pour ecrire les résultats du tableau reçu

Est-ce que ma logique est bonne ? Si oui, comment on peut réaliser ses étapes sur VBA ? Si non, qu'est-ce qu'il faut faire.

Voici les demarches que j'ai pour l'instant:

Public Const NB_LIGNE_ENTETE As Integer = 1

Public Const PROPRIETAIRE As Integer = 1
Public Const ADRESSE As Integer = 2
Public Const LOGEMENT As Integer = 3

Function nb_items() As Integer

   nb_items = bd_resultats.Range("A1").CurrentRegion.Rows.Count - NB_LIGNE_ENTETE
        
End Function


Sub ecrire(ByRef resultat_reçu As t_resultat, ByRef indice As Integer)

    bd_resulat.Cells(indice + NB_LIGNE_ENTETE, PROPRIETAIRE).Value = resultat_reçu.nom_proprietaire
    bd_resulat.Cells(indice + NB_LIGNE_ENTETE, ADRESSE).Value = resultat_reçu.adresse_proprietaire
    bd_resulat.Cells(indice + NB_LIGNE_ENTETE, LOGEMeNET).Value = resultat_reçu.nb_logement

End Sub


Sub effacer()

    If bd_resultats.Range("A2").CurrentRegion.Value = True Then
    
        Call Rows(2).Delete
    End If
    

End Sub


Sub sauvegarder(ByRef tableau_reçu() As t_resultat)

End Sub


Merci d'avance et bonne journée

A voir également:

1 réponse

yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 Ambassadeur 1 551
8 avril 2018 à 19:22
bonsoir, il me semble que tu vas dans la bonne direction.
pour continuer, je suggère:
- ajouter option explicit en haut du module
- vérifier que ton code se compile correctement, et le modifier le cas échéant
- documenter (en commentaire) les éléments qui manquent, puis de réfléchir à comment y arriver.
 
0