Le code utilisé est placé dans un classeur chargé en Complément Excel
Je travaille avec plusieurs UserForms que l'utilisateur peut évidemment déplacer à sa convenance où il veut et en particulier sur un 2ème écran.
Entre 2 affichages d'un UserForm donné, je conserve sa dernière position pour le ré-afficher à l'endroit où il l'avait préalablement déplacé.
Problème:
Hélas, lorsque le dernier classeur se ferme, je perds tous les positionnements car le Complément n'est plus utilisé et il sera rechargé à la prochaine ouverture d'un classeur avec des variables toutes ré-initialisées.
Question:
Comment conserver des valeurs dans un Complément d'une exécution à l'autre ?
Puis-je écrire dans une feuille du Complément ? Non !
Dois-je externaliser ces valeurs dans un fichier texte ?
Le code utilisé est placé dans un classeur chargé en Complément Excel
Je travaille avec plusieurs UserForms que l'utilisateur peut évidemment déplacer à sa convenance où il veut et en particulier sur un 2ème écran.
Entre 2 affichages d'un UserForm donné, je conserve sa dernière position pour le ré-afficher à l'endroit où il l'avait préalablement déplacé.
Problème:
Hélas, lorsque le dernier classeur se ferme, je perds tous les positionnements car le Complément n'est plus utilisé et il sera rechargé à la prochaine ouverture d'un classeur avec des variables toutes ré-initialisées.
Question:
Comment conserver des valeurs dans un Complément d'une exécution à l'autre ?
Puis-je écrire dans une feuille du Complément ? Non !
Dois-je externaliser ces valeurs dans un fichier texte ?
Bonjour à tous,
Perso, pour mémoriser une position d'un userform dans un classeur, j'utilise ceci
VB:
Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Top = [Userform1Top]
Me.Left = [Userform1letf]
End Sub
Private Sub UserForm_Layout()
ActiveWorkbook.Names.Add Name:="Userform1Top", RefersTo:=UserForm1.Top
ActiveWorkbook.Names.Add Name:="Userform1letf", RefersTo:=UserForm1.Left
End Sub
Créer et lancer "Private Sub UserForm_Layout()" en premier
A adapter également aux autres userform
re
exemple comme ça vite fait
je crée un xlam avec une petite fonction pour dire bonjour
dans le module dans le XLAM
VB:
Public Function hello()
MsgBox "bonjour"
End Function
je nomme le project pour le reconnaitre dans mes refs
je le sauve dans le dossier qui est destiné aux addins
je vais dans les options excel et j'active mon xlam
dans un nouveau classeur maintenant
je vais dans mes refs et je coche la reference au xlam
voilà mon xla est activé est installé dans le cnew classeur
je test la fonction pour voir
voilà ca marche
maintenant je vais enregistrer un mot dans la cellule A1 de la feuille(1) du xlam
VB:
Sub ecriture() 'dans la feuille(1) du xlam
'ecriture
With Workbooks("testhello.xlam")
.IsAddin = False
DoEvents
.Sheets(1).Cells(1) = "Salut @Dudu2"
.IsAddin = True
.Save
End With
End Sub
voila
je ferme tout xlam et classeur porte d'entré et tout et tout
je ré ouvre mon new classeur
je lis la cellule du xlam
VB:
Sub testLecture()
With Workbooks("testhello.xlam")
MsgBox .Sheets(1).Cells(1)
End With
End Sub
re
voilà terminé tu sais ou memoriser tes données
PS:
sur certaines config VA SAVOIR POURQUOI ??;
on est meme pas obligé de deactiver le xlam en tant addins ".isaddin=( fase/true ) "
je n'ai jamais trouvé pourquoi
je veux voir les feuilles de mon xlam
VB:
Sub VoirLesFeuillesDuXlamDansVBE() ' et regarder la cellule A1
Workbooks("testhello.xlam").IsAddin = False
End Sub
le xlam s'affiche alors comme un classeur normal
voyons voir ce qu'il y a d’écrit en A1 dans le xlam