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

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

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

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

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
 
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
 
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:
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.
 
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

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 ?
 
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.
 
- 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
12
Affichages
1 K
Retour