Problème ListBox

pasmermayvir

XLDnaute Junior
Salut à Toutes et à Tous.....
J'espère que vous pourrez m'aidez????
J'explique mon problème.....
A partir d'un userform donc je peux rechercher une valeur d'après trois critères différents et le résultat de la recherche s'affiche dans une listBox...
Ensuite quand on clique sur un des éléments de la liste ... Les données s'affichent à leur tour dans divers textBoxs sous forme de fiche en fait.
Je n'arrive pas à afficher les données dans les textbox "Final" quand j'étends ma recherche sur plusieurs feuilles...
Un petit coup de main j'en peux plus
 

jeanpierre

Nous a quitté
Repose en paix
Re : Problème ListBox

Bonsoir ou bonne nuit pasmermayvir,

Ton code me semble pas trop mal écrit, seulement tu nommes en dur la feuille sur laquelle tu fais ta recherche : With Sheets("2009")

Je n'ai pas vu : "quand j'étends ma recherche sur plusieurs feuilles..."

Compte tenu des tests que j'ai pu faire sur ton très petit exemple et qui sont fonctionnels, il n'est plus trop difficile de le faire pour toutes les feuilles.

Plutôt que de nommer en dur une feuille en particulier, fais une boucle qui balaye toutes les feuilles. C'est pas plus difficile que le code que tu as écrit....

C'est période d'examen, donc c'est le sujet de ce soir.... Tu vas être noté....

Je plaisante.

Bonne soirée et bonne rédaction.

Jean-Pierre
 

bqtr

XLDnaute Accro
Re : Problème ListBox

Bonsoir pasmermayvir, jeanpierre

Ton fichier modifié:

J'ai rajouté 1 colonne à ta listbox qui contiendra le nom de la feuille.

La macro de recherche boucle sur les feuilles 2009,2010,2011.
Code:
For Each Feuille In Sheets(Array("2009", "2010", "2011"))
Si tu as d'autres feuilles tu les rajoutes dans le tableau (Array).


A+, bonne nuit
 

Pièces jointes

  • RechercheV1.xls
    45 KB · Affichages: 103
  • RechercheV1.xls
    45 KB · Affichages: 103
  • RechercheV1.xls
    45 KB · Affichages: 103

pasmermayvir

XLDnaute Junior
Re : Problème ListBox

Ta réponse me chagrine un peu car créant les feuilles aussi en VBA, j'aimerais que le code tourne au fur à mesure des années....
Je devrais rajouter du code chaque année....
Est-ce que cela marche si les feuilles ne sont pas créées, je vais tester
merci encore pour ta réponse....
Autrement j'essaierai d'adapter ton code sans passer par un création des feuilles en vba
 

bqtr

XLDnaute Accro
Re : Problème ListBox

Re,

Dans ce cas essaye ceci :

Code:
.../...
For Each Feuille In ThisWorkbook.Worksheets 'Sheets(Array("2009", "2010", "2011"))
    If Left(Feuille.Name, 1) = 2 Then
      DerLig = Feuille.Range("A" & Rows.Count).End(xlUp).Row
        For Each Cel In Feuille.Range("A2:A" & DerLig)
          FlgTrouve = False
            If IsNumeric(VSearch) Then
              If Cel.Offset(0, Col - 1) = VSearch Then FlgTrouve = True
            Else
              If InStr(1, Cel.Offset(0, Col - 1), VSearch, vbTextCompare) > 0 Then FlgTrouve = True
            End If
                ' Si une valeur est trouvée
                If FlgTrouve = True Then
                  ' Inscrire le numéro de la ligne dans la 1ère colonne masquée
                  Me.ListBox1.AddItem Cel.Row
                  ' Inscrire le nom et le prénom dans les 2 autres
                  Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cel.Offset(0, 1)
                  Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cel.Offset(0, 2)
                  Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cel.Offset(0, 3)
                  Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Feuille.Name
                End If
        Next Cel
    End If
  Next
.../...

A+
 

pasmermayvir

XLDnaute Junior
Re : Problème ListBox

Bien sur ça marche pas si je supprime les feuilles, là j'ai été naif....
Je tenais à vous remercier de m'aider encore un peu ...
Les feuilles donc 2009, 2010 ..... ne sont pas créées à l'avance....
Je créais une feuille chaque année pour gérer un numéro séquentiel du type
090001,090002,090003....
et ensuite 100001,100002,10003
Comment puis-je faire ?
 

bqtr

XLDnaute Accro
Re : Problème ListBox

Re,

Voici un bout de code:

Code:
.../...
If Range("A3") = "" Then
  With Range("A3")
   .NumberFormat = "@"
   .HorizontalAlignment = xlCenter
   .Value = Right(Range("A1"), 2) & "0001"
  End With
Else
  With Range("A65536").End(xlUp).Offset(1, 0)
   .NumberFormat = "@"
   .HorizontalAlignment = xlCenter
   .Value = Right(Range("A1"), 2) & Format(Right(Range("A2").End(xlDown), 4) + 1, "0000")
  End With
End If
.../...

Il génère automatiquement un N° à partir de la cellule A3 de la feuille active. Il s'incrémente tout seul.

A+
 

pasmermayvir

XLDnaute Junior
Re : Problème ListBox

Salut bqtr
Je rentre du taf et à ma grande joie je constate que tu m'as doublement répondu...
Je vais regarder ton code d'un peu plus près...
Mon "application" devra couvrir plusieurs années et donc j'étais parti d'une feuille originale avec tous mes champs et par userform je choisissais l'année de prise en charge(ici la première est donc 2009) .
Grâce à ce choix, le numéro d'incrémentation (090000) est créé et la feuille "2009" aussi...suivant "l'originale" ensuite donc et toujours par userform je saisis nom, prénom....et après "validation", nouveau numéro incrémenté automatiquement et saisie des données, ainsi de suite....
Je ne savais pas comment faire le code pour effectuer la recherche sur plusieurs feuilles et la solution de l'Array est judicieuse mais ne marche pas avec mon "code"... puisque les feuilles ne sont pas toutes crées
Bien sur après consultation, édition sont aussi gérer pour différents contrôles
L'année terminée, je passe à la suivante et ainsi de suite....
J'ai essayé les if Sheets("2009")Then Sheets("2009").Activate, et autres
Ton code s'applique aussi sur des feuilles déjà créées ?
Mon fichier est assez lourd, je peux essayer de la simplifier si tu veux plus de précisions...
Je te remercie encore de te soucier de mon problème
 

pasmermayvir

XLDnaute Junior
Re : Problème ListBox

Salut bqtr
Non Non Je n'ai pas trouvé de solution,
Je pense que je vais créer toutes mes feuilles à l'avance. Je voulais un truc qui tourne "à vie" et ne pas revenir dans dix ans par exemple pour modifier ler le code....
Je te remercie .... c'est vrai ça serait cool que je puisse faire autrement....
 

Discussions similaires

Réponses
8
Affichages
395

Membres actuellement en ligne

Statistiques des forums

Discussions
312 922
Messages
2 093 644
Membres
105 775
dernier inscrit
assen