Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Réinitialiser un usf sur fermeture d'un autre usf

  • Initiateur de la discussion Initiateur de la discussion kjin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kjin

XLDnaute Barbatruc
Bonjour à tous,
Je reviens vers vous pour vous soumettre mon soucis.
J'ai un UserForm (usf1) contenant 3 "combos" en cascade et 10 "textbox".
Le choix dans le dernier "combo" valide les données à afficher dans les "textbox" du usf1.
Un bouton "modifier" permet d'activer un nouveau UserForm (usf2) et de modifier les infos contenues dans les "texbox".
Idem avec un bouton "nouveau" qui permet l'ajout de nouvelles données.
Tout fonctionne très bien à ceci près : lorsque que je ferme usf2, pour visualiser les modifications ou l'ajout des données effectués, je doit fermer et réouvrir le usf1 afin de le réinitialiser.
Ma question: est-il possible de réinitialiser automatiquement le usf1 (usf1_initialize) à la fermeture du usf2 afin de voir immédiatement les modifications apportées ?
J'ai essayé plusieurs procédures mais aucune d'elles ne fonctionne !
Dois-je créer une nouvelle macro ?
Merci à tous ceux qui auront la gentillesse de me répondre.
kjin
 
Re : Réinitialiser un usf sur fermeture d'un autre usf

Bonsoir à tous,
En mode modification, en vidant les combo du usf1 avant l'affichage du usf2, je peux visualiser les modifications immédiatement après.
Pour le mode ajout, là ça ne fonctionne plus.
Quelqu'un aurait-il une idée ?
Merci à vous
kjin
 
Re : Réinitialiser un usf sur fermeture d'un autre usf

Bonjour,


  1. les boutons de l'usf2 sont superposés!!!!😱, celà perturbe la macro.


  1. voici les modifications qu'il faut faire:

Code:
Private Sub Workbook_Open()
    usf1.Show [B]0[/B]

End Sub

Code:
Private Sub CommandButton1_Click()
    usf1.Show [B]0[/B]

End Sub

Code:
Private Sub btnValider2_Click()
Dim C As Range
Dim Cell As Range
Dim Nom As String
[B]Dim i[/B]
Set C = Sheets("Données").Range("C2:C" & Range("C65536").End(xlUp).Row).Find(usf1.cboC3.Value)
            For Each Cell In C
                C.Offset(0, 1).Value = Me.tboC4B.Text
                C.Offset(0, 2).Value = Me.tboC5B.Text
                C.Offset(0, 3).Value = Me.tboC6B.Text
                C.Offset(0, 4).Value = Me.tboC7B.Text
                C.Offset(0, 5).Value = Me.tboC8B.Text
                C.Offset(0, 6).Value = Me.tboC9B.Text
                C.Offset(0, 7).Value = Me.tboC10B.Text
                C.Offset(0, 8).Value = Me.tboC11B.Text
                C.Offset(0, 9).Value = Me.tboC12B.Text
                C.Offset(0, 10).Value = Me.tboC13B.Text
                C.Offset(0, 11).Value = Me.tboC14B.Text
                C.Offset(0, 12).Value = Me.tboC15B.Text
                C.Offset(0, 13).Value = Me.tboC16B.Text
            MsgBox "modifié", vbOKOnly + vbInformation
            Next Cell
[B]Unload usf1
    For i = 1 To 3
        usf1.Controls("cboC" & i).Value = Me.Controls("tboC" & i & "B").Value
    Next
    For i = 4 To 16
        usf1.Controls("tboC" & i).Value = Me.Controls("tboC" & i & "B").Value
    Next
    Unload Me
    usf1.Show 0[/B]

End Sub

Code:
Private Sub btnValider_Click()
Dim L As Integer
[B]Dim i[/B]
[B]Unload usf1[/B]
L = Sheets("Données").Range("A65536").End(xlUp).Row + 1
    If Me.tboC1B.Value = "" Then
        MsgBox "Renseigner C1", vbCritical + vbOKOnly
    Exit Sub
    End If
    If Me.tboC2B.Value = "" Then
        MsgBox "Renseigner C2", vbCritical + vbOKOnly
    Exit Sub
    End If
    If Me.tboC3B.Value = "" Then
        MsgBox "Renseigner C3", vbCritical + vbOKOnly
    Exit Sub
    End If
            Sheets("Données").Range("A" & L).Value = tboC1B.Text
            Sheets("Données").Range("B" & L).Value = tboC2B.Text
            Sheets("Données").Range("C" & L).Value = tboC3B.Text
            Sheets("Données").Range("D" & L).Value = tboC4B.Text
            Sheets("Données").Range("E" & L).Value = tboC5B.Text
            Sheets("Données").Range("F" & L).Value = tboC6B.Text
            Sheets("Données").Range("G" & L).Value = tboC7B.Text
            Sheets("Données").Range("H" & L).Value = tboC8B.Text
            Sheets("Données").Range("I" & L).Value = tboC9B.Text
            Sheets("Données").Range("J" & L).Value = tboC10B.Text
            Sheets("Données").Range("K" & L).Value = tboC11B.Text
            Sheets("Données").Range("L" & L).Value = tboC12B.Text
            Sheets("Données").Range("M" & L).Value = tboC13B.Text
            Sheets("Données").Range("N" & L).Value = tboC14B.Text
            Sheets("Données").Range("O" & L).Value = tboC15B.Text
            Sheets("Données").Range("P" & L).Value = tboC16B.Text
        MsgBox "Validé", vbInformation + vbOKOnly
[B]    For i = 1 To 3
        usf1.Controls("cboC" & i).Value = Me.Controls("tboC" & i & "B").Value
    Next
    For i = 4 To 16
        usf1.Controls("tboC" & i).Value = Me.Controls("tboC" & i & "B").Value
    Next
    Unload Me
    usf1.Show 0[/B]


End Sub

show 0 veut dire que tu affiches le usf en non modal (c'est ce qui a résolu ton problème après plusieurs tests🙂).

Je crois que je n'ai rien oublié.
 
Re : Réinitialiser un usf sur fermeture d'un autre usf

Bonsoir Skoobi, Bonsoir à tous,
Merci pour ta réponse.
En fait j'ai préféré la solution de décharger le USF1 avant d'activer le USF2 et là ça fonctionne très bien, et ce qui m'évite le mode non modal. Ce qui m'ennuyait, c'était de maintenir affichées dans le USF1 les anciennes valeurs après modification ou ajout.
Je garde ta proposition pour une application dont j'ai besoin par ailleurs.
Je te remercie encore.
kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

G
Réponses
3
Affichages
2 K
Galaktus
G
P
Réponses
2
Affichages
871
paulemilevictor
P
D
Réponses
3
Affichages
2 K
Deep83
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…