Usf + filtre élaboré + test bdd

SoDadounet

XLDnaute Nouveau
Bonjour, je suis confronté à un petit problème qui ne doit pas être difficile à régler mais qui me complique bien la vie et que je ne vois pas comment résoudre.

Situation:
J'ai une macro qui permet de faire une recherche (filtre élaboré) dans une bdd à partir de critère saisis dans un formulaire (userform).

Tant qu'il y a des données dans la bdd pas de soucis.

Si je fait une recherche et qu'il n'y a pas de donnée correspondante logiquement ca me donne une bdd (filtrée) vide.
MAIS si je relance une recherche sur cette même bdd (toujours par l'intermédiaire de la macro) je recois un message d'erreur à cause de la bdd vide.

sec = Combosec.Value
max = Sheets("bdd " & sec).Range("A65536").End(xlUp).Row

'filtre élaboré

Sheets("bdd " & sec).Activate

Range("B1:F" & max).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Sheets("cachee").Range("B23:F24"), Unique:=False

j'ai tenté d'insérer un test:

If Controls(B1) = "" Then
ActiveSheet.ShowAllData
End If

L'objectif est d'enlever le filtre élaboré dans le cas ou la plage serait vide mais dès que la plage n'est pas vide un message me dit que ActiveSheet.ShowAllData n'a pas pu être exécutée...

Alors je sais pas si c'est très clair éventuellement je peux poster le fichier si besoin.

merci d'avance
 
Dernière édition:

SoDadounet

XLDnaute Nouveau
Re : Usf + filtre élaboré + test bdd

Le fichier est trop gros pour être uploader sur le fofo donc voici le lien:

Ce lien n'existe plus

Donc je re-précise bien que c'est la partie "recherche de protocoles" qui ne fonctionne pas dans un cas particulier: Quand on fait une recherche alors que la recherche précédente n'avais donné aucun résultat.
 

Bebere

XLDnaute Barbatruc
Re : Usf + filtre élaboré + test bdd

bonjour Sodanounet,Skoobi

faire un test sur la dernière ligne
Dim rng As Range

Set rng = ActiveSheet.Range("B1").CurrentRegion
rng.Columns(1).SpecialCells(xlCellTypeVisible).Count -1

à bientôt
 

SoDadounet

XLDnaute Nouveau
Re : Usf + filtre élaboré + test bdd

merci Bebere, je débute en vba donc je vois pas trop ce que ca fait mais je vais tester ca.

Par contre comment ce fait-il que mon test ci dessous marche lorsque B1 est vide et qu'il me génère une erreur si B1 contient une donnée. En théorie il ne devrait pas passé le test et ne rien faire?

If Controls(B1) = "" Then
ActiveSheet.ShowAllData
End If
 

Discussions similaires

Réponses
4
Affichages
234

Statistiques des forums

Discussions
312 520
Messages
2 089 293
Membres
104 090
dernier inscrit
steve60350