RECHERCHE LISTBOX PAR DATE

GHISLAIN

XLDnaute Impliqué
bonjour a tous

je me retrouve avec une nouvelle difficulté
j effectue une recherche par séléction de date dans un combobox et le résultat s'affiche dans ma listbox

la recherche fonctionne si m'a date commence par un chiffre autre que le 0 exemple 10/10/2003
par contre si ma date commence par 0 comme 02/12/2005 rien ne s affiche dans ma listbox

toute mes dates etant rentré sur ma base de donné au format jj/mm/aaa je souhaiterai le conserver

ci joint un fichier

merci a tous

GHISLAIN

[file name=Classeur2_20060225132447.zip size=11869]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur2_20060225132447.zip[/file]
 

Pièces jointes

  • Classeur2_20060225132447.zip
    11.6 KB · Affichages: 29

GHISLAIN

XLDnaute Impliqué
ok jean marie

a savoir que ta solution me convenais puisque la recherche soit par date soit par numero reste tout a fait indepante l une de l autre meme si elles utilise la meme listebox pour afficher le résultat

je viens de recevoir ta solution merci mille fois jean marie je vais arriver a m en sortir avec tout ça


super sympa encore merci

AMICALEMENT ghislain
 

ChTi160

XLDnaute Barbatruc
arff je te livre le fichier car le texte sur le forum n'est pas térrible
bonne fin de journée
n'hésite pas [file name=Classeur2_V4.zip size=21123]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur2_V4.zip[/file]
 

Pièces jointes

  • Classeur2_V4.zip
    20.6 KB · Affichages: 21

GHISLAIN

XLDnaute Impliqué
bonjour jean marie et le forum

je viens de mettre en place ton code et je dois dire qu il fontionne a merveille
toutefois etant un brin curieux et ne me contentant pas seulement de faire un copier collé et afin de pouvoir l'utiliser a d'autre fin je cherche a le comprendre
sur ce code ma recherche s effectue sur les 3 feuilles en explorant le code je ne trouve pas et comprend pas ce qui dit de chercher dans les trois feuille
j ai bo décortiquer le code je ne saisie aps l astuce
qu es ce qui lui de chercher dans telle ou telle feuille
j ai bo me creuser les méninges mais la je cale de chez cale
concernant cette ligne Tablo = .Range(.Cells(2, 1), .Cells(I, 9)).Value
si j ai bien compris le(2,1) la valeur 1 donne le rowsource a la combobox quand je met sur 2 celle ci change et prend la liste de la colonne C donc je suppose que 1 est = a la colonne B , la ou se trouve les dates
une question quand je met sur 0 pour qu il prenne la colonne A comme rowsource celui ci se met en erreur
je recherche juste l explication

si tu avais un moment pour m expliquer les syntaxe j en serai ravi

te remerciant par avance

amicalement GHISLAIN

Message édité par: GHISLAIN, à: 27/02/2006 10:41

Message édité par: GHISLAIN, à: 27/02/2006 11:14
 

ChTi160

XLDnaute Barbatruc
Salut GHISLAIN
bon tout ce passe dans cette procèdure qui se déclenche lors de l'ouverture du userform a cette occassion je charge un tableau des données de chaque feuille afin de pouvoir les utiliser ensuite
Sub Charge_Tablo()
Dim Ws As Worksheet 'déclare Ws comme étant une feuille
Dim C As Byte
Dim j As Integer
Set Unique = New Collection

For Each Ws In Worksheets ' et ici pour chaque Ws donc feuille de la collection(WorkSheets)des feuilles de ce classeur
With Ws 'avec cette feuille with évite de répéter ce qui le suit soit Ws devant chaque point

I = .Range('A65536').End(xlUp).Row 'je détecte la derniere ligne de la colonne A non vide en partant du Bas

Tablo = .Range(.Cells(2, 1), .Cells(I, 9)).Value 'ici je charge le tableau(tablo) des valeurs de la plage déterminer
End With
On Error Resume Next
For L = 1 To UBound(Tablo, 1)
ReDim Preserve TabResult(8, X)
For C = 0 To 8
TabResult(C, X) = Tablo(L, C + 1)
Next
Unique.Add Tablo(L, 2), CStr(Tablo(L, 2))
X = X + 1
Next L
Erase Tablo
X = X + 1
Next
On Error GoTo 0
For j = 1 To Unique.Count
Userform1.ComboBox1.AddItem Unique(j)
Next j
End Sub
content d'avoir pu t'aider
n'hésite pas
bonne journée
 

GHISLAIN

XLDnaute Impliqué
re jean marie

merci encore pour ta disponibilité

suivant tes explications si j'ai bien compris

le Ws represente les feuilles du projet , donc autant de feuille qu'il en contient

si mon projet contient 10 feuilles il effectuera la recherche sur les 10 feuilles , c est ça ??

donc si je dois specifier que 3 feuilles sur les 10 existantes dans le projet c est ici que je dois l indiquer ??

les trois feuilles doivent etre déclaré separement ?
Dim Ws As feuil1
Dim Ws As feuil2
Dim Ws As feuil3

merci jean marie


GHISLAIN
 

ChTi160

XLDnaute Barbatruc
re GHISLAIN
non Ws ne représente pas toute les feuilles c'est Worksheets voir l'aide VBA tu cliques sur le mot ici Woorksheet et tu fait F1
ensuite ws est une variable qui va représenter chacune leur tour les différentes feuille de la collection Worksheet donc for each Ws in WorkSheetsveut dire pour chaque feuille(Ws) de la collection(Worksheets)
donc pas besoin de donner des valeurs à la variable Ws elle va les prendre au fur et à mesure de la boucle For each
c'est WorkSheets qui détermine le nombre de feuilles de ton classeur,puisque c'est la collection des feuilles de Calcul du classeur dans le quel tu travailles.

en espèrant avoir fait avancer ta réflexion
 

GHISLAIN

XLDnaute Impliqué
bien jean marie
je vais tenté d en saisir toute les astuces
et continuer ma reflexion sur ce code qui je dois dire sort de mes reperes habituels
j'étais jusque la habitué a travailler sur le numero des feuilles ou leur appelation il était donc pour moi plus simple , par rapport a mon niveau en vba de conprendre et la j avoue que le niveau est nettement superieure au mien et que je patauge

je vais me faire chauffer la tete et tout comprendre

merci mille fois jean marie de ton aide

Amicalement
 

GHISLAIN

XLDnaute Impliqué
bonjour jean marie

j aurai souhaité ton avis sur le code
voila en me creusant les meninges et tenté de décortiquer le code que tu m a fait parvenir j en suis venu a la conclusion suivante
sur ton code ça recherché sur toute les feuiles
je viens de modifer et ça recherche uniquement dans une feuil
ça fonctionne

mais j aurai voulu simplement avoir ton avis si tu aurai fais de cette facon

dans le code les lignes supprimer sont en vert pour info

te remerciant du coup d oeil que tu pourra y jeter a l occasion
je t en remerciant vivement par avance

GHISLAIN

[file name=Classeur2_V3_20060228092210.zip size=14558]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur2_V3_20060228092210.zip[/file]
 

Pièces jointes

  • Classeur2_V3_20060228092210.zip
    14.2 KB · Affichages: 14

GHISLAIN

XLDnaute Impliqué
re jean marie

je souhaiterai sollicité ton aide pour une dernier fois sur un souci que j essai de regler depuis ce matin
par rapport au code ou je t ai demandé ton avis
je souhaitee envoyer le resultat obtenu de la listbox sur une feuille excel pour impression
je rentre la ligne suivante

With ListBox1
If .ListCount = 0 Then Exit Sub
End With
Range('feuil8!A8').Resize(ListBox1.ListCount, ListBox1.ColumnCount) = Me.ListBox1.List
me dit erreur d execution 1004
j ai bo chercher je ne parviens pas a résoudre ce probleme

si tu as une idée je suis preneur

merci vivement jean marie

Message édité par: GHISLAIN, à: 28/02/2006 14:14

Message édité par: GHISLAIN, à: 28/02/2006 14:15
 

GHISLAIN

XLDnaute Impliqué
désolé jean marie

je viens de trouver

la soluce aurez du me sauter au yeux

With i
If i = 0 Then Exit Sub
End With
Range('RechercheVaccination!A9').Resize(Me.ListBox1.Column(i, Me.ListBox1.ListCount - 1)) = ListBox1.Value
Worksheets('RechercheVaccination').PrintOut


merci pour tout

et longue vie au site

trop genial l'aide que l on peut y trouver

GHISLAIN

AMICALEMENT
 

ChTi160

XLDnaute Barbatruc
Salut Ghislain

je vois que tu t'y interresse lol
bon une remarque
dans ton code deux choses
With iIf i = 0 Then Exit Sub
End With les éléments en gras n'ont pas lieu d'être
exemple d'utilisation de With .... End With

With Me.ListBox1
Range(\\'RechercheVaccination!A9\\').Resize(.Column(i, .ListCount - 1))=
.Value
End with
Worksheets('RechercheVaccination').PrintOut

Voilà donc bonne programation
et bonne fin de Soirée
 

GHISLAIN

XLDnaute Impliqué
bonjour jean marie

j'espere que tu vas bien et je tien a te remercier des explications que tu me fourni j aurai souhaité dire a charge de revange mais j ai quelques années de retard sur ton niveau lol
quoiqu il en soit merci du temps que tu as accordé a mon file

je voulai revenir sur le WS
For Each Ws In Worksheets la recherche s'effectue sur toute la collection du classeur

sur ce code que j avais modifier ma recherche s effectué que sur la feuil20
With Feuil20
Set Plage = Range(.Range('A2'), .Range('A65536').End(xlUp))

et je me retrouve avec une difficulté meme en recherche dans l'aide c'est comment lui dire de cherche par exemple dans plusieurs feuille soit la 20 ,21 et22 sans prendre la collection entierement
j'ai tenté cette ligne sans grand succés
With sheets('Feuil20','Feuil21','Feuil21')
Set Plage = Range(.Range('A2'), .Range('A65536').End(xlUp))

cette question ne reflete pas sur un projet en court mais uniquement pour mon interet personnel afin d en comprendre toute les astuces
prend ton temps pour y repondre , je sais que tu es extrement sollicité par tes competence sur le site

mille merci

a bientot

GHISLAIN
merci a toi jean marie
 

ChTi160

XLDnaute Barbatruc
Salut Ghislain

j'espère que toi aussi tu vas bien

en pièce jointe quelques exemples de sélection de feuilles il en existe d'autres
bonne fin de Journée


Arfffffffff Excuse [file name=Sheet_Select.zip size=9672]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Sheet_Select.zip[/file]

Message édité par: Chti160, à: 01/03/2006 17:45
 

Pièces jointes

  • Sheet_Select.zip
    9.4 KB · Affichages: 22

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 341
Membres
103 524
dernier inscrit
Smile1813