garde en memoire un label

gege21

XLDnaute Occasionnel
bonjours a tous

je voudrai savoir comment faire pour garde un mémoire le contenu d'un label ( ici record_1) sans passe par une feuille excel
et lancer une macro si et le contenu change
 

Pièces jointes

  • beta1-1.xls
    68 KB · Affichages: 84
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : garde en memoire un label

Re,

Normal que ca bogue, dans les propriétés personnalisées de ton classeur il y en a 3 nommées TextBox1, TextBox2 et TextBox3 et pas de contrôles dans ton USF avec ces noms...

il y a sans doute lieu d'effectuer quelques tests, peut être avec ceci à adapter à ton cas...
Code:
Option Explicit
Private Sub UserForm_Initialize()
Dim d As DocumentProperty, c As Control
With ThisWorkbook
    For Each d In .CustomDocumentProperties
        For Each c In Me.Controls
            If c.Name = d.Name Then c.Value = d.Value: Exit For
        Next c
    Next d
End With
End Sub
Private Sub UserForm_Terminate()
Dim d As DocumentProperty, c As Control, i As Byte
With ThisWorkbook
    For Each d In .CustomDocumentProperties
        For Each c In Me.Controls
            If c.Name = d.Name Then d.Delete: Exit For
        Next c
    Next d
End With
For i = 1 To 3
    With Me.Controls("TextBox" & i)
        ThisWorkbook.CustomDocumentProperties.Add .Name, False, msoPropertyTypeString, .Value
    End With
Next i
End Sub
 

gege21

XLDnaute Occasionnel
Re : garde en memoire un label

re.
Normal que ca bogue, dans les propriétés personnalisées de ton classeur il y en a 3 nommées TextBox1, TextBox2 et TextBox3 et pas de contrôles dans ton USF avec ces noms...

le problème et que moi c des label que j'utilise et c sa qui fais bogue
je pense que c a se niveaux qu'il faut regarder

et sa
- quand je clic sur le bouton recherche record si le contenu du label change je doit lancer la macro "mamacro1"
es que c possible
 

Pierrot93

XLDnaute Barbatruc
Re : garde en memoire un label

Re,

le problème et que moi c des label que j'utilise et c sa qui fais bogue
je pense que c a se niveaux qu'il faut regarder
même principe à appliquer.... comme dit plus haut, peut être nettoyer les propriétés du classeur ... et regarde le nouveau code avec tests.... je pense que tu as tous les codes nécessaire pour parvenir à tes fins...
 

Pierrot93

XLDnaute Barbatruc
Re : garde en memoire un label

Re,

le label n'a pas de propriété value comme le textbox, as tu bien remplacé celle ci par la propriété caption ???
Code:
Option Explicit
Private Sub UserForm_Initialize()
Dim d As DocumentProperty, c As Control
With ThisWorkbook
    For Each d In .CustomDocumentProperties
        For Each c In Me.Controls
            If c.Name = d.Name Then c.Caption = d.Value: Exit For
        Next c
    Next d
End With
End Sub
Private Sub UserForm_Terminate()
Dim d As DocumentProperty, c As Control, i As Byte
With ThisWorkbook
    For Each d In .CustomDocumentProperties
        For Each c In Me.Controls
            If c.Name = d.Name Then d.Delete: Exit For
        Next c
    Next d
End With
For i = 1 To 3
    With Me.Controls("Label" & i)
        ThisWorkbook.CustomDocumentProperties.Add .Name, False, msoPropertyTypeString, .Caption
    End With
Next i
End Sub
 

gege21

XLDnaute Occasionnel
Re : garde en memoire un label

re.
oui j'avais bien mis "caption"
mais je vu l'erreur que j'avais commise
If c.Name = d.Name Then c.Caption = d.Caption : Exit For

a la place de
If c.Name = d.Name Then c.Caption = d.Value: Exit For

donc sa marche bien avec les label

maintenant que cette partie marche

comment faire pour lancer une macro si la valeur du label change
 

gege21

XLDnaute Occasionnel
Re : garde en memoire un label

j'importe des données txt via une macro

Code:
Sub import_données_mini_maxi()
    Dim myDir$, fn$, txt$, sepa$, A(), N As Long, I As Long, ff As Integer
    sepa = ";"
    myDir = UserForm.Données_minimaxi_txt.Value
    fn = Dir(myDir & "dayfile.txt")
    Do While fn <> ""
        ff = FreeFile
        Open myDir & fn For Input As #ff
        Do While Not EOF(ff)
            Line Input #ff, txt
            N = N + 1: ReDim Preserve A(1 To N)
            A(N) = Split(txt, sepa)
         Loop
        Close #ff
        fn = Dir()
    Loop
    With Worksheets("données_mini_maxi").[A2]
        For I = 1 To N
            .Offset(I - 1).Resize(, UBound(A(I)) + 1).Value = A(I)
        Next
    End With
Call Feuil4.format1
End Sub

les liste lable sont mis a jours a l’initialisation de l'userform
ou au téléchargement des données
 

gege21

XLDnaute Occasionnel
Re : garde en memoire un label

dsl c a l'activation de l'userform et a la fin de format1(trainement des données)
que je lancer cet macro
Code:
Sub recordA1()
maxi = -1000
For n = 2 To Sheets("Données_mini_maxi").Range("C65000").End(xlUp).Row
  If Sheets("Données_mini_maxi").Range("g" & n) > maxi Then
    maxi = Sheets("Données_mini_maxi").Range("g" & n)
    ligne = n
  End If
Next n
x = Sheets("Données_mini_maxi").Range("G" & ligne).Value & " °C  le " & format(Sheets("Données_mini_maxi").Range("A" & ligne).Value, "dddd d mmmm yyyy") & " à " & format(Sheets("Données_mini_maxi").Range("H" & ligne).Value, "hh:mm")
UserForm2.Record_1.Caption = x
End Sub

si sa fais toujours partie du sujet
bonjours a tous

je voudrai savoir comment faire pour garde un mémoire le contenu d'un label ( ici record_1) sans passe par une feuille excel
et lancer une macro si et le contenu change
c vrai que c pas marqué dans le tire :eek:
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch