travail sur base donnees

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

mch33

XLDnaute Nouveau
Bonjour a tous.
J'ai créé une base de donnees (600 lignes 10 colonnes).feuille1
j'utilise des fonctions de base de donnees (bd nbval,logique etc) pour faire ressortir un etat de mes donnees. feuille2.
(les criteres necessaire a bdnbval (plages noms, etc) sont definis en feuille3).

probleme: comment a partir d'une macro: afficher ou regrouper dans une nouvelle feuille toutes les donnees (qui sont des lignes de la base de donnees) qui correspondent a un certain critere deja defini lors de la creation de l'etat.

en fait il s'agit de faire ressortir depuis la feuille de l'etat les seules donnees correspndant a un certain critere afin d'en faciliter l'affichage et l'impression.

Merci.
Mch33.
 
Re : travail sur base donnees

mch33 à dit:
Bonjour a tous.
J'ai créé une base de donnees (600 lignes 10 colonnes).feuille1
j'utilise des fonctions de base de donnees (bd nbval,logique etc) pour faire ressortir un etat de mes donnees. feuille2.
(les criteres necessaire a bdnbval (plages noms, etc) sont definis en feuille3).

probleme: comment a partir d'une macro: afficher ou regrouper dans une nouvelle feuille toutes les donnees (qui sont des lignes de la base de donnees) qui correspondent a un certain critere deja defini lors de la creation de l'etat.

en fait il s'agit de faire ressortir depuis la feuille de l'etat les seules donnees correspndant a un certain critere afin d'en faciliter l'affichage et l'impression.

Merci.
Mch33.
Salut
Ton problème n'est pas assez précis pour avoir des réponses claires
le lus simple serait de faire un fichier d'exemple :
feuille 1 : 5 lignes avec un contenu identifiable (1, 2, 3, etc pour les colonnes nombres et "A1", "B1", "A2" etc.. pour le texte) juste pour les cellules importantes (1re/dernière de la ligne + critères)
et en feuille 3 ce que tu espères, en fonction de tes critères en feuille 2
Avec un fichier comme ça, on peut comprendre ce que tu veux, et te faire la macro exacte.
A+
 
Re : travail sur base donnees

Bonjour le Forum,
Gorfael, je te soumet un code issu de l'un de mes projets.
Je sais qu'il est difficile de comprendre un code tronqué, mais le code suivant peut d'indiquer le chemin à suivre.

Le principe : dans un Userform, on sélectionne le type de valeur recherchée dans la base. On saisi dans un TextBox l'occurence recherchée et on lance la recherche (cmd1Find_Click)

Public Sub cmd1Find_Click() 'La macro associée au bouton "Rechercher"
Dim Cr$ 'Critère
Dim Oc$ 'Occurence Cherchée
Dim Li% 'List Index du critère
Dim i% 'Compteur1
Dim y% 'Compteur 2
Dim n% 'Compteur 3 (nbre occurences trouvées)
Dim z& 'Compteur données Data
Dim Ot$ 'Occurence trouvée

Dim Hwsh As Worksheet
Set Hwsh = Sheets("Data") 'Déclare et charge la feuille servant de base de données
Cells(1, 1).Select
z = Cells(1, 1).CurrentRegion.Rows.Count 'Compte le nbre de lignes de la base de données
cbx1Result.Value = "" 'Remise à zéro de la valeur de la combobox (efface la recherche précédente)
Cr = CStr(cbx1Rech.Value) '---> c'est le titre de la colonne de recherche (exemple nom de la colonne = "Nom")
Oc = CStr(txb1OccRec.Value) '---> c'est le critère recherché (le nom du client recherché)
Li = CInt(cbx1Rech.ListIndex) '---> la valeur de du type d'occurence recherchée
------- Remise à zéro des labels du userform affichant les résultats --------
For i = 14 To 29
Me.Controls("Label" & i).Caption = ""
Next i
'--------------------------------
y = 0
n = 0
'--- Selon le choix retenu dans la listBox, on défini la colonne de recherche :
Select Case Li 'Critère choisi par l'utilisateur dans la Combobox
Case 0 ' 1er choix de la combobox (index = 0)
Li = Li + 4 'Recherche dans la 4ème colonne (0+4)
Case 1 '2ème choix de la combobox (index = 1)
Li = Li + 5 'Recherche dans la 6ème colonne (1+5)
Case 2 '3ème choix de la combobox (index = 2)
Li = Li + 6 'Recherche dans la 8ème colonne (2+6)
Case 3 '4ème choix de la combobox (index = 3)
Li = Li + 6 'Recherche dans la 9ème colonne (3+6)
Case Else
MsgBox "Selection erronée ", vbCritical, "Erreur "
Exit Sub
End Select


Dim Tr(30, 6) 'déclare un tableau destiné à recevoir les données trouvées (30 valeurs possibles, avec 6 données par valeurs)

Hwsh.Activate 'active la base de données

For i = 2 To z 'pour occurence trouvée, on incrémente le tableau avec les valeurs souhaitées correpondant à l'occurrence trouvée
Ot = Cells(i, Li).Value
If UCase(Ot) = UCase(CStr(Oc)) Then
Tr(y, 0) = CStr(Cells(i, 1).Value) 'Réf
Tr(y, 1) = CStr(Cells(i, 4).Value) 'Date
Tr(y, 2) = (CStr(Cells(i, 5).Value) & "-" & CStr(UCase(Cells(i, 6).Value))) 'Compte + Clé
Tr(y, 4) = CStr(Cells(i, 9).Value) 'Montant
Tr(y, 5) = CStr(Cells(i, 2).Value) 'Agent
Tr(y, 6) = CStr(Cells(i, 1).Row) 'ligne
n = n + 1
y = y + 1
Else: End If
Next i
'---------------
'Le tableau est désormais rempli, on transfère les valeurs vers la combobox qui affichera toutes les occurences trouvées
cbx1Result.List = Tr
'------------------
'La 1ère ligne de la combobox affiche le nombre d'occurences trouvées
Select Case n
Case 0
cbx1Result.Value = "Recherche infructeuse"

Case 1
cbx1Result.Value = "Une occurence trouvée"

Case Else
cbx1Result.Value = CStr(n) & " occurences trouvées"
End Select
Hwsh.Cells(1, 1).Select
End Sub

'""""""""""""""""""""""""""""""""""""""""""""""
Pour un code complet, fais des recherches sur ce forum avec les mots clés "Moteur de recherche"

Bon après midi
Kotov
 
Re : travail sur base donnees

Bonjour
Si j"ai bien compris, il suffirait de créer un filtre élaboré utilisant tes données et tes critères afin d'extraire vers une autre plage les données correspondant aux critères.
Si c'est bien ça, la macro est inutile auf pour automatiser le filtre créé.
 
Re : travail sur base donnees

Bonjour Chris,
Oui, ce morceau de code que j'ai inséré, correspond à l'automatisation d'un filtre (ou petit moteur de recherche)
Mon code n'est qu'un début de piste pour mch33.

Pour (tenter de) simplifier :
J'ai une base de données dans la feuille "Data"
Un Userform composé :
-d'une combobox listant les types de critères (recherche par Date, Client, Montant ..)
-d'une textbox dans laquelle l'utilisateur saisi l'occurence cherchée : la date, le nom du client, le montant recherché)
-d'un bouton "Valider qui lance la recherche
-d'une comboboxResultat listant affichant le nombre d'occurence trouvées puis la liste de toutes les données correspondant au critère recherché ) = en gros à un filtre.
-plusieurs labels permettant d'afficher les valeurs de l'occurence sélectionnée après le filtrage

Voilà ce j'ai transmis dans mon post précédent.

Bien sûr, une fois filtrée, il faut encore créer une macro liée à la comboboxResultat: l'utilisateur clique sur l'occurence de son choix. Dans mon appli, en cliquant sur l'occurence client, c'est une fiche client qui s'incrit dans les labels du UserForm.

Je n'ai pas joint ce code là pour l'instant. J'ai simplement voulu donner une piste de recherche.

Personnellement, j'ai réalisé 3 applis sur ce principe utilisées par une trentaine de personnes (parfois novices) et ca fonctionne nickel.

Mais c'est vrai que c'est pas évident à expliquer en quelques lignes.
Bonne soirée
Kotov
 
- 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
Retour