Microsoft 365 Problème dans mon formulaire de recherche vba

dubarre

XLDnaute Occasionnel
Bonjour à tous,

Je viens vous voir car j'ai un souci dans mon classeur j'ai une base de données :

- la première colonne est agrémenté par le userform1 label8 quand je clique sur enregistrer ça alimente la base de données correctement

-dans le userform3 je recherche soit par le numéro de l'artiste soit par le nom de l'artiste quand je clique sur le bouton valider le userform2 s'ouvre et doit rentrer les données de la personne concernée.

Mon problème vient que quand le formulaire s'initialise rien ne se passe et je n'arrive pas à trouver d'où vient l'erreur j'ai monté ce classeur avec plusieurs tutoriel mais je vous avoue que là je bloque pouvez-vous m'aider s'il vous plaît.
 

Pièces jointes

  • Gestion_ARTISTES_Programmable - Copie.xlsm
    260.3 KB · Affichages: 22
Solution
Re Bonjour @dubarre , Patrick , le Forum

Bon je ne sais pas encore si tu es dans les temps et dans les clouts pour ta démo-présentation Lundi, mais pour ton UserForm2, Modification, bouton "Supprimer la fiche"...

Je te propose ce code :
VB:
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
'Supprimer la fiche
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Private Sub CommandButton4_Click()
Dim WSBDD As Worksheet
Dim PlageNumeroArtiste As Range, CellNoArtiste As Range

Set WSBDD = ThisWorkbook.Worksheets("BDD")
Set PlageNumeroArtiste = WSBDD.Range("B2:B" & WSBDD.Range("A5000").End(xlUp).Row)

If Me.TextBox17 <> "" Then
    If MsgBox("Etes-vous sûr de définitivement supprimer " & vbCrLf & Me.TextBox2...

dubarre

XLDnaute Occasionnel
Bonjour je reviens vers vous car j'ai un petit problème dans mon classeur quand je rentre les données dans le formulaire création fiche artiste au niveau des dates je sélectionne dans ma liste déroulante boursier quand je clique sur enregistrer cela fonctionne par contre quand je mets la formule

Code:
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
'ENREGISTREMENT DANS FEUILLE BDD
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Dim i As Integer, baseDD As Worksheet, dligne As Long
Set baseDD = Sheets("BDD")
dligne = Sheets("BDD").Range("A" & Rows.Count).End(xlUp).Row + 1

    baseDD.Cells(dligne, 1).Value = Me.Label8.Caption 'id
    baseDD.Cells(dligne, 2).Value = Me.TextBox17.Value 'Nouveau N°
    baseDD.Cells(dligne, 3).Value = Me.CbxCivilite.Value 'civilité
    baseDD.Cells(dligne, 4).Value = Me.TextBox2.Value 'nom
    baseDD.Cells(dligne, 5).Value = Me.TextBox22.Value 'prénom
    baseDD.Cells(dligne, 6).Value = Me.TextBox3.Value 'adresse
    baseDD.Cells(dligne, 7).Value = Me.TextBox4.Value 'adresse2
    baseDD.Cells(dligne, 8).Value = Me.TextBox5.Value 'adresse3
    baseDD.Cells(dligne, 9).Value = Me.TextBox6.Value 'adresse4
    baseDD.Cells(dligne, 10).Value = Me.TextBox7.Value 'cp
    baseDD.Cells(dligne, 11).Value = Me.TextBox23.Value 'ville
    baseDD.Cells(dligne, 12).Value = Me.TextBox24.Value 'pays res
    baseDD.Cells(dligne, 13).Value = Me.TextBox9.Value 'pays sté
    baseDD.Cells(dligne, 14).Value = Me.ComboBox1.Value 'bouche pied
    baseDD.Cells(dligne, 15).Value = Me.TextBox18.Value 'Ancien id
    baseDD.Cells(dligne, 16).Value = CDate(Me.TextBox10.Value) 'Date de naissance
    baseDD.Cells(dligne, 17).Value = Me.TextBox11.Value 'Lieu de naissance
    baseDD.Cells(dligne, 18).Value = Me.TextBox19.Value 'boursier
    baseDD.Cells(dligne, 19).Value = Me.TextBox20.Value 'membre associé
    baseDD.Cells(dligne, 20).Value = Me.TextBox21.Value 'membre
    baseDD.Cells(dligne, 21).Value = CDate(Me.CbxBoursier.Value) 'Date de boursier
    baseDD.Cells(dligne, 22).Value = CDate(Me.CbxMAssocie.Value) 'Date de membre associé
    baseDD.Cells(dligne, 23).Value = CDate(Me.CbxMembre.Value) 'date de membre
    baseDD.Cells(dligne, 24).Value = "" 'decede
    baseDD.Cells(dligne, 25).Value = "" 'Date de dece
    baseDD.Cells(dligne, 26).Value = Me.TextBox25.Value   'Tel fixe
    baseDD.Cells(dligne, 27).Value = Me.TextBox12.Value   'Tel mobile
    baseDD.Cells(dligne, 28).Value = Me.TextBox26.Value   'E-mail
    baseDD.Cells(dligne, 29).Value = Me.TextBox13.Value   'Site internet
    baseDD.Cells(dligne, 30).Value = Me.TextBox14.Value   'N Siret
    baseDD.Cells(dligne, 31).Value = Me.TextBox15.Value
    baseDD.Cells(dligne, 32).Value = Me.TextBox16.Value
    baseDD.Cells(dligne, 33).Value = Me.Label3.Caption 'Date de creation
    baseDD.Cells(dligne, 34).Value = "" 'Date de modification
    baseDD.Cells(dligne, 35).Value = Me.TextBox1.Value 'Remarque
      

Module2.tri_par_ID

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
'EFFACEMENT DE TOUS LES CHAMPS DU FORMULAIRE
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

    For Each Ctrl In UserForm1.Controls
        If TypeOf Ctrl Is MSForms.TextBox Or TypeOf Ctrl Is MSForms.ComboBox Then
            Ctrl.Text = ""
        End If
    Next

UserForm_Initialize

End Sub

quand je clique sur enregistrer il me met un message d'erreur aux deux lignes qui sont CDate(Me.CbxMAssocie.Value) 'Date de membre associé et CDate(Me.CbxMembre.Value) 'date de membre alors que sur les deux autres cela fonctionne et je n'arrive pas à comprendre pourquoi pouvez vous m'aider s'il vous plaît merci d'avance
 
Dernière édition:

_Thierry

XLDnaute Barbatruc
Repose en paix
En relisant ton Edit ...

un message d'erreur aux deux lignes qui sont
CDate(Me.CbxMAssocie.Value) 'Date de membre associé
et CDate(Me.CbxMembre.Value) 'date de membre

Une question toute bête sans aller plus loin, est-il possible que ces ComboBox soient Vides ?
Dans quel cas il faut faire une condition
If Me.CbxMembre.Value = "" Then ...

Ou encore est on sûr d'y avoir des Date ?
If IsDate(Me.CbxMembre.Value) = False Then ...

Bon courage
@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re @dubarre , le Forum,

Au lien de ceci direct :
VB:
    baseDD.Cells(dligne, 21).Value = CDate(Me.CbxBoursier.Value) 'Date de boursier

Essaies comme ceci :
VB:
    If Me.CbxBoursier.Value = "" Then
        baseDD.Cells(dligne, 21).Value = ""
    Else
        If IsDate(Me.CbxBoursier.Value) = False Then
            baseDD.Cells(dligne, 21).Value = Me.CbxBoursier.Value '>> sinon message que ce n'est pas une date !
        Else
            baseDD.Cells(dligne, 21).Value = CDate(Me.CbxBoursier.Value) 'Date de boursier
        End If
    End If

Et idem pour les autres cas...

Bon travail
@+Thierry

EDIT J'ai regardé ton dernier fichier, c'est trop compliqué maintenant pour simuler quoique ce soit...
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re

En parcourant le code je suis tombé sur ceci :

VB:
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
'REINITIALISATION DE TOUTES LES COMBOBOXES
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

    For i = ComboBox1.ListCount - 1 To 0 Step -1
     ComboBox1.RemoveItem (i)
    Next i
    For i = CbxCivilite.ListCount - 1 To 0 Step -1
    CbxCivilite.RemoveItem (i)
    Next i
    For i = CbxBoursier.ListCount - 1 To 0 Step -1
    CbxBoursier.RemoveItem (i)
    Next i
    For i = CbxMAssocie.ListCount - 1 To 0 Step -1
    CbxMAssocie.RemoveItem (i)
    Next i
     For i = CbxMembre.ListCount - 1 To 0 Step -1
    CbxMembre.RemoveItem (i)
    Next i

Pour ta gouverne,
ComboBox1.Clear
Fait exactement la même chose ! ;)

Bien à toi
@+Thierry
 

dubarre

XLDnaute Occasionnel
Je suis désolé je viens encore vous embêter ça fonctionne très bien dans le userform1

dans le userform2 j'ai essayé de mettre le même code dans le bouton enregistrer mais il me met un message d'erreur je vous mets le classeur merci encore de votre aide.
 

Pièces jointes

  • Gestion_des_Artistes_v300662020.xlsm
    257.3 KB · Affichages: 2

_Thierry

XLDnaute Barbatruc
Repose en paix
Re bonsoir @dubarre ,

Bon et bien si tu es arrivé dans USF1, tu devrais y arriver dans le USF2, évidemment si il a la même structure et nom de Control ActiveX... Et si c'est la même erreur...
Je ne vais pas faire le débuggage de tous les Userforms un par un.

C'est la différence entre apprendre à pécher et donner du poisson...

Bon travail
@+Thierry

PS Merci pour le "Haha" à Patrck ;)
 

dubarre

XLDnaute Occasionnel
Bonjour à tous d'accord sans le vouloir j'ai peut-être mal agi je ne voulais pas je ne suis pas habitué spécialement au forum comment cela fonctionne je vais essayer d'être plus correct et de faire attention

Concernant la suppression avec le bouton je ne suis pas encore totalement habitué avec le codage il y a des choses que j'ai fait peut-être mal et je dois apprendre donc je tenais à m'excuser auprès de tous le monde et j'essaierai de faire attention pour le futur je vous remercie de votre compréhension

Concernant les dates cela est résolu concernant la suppression de fiches je vais faire plusieurs tests pour voir comment cela fonctionne pour comprendre le codage encore plus

je ne cherche pas à prendre à droite et à gauche code j'essaie de comprendre comment il fonctionne mais tout n'est pas expliqué ou n'est pas explicite dans les tutoriels que l'on peut trouver il y a une certaine logique que je n'ai pas encore donc je vous souhaite une belle soirée cordialement
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 944
Membres
101 849
dernier inscrit
florentMIG