Parametres settings vba

Soyez le premier à donner votre avis sur cette source.

Vue 5 036 fois - Téléchargée 529 fois

Description

Les paramètres Settings existent en VB.Net. Mais en vba, je n'ai rien trouvé! J'ai donc enregistré l'etat de checkBox, comboBox, textBox,ToggleButton et optionButton à la fermeture de l'application, dans un fichier texte. A l'ouverture de l'application nous retrouvons tout nos réglages. Vous pouvez mettre le fichier texte en fichier caché et lecture seule. J'ai mis cela dans un Button pour changer et mémoriser comme exemple. Le programme est fait sous Excel et Word (c'est le même, il n'y a que l'adresse du fichier texte qui diffère)

Source / Exemple :


Voir zip

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

comme suggeré plus haut, voici un exemple de l'utilisation des "CustomDocumentProperties"

Posté ici :
http://www.vbfrance.com/codes/UTILISER-PROPRIETES-PERSO-DOCUMENT-COMME-PARAMETRES-SETTINGS_53980.aspx

Pour rassurer l'ami MIMIZanZan, l'exemple inclus une méthode de protection des propriétés par combinaison de touche, qui associée à un mot de passe sur le code devrait freiner les ardeurs d'un utilisateur lambda.

A+
Messages postés
301
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 décembre 2017

Heureux que mes explications te satisfassent, LE PIVERT.
Je voudrais ajouter qu'en ce qui concerne la sauvegarde des settings ou des données, je conseille pour ma part la solution fichier externe à Excel. En effet, dans le cas où l'on envoie un programme à un utilisateur distant susceptible de modifier ces paramètres ou ces données, on peut envoyer des mises à jour du programme Excel sans se soucier des changements effectués par l'utilisateur, à condition bien sûr de prévoir dans le code à l'ouverture du programme la récup des données du fichier binaire.
Je précise que l'on peut sauver plusieurs tableaux dans le même fichier binaire. Il faut bien sûr les ouvrir dans le même ordre pour la récup des données. A ce sujet, à titre d'exemple, je me permets de te conseiller de consulter un des programmes que j'ai déposé sur VBFrance le 19/03/2009 "FACTURATION ET GESTION DE VENTES ARTICLES" (procédures SauveDonnées et RécupDonnées dans le module Général).
Autres avantages, c'est la légèreté du fichier binaire et la rapidité de transfert des données, ce qui évite un programme Excel trop lourd car on peut effacer les données des feuilles à la fermeture.

Toujours à ta dispo si nécessaire

Cdt
Messages postés
6930
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
25 septembre 2020
112
Un grand merci MIMIZANZAN. Cela m'est très utile et très simple d'utilisation. Tes explications sont claires et nettes.
Au plaisir de te lire
@+ Le Pivert
Messages postés
301
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 décembre 2017

Salut LE PIVERT,

Pour ma 1ère proposition (création d'un fichier binaire), il faut dans mon exemple spécifier Option Base 1 en tête du module comme je l'ai mentionné en commentaire, sinon en VBA les tableaux démarrent par défaut à l'indice 0, et il faudrait alors écrire:
MsgBox A(0) & "," & A(1) & "," & A(2)
pour retrouver les 3 éléments créés dans le tableau.
Par contre, dans la 2ème proposition (création de nom), Excel attribue par défaut un tableau de base 1 quelque soit la déclaration Option Base, ce qui fait que tu as bien eu les 3 éléments du tableau.
Pour ton info les noms avec leur contenu apparaissent au niveau du menu feuille Excel avec Insertion/Nom/Définir, au même titre que les noms que l'on peut attribuer directement à une plage de cellule. Pour les maniaques du masquage, on peut cacher un nom pour qu'il n'apparaisse pas dans la boite de dialogue en écrivant simplement:
Names(votre nom).Visible=False
par ex: Names("MonTableau").Visible=False

J'espère que celà te sera utile.

Cdt
Messages postés
6930
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
25 septembre 2020
112
Merci MIMIZANZAN pour ces infos. J'ai essayé ta 2ème solution qui fonctionne très bien sous Excel. Je me demande où sont stockés les données!!!!!
Pour ceux que cela intéresse voici le code pour ce programme:

Private Sub ecriture()
Dim A As Variant
If CheckBox1.Value = True Then
etatcheck = "Vrai" 'cocher
Else
CheckBox1.Value = False
etatcheck = "Faux" 'pascocher
End If
If OptionButton1.Value = True Then
etatoption = "Vrai" 'cocher
Else
OptionButton1.Value = False
etatoption = "Faux" 'pascocher
End If
index = ComboBox1.ListIndex
texte = TextBox1
If ToggleButton1.Value = True Then
ToggleButton1.Caption = "Fermer"
etattoggle = "Ouvert"
Else
ToggleButton1.Value = False
ToggleButton1.Caption = "Ouvert"
etattoggle = "Fermer"
End If
A = Array(etatcheck, etatoption, index, texte, etattoggle)
Names.Add Name:="MonTableau", RefersTo:=A
End Sub
Private Sub lecture()
Dim monTab As Variant
monTab = [MonTableau]
etatcheck = monTab(1)
etatoption = monTab(2)
index = monTab(3)
texte = monTab(4)
etattoggle = monTab(5)
End Sub

Par contre pour ta 1ère solution, je n'ai pas réussi à la mettre en application: il n'y a que 2 noms qui s'affichent. Le fichier est bien créé.
@+ Le Pivert
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.