XL 2019 Base de données alimentée par un userform ne fonctionne pas

Yann71

XLDnaute Occasionnel
Bonsoir la com, bonsoir le forum.
Me voici avec un problème récurrent. J'ai une BD alimentée par un Userform. Si ma BD est vide, je ne peux l'alimentée avec l'userform,
par contre si dans les lignes A2 et A3 j'y inscrit des données directement dans ma BD, plus de problème, je peux alimenter par la suite depuis mon l'userform.
Donc en résumé pour que tout fonctionne je dois avoir au minimum 2 lignes remplie. Donc serait-il possible de faire en sorte que tout fonctionne même si
aucune donnée n'est inscrite dans ma BD.

Merci pour votre futur aide.
 

Pièces jointes

  • FORMULAIRE_3 - EN_CONSTRUCTION V4.xlsm
    51.9 KB · Affichages: 24

Yann71

XLDnaute Occasionnel
Re
le code du Bouton "btnModifier" du Userform1!

On travaille sur un Tableau Structuré donc !
VB:
Private Sub btnModifier_Click()
Dim i As Integer
r = MsgBox("Voulez-vous confirmer la modification", vbYesNo, "Gestion fonctionnaires")
If r <> 6 Then Exit Sub
With Range("t_BDD").ListObject.DataBodyRange
 For i = 1 To .Rows.Count
     If .Item(i, 1) = Me.txtCode.Text Then
                       .Item(i, 2) = Me.cboCivilité.Text
                       .Item(i, 3) = Me.txtNom.Text
                       .Item(i, 4) = Me.txtPrénom.Text
                       .Item(i, 5) = Me.txtAdresse.Text
                       .Item(i, 6) = Me.txtCP.Text
                       .Item(i, 7) = Me.txtVille.Text
                       .Item(i, 8) = Me.txtTéléphone1.Text
                       .Item(i, 9) = Me.txtTéléphone2.Text
                       .Item(i, 10) = Me.txtMail.Text
           Exit For 'on quitte
     End If
 Next i
End With
End Sub
Jean marie
Bonjour Jean Marie. Malgré le fait que j'ai remplacé les lignes de code par les tiennes, il y a toujours cette erreur, celle qui si le tableau ne comporte aucune donnée, l'userform1 ne s'ouvre pas.
 

Pièces jointes

  • FORMULAIRE_3 - EN_CONSTRUCTION V6.xlsm
    51.2 KB · Affichages: 1

Dranreb

XLDnaute Barbatruc
Tandis que s'il est géré par mes deux objets, ComboBoxLiées et ControlsAssociés, il s'ouvre.
Et on a peu de question à se poser sur son fonctionnement puisque pratiquement tout se définit dans la Sub UserForm_Initialize. Les autres procédures sont à peu près toujours les mêmes, et en cas de besoins particuliers, je vous étudierais les solutions possibles
 

Yann71

XLDnaute Occasionnel
Tandis que s'il est géré par mes deux objets, ComboBoxLiées et ControlsAssociés, il s'ouvre.
Et on a peu de question à se poser sur son fonctionnement puisque pratiquement tout se définit dans la Sub UserForm_Initialize. Les autres procédures sont à peu près toujours les mêmes, et en cas de besoins particuliers, je vous étudierais les solutions possibles
Merci pour votre aide
 

Dranreb

XLDnaute Barbatruc
Ce n'est pas une instruction de mes modules de service, ça !
Eux se débrouillent pour prendre en charge les donnée si elles existent. Vous n'avez plus à vous en occuper. C'est la méthode Plage de l'objet ComboBoxLiées qui fait ce qu'il faut. Un objet Worksheet dont la collection ListObjects n'est pas vide lui suffit comme argument. Mais elle accepte aussi un Range ou un ListObject.
 
Dernière édition:

Yann71

XLDnaute Occasionnel
Ce n'est pas une instruction de mes modules de service, ça !
Eux se débrouillent pour prendre en charge les donnée si elles existent. Vous n'avez plus à vous en occuper. C'est la méthode Plage de l'objet ComboBoxLiées qui fait ce qu'il faut. Un objet Worksheet dont la collection ListObjects n'est pas vide lui suffit comme argument. Mais elle accepte aussi un Range ou un ListObject.
 

Yann71

XLDnaute Occasionnel
Excusez moi mais je n'ai pas tout compris, je ne suis pas un pro du VBA. Ce fichier je l'ai pris sur un tuto.
Dans le fichier que je vous joins, il y a en A2 le chiffre 1, si vous ouvrez l'userform Formulaire vous pouvez y accéder et utiliser toutes fonctions. Mais si vous venez à supprimer le client et que vous fermez l'userform et l'ouvrez à nouveau il y a une erreur.
 

Pièces jointes

  • FORMULAIRE_3 - EN_CONSTRUCTION V6.xlsm
    51.7 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
C'est normal, on vous a dit que le DataBodyRange d'un tableau vide n'est pas défini.
Pourquoi tout le monde préfère toujours bricoler des trucs qui ne marchent pas plutôt que d'utiliser mes modules de service dans des UserForm si rapides à mettre au point par cette voie ?
 

Yann71

XLDnaute Occasionnel
Ce n'est pas une instruction de mes modules de service, ça !
Eux se débrouillent pour prendre en charge les donnée si elles existent. Vous n'avez plus à vous en occuper. C'est la méthode Plage de l'objet ComboBoxLiées qui fait ce qu'il faut. Un objet Worksheet dont la collection ListObjects n'est pas vide lui suffit comme argument. Mais elle accepte aussi un Range ou un ListObject.
 

Discussions similaires

Réponses
27
Affichages
1 K

Statistiques des forums

Discussions
315 096
Messages
2 116 174
Membres
112 677
dernier inscrit
Justine11