XL 2013 Erreur si vide

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 !

Appo1985

XLDnaute Occasionnel
Bonjour .
J’ai pu adapter les codes qui permettent de faire une recherche intuitive à mon userform

Cependant il y a toujours deux erreurs que je voudrais que vous m’aidiez à corriger.

En effet, premièrement quand je supprime tous les données de la feuille tout en laissant seulement la première ligne (l’entête) il y a un message d’erreur qui s’affiche à l’ouverture du userform.

Deuxièmement, quand j’efface le contenu du combobox1, il y a aussi un message d’erreur. Je voudrais donc si possible ne pas autoriser l’effacement du contenu du combobox1 ou a défaut une autre solution pour éviter l’erreur.
ci-joint le fichier
Merci par avance
 

Pièces jointes

Solution
Tout est lié, s'il n'y a pas d'enregistrement votre offset(-1) pose problème.
J'ai pallié avec :
VB:
titre = Application.Index(f.Range("A2:F" & DL + 1).Offset(-1).Value, 1)
Et pour les titres j'ai pallié en prenant DL=2 lorsque DL=1
Bonjour Appo1985, bonjour à tous
Dans ton module1 :
VB:
Sub Rectangleàcoinsarrondis1_Cliquer()
Set f = Sheets("BDD")
   If Application.CountA(f.Range("A:A")) = 1 Then
       MsgBox "BDD vide"
       Exit Sub
   End If

UserForm2.Show
End Sub

Puis dans le code Combobox1_Change , en première ligne:
Code:
If Me.ComboBox1 = "" Then Exit Sub

Bonne journée
 
Bonjour Appo1985, bonjour à tous
Dans ton module1 :
VB:
Sub Rectangleàcoinsarrondis1_Cliquer()
Set f = Sheets("BDD")
   If Application.CountA(f.Range("A:A")) = 1 Then
       MsgBox "BDD vide"
       Exit Sub
   End If

UserForm2.Show
End Sub

Puis dans le code Combobox1_Change , en première ligne:
Code:
If Me.ComboBox1 = "" Then Exit Sub

Bonne journée
Merci.
Pour le combobox ça marche parfaitement.
Pour l'ouverture du userform ça marche : erreur '424'
Objet requis
 
Bonjour Appo, Patty,
Un essai en PJ, avec :
Dans UserForm_Initialize :
Code:
DL = f.[a65000].End(xlUp).Row
If DL = 1 Then Exit Sub ' Car BDD vide
Dans ComboBox1_Change :
VB:
If Me.ComboBox1 = "" Then Exit Sub ' Car Combobox vide
Merci bien.
Il ya un autre problème.
Si on supprime les données, même l'entête disparaît au niveau du listebox( ce n'est pas grave)
Si on écrit maintenant une ligne en dessous de l'entête sur la feuille, un message d'erreur s'affiche à l'ouverture du userform
 
Tout est lié, s'il n'y a pas d'enregistrement votre offset(-1) pose problème.
J'ai pallié avec :
VB:
titre = Application.Index(f.Range("A2:F" & DL + 1).Offset(-1).Value, 1)
Et pour les titres j'ai pallié en prenant DL=2 lorsque DL=1
 

Pièces jointes

- 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

  • Question Question
Microsoft 365 aide userform
Réponses
11
Affichages
828
Retour