si données n'existe pas alors..

  • Initiateur de la discussion Initiateur de la discussion zesuila
  • 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 !

zesuila

XLDnaute Occasionnel
Bonjour
(J'ai toujours du mal à trouver un titre à mes post pour bien résumer mon soucis)

J'ai dans un userform une textbox1 qui lorsque j'y mets une donnée va vérifier si dans une feuille A cette donnée existe et si oui va me remplir dans ce userform, une listbox1 une listbox2 etc...

Je voudrai que lorsque l'utilisateur tape un code article (parce que la donnée dans le textbox1 est un code article🙂 ) et qu'il n'existe pas dans la feuille A, un userform apparait demandant si on veut créer ce code article dans la feuille A (ou éventuellement si on veut appeler (hého !!😀 ) un autre userform déjà crée)

Suis je clair ?

Merci de votre aide
 
Re : si données n'existe pas alors..

Bonjour Zesuila, le Forum


Sous réserve de mon interprétation de ta question...

Code:
Private Sub CommandButton1_Click()
Dim Cell As Range
Dim StrSearch As String
StrSearch = Me.TextBox1
    With Worksheets("A").UsedRange
        Set Cell = .Find(StrSearch, LookIn:=xlValues, LookAt:=xlWhole)
            If Cell Is Nothing Then
                 MsgBox "Pas Trouvé !"
            Else
                 MsgBox "Ok Trouvé !!!"
            End If
    End With
End Sub

Bon Aprèm

@+Thierry
 
Re : si données n'existe pas alors..

Bonjour _Thierry, le Forum

Eh bien voilà ! tout arrive ! Le GRAND Maître me répond en personne😀
(Bon allez un des grands maîtres sinon d'autres vont se fâcher, et à juste titre !🙂 )
Tu as tout à fait interprété ma question !
Juste une petite chose à te demander.
Je voudrai que dans le message "pas trouvé" il y est aussi une phrase du style "pas trouvé ! voulez vous créer un code?
et dessous un bouton oui et hop on part sur un userform précis
et un bouton NON et on revient à l'userform actif
je sais que c'est avec des vbyes, vbno mais je n'arrive pas à l'inclure dans ton code.
Encore merci de ton aide
(désolé de ne pas avoir répondu plus tôt, je ne travaille pas les après midi !!!)
 
Re : si données n'existe pas alors..

ah oui juste une petite chose aussi.
comment fait on pour mettre en avant 1 des 2 userform.
nom userform actif = jesuisla
on clic sur un bouton et le 2e userform "coucou c'est moi" apparait SUR jesuila. (pour l'instant coucou c'est moi est toujours dessous, donc on ne le voit pas !)
merci
 
Re : si données n'existe pas alors..

Bonsoir Zesuila, le Forum

Merci pour le qualificatif, mais pour moi les "Grands Maîtres" restent Laurent Longre et quelques autres !

Sinon voici une solution :

Code:
Option Explicit
 
Const T As String = "@+Thierry's Démo"
 
Private Sub CommandButton1_Click() [COLOR=darkgreen][B]'NB Nous sommes dans le UserForm1 en Mode Modal (Normal)
[/B][/COLOR]Dim Cell As Range
Dim StrSearch As String
Dim Question As Byte
 
 
StrSearch = Me.TextBox1

    With Worksheets("A").UsedRange
        Set Cell = .Find(StrSearch, LookIn:=xlValues, LookAt:=xlWhole)
            If Cell Is Nothing Then
            Question = MsgBox(StrSearch & " : Enregistement Non Trouvé, Voulez-Vous l'Ajouter ?", vbQuestion + vbYesNo, T)

                   If Question = vbYes Then
                        With UserForm2
                        .Caption = "Ajout de " & StrSearch
                        .Show
                        End With
                       [COLOR=darkgreen][B] '(NB Le UserForm2 contient les procédures d'ajouts d'enregistrement.
                         'En fin de traitement, il suffit de le "Unloader", on reviendra sur le UserForm1)
[/B][/COLOR]                   Else
                        With Me.TextBox1
                            .Value = ""
                            .SetFocus
                        End With
                        Exit Sub
                   End If
            

            Else
                 MsgBox "Ok Trouvé !!!" 'La suite de ton Process
            End If
    End With
End Sub


Fais très attention au Mode Modal (ou Non Modal) :

  • Mode Modal = En Standard par défaut par l'instruction UserForm1.Show
  • Mode Non-Modal = Par l'Instruction UserForm1.Show False
Dans ce cas de figure, je te conseille de rester en mode Modal. Tu ne devrais pas avoir les soucis que tu énonces.

Le UserForm2, sera ouvert par dessus le UserForm1, et lors de l'instruction Unload UserForm2 après traitement de l'ajout, le UserForm1 sera à nouveau à l'écran. (Il faudra peut-être prévoir une MAJ/Raffraichissement de celui-ci par contre)

Bon Week End
@+Thierry

 
Re : si données n'existe pas alors..

Super ! ça marche
Par contre une question "technique"
quelle est la différence entre une fenêtre modal et non modal. Simplement le fait que l'une interdit d'aller sur la feuille ou sur tout autre objet tant qu'on ne lui a pas fermé son clapet🙂) ) ? ou il y a d'autres secrets?
Encore merci de ton aide.
 
Re : si données n'existe pas alors..

Bonjour Zesuila;
J'ai lu la pensée sous ton pseudo: "Un homme n'est vieux que quand les regrets ont pris chez lui la place des rêves"

Très bien cette pensée et j'y ajouterais ceci: "Un homme n'existe plus quand les regrets ont pris chez lui la place de la réalité"
Amitié
Michel
 
- 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

Réponses
10
Affichages
661
Réponses
2
Affichages
266
Retour