tri iteratif d'après combo

Francis

XLDnaute Junior
Bonjour le forum
Avec l’application ci-dessous je trie des articles suivant des valeurs d’une combobox, le résultat (les lignes filtrées) je le copie dans une autre feuille.
Tout marche bien.
Je voudrais balayer toutes les valeurs de la combo afin que le tri et la création des feuilles se fassent automatiquement .
Je pense qu’il faut ajouter une phrase du genre ' For each ComboBox1.Value….. ' mais là je cale.
Si quelqu’un a une idée, je suis preneur
Merci d’avance
Francis

'trie les articles
For L = Derligne To 10 Step -1
MotCherche = Application.Find(ComboBox1.Value, Cells(L, 4))
If Not (IsError(MotCherche)) Then
Cells(L, 4).EntireRow.Hidden = False
End If
Next L
'initialise la plage à copier
Set MaPlage = Range(Cells(1, 2), Cells(Derligne, 10))
Set MaPlage = MaPlage.SpecialCells(xlCellTypeVisible)
'Crée une feuille s'il ya lieu
Worksheets(ComboBox1.Value).Activate
If Err <> 0 Then Worksheets.Add.Name = ComboBox1.Value
Cells.Select
Selection.Delete Shift:=xlUp
'copie les lignes (données filtrées)
Dim Destination As Range
Set Destination = Sheets(ComboBox1.Value).Range('b1')
Set MaPlage = MaPlage.SpecialCells(xlCellTypeVisible)
MaPlage.Copy Destination
 

sousou

XLDnaute Barbatruc
bonjour

Voila de quoi orienter ta réflexion

Private Sub ComboBox1_Click()
For i = 0 To ComboBox1.ListCount - 1
MsgBox ComboBox1.List(i)
Next
End Sub

Private Sub UserForm_Click()
ComboBox1.AddItem 'toto'
ComboBox1.AddItem 'tata'
End Sub
 

ChTi160

XLDnaute Barbatruc
Salut Francis
comme je viens de le dire sur n autre post
il est vivement conseillé de mettre un fichier joint(Zip -50Ko sans accent ni caractères spéciaux)car il nous faut a chaque fois construire le fichier avec ses Userform etc c'est pas encourageant donc mets un extrait de ton fichier ce qui va nous permettre de travailler dans de meilleurs conditions
je pense comme toi qu'une boucle du genre
myString=Combobox1 .value
for S = 0 to Me.combobox1.listCount -1
MotCherche = Application.Find(myString, Cells(L, 4))
---
----
Next S

New Edition
Oupsss Salut sousou

Message édité par: ChTi160, à: 10/05/2005 15:30
 

Francis

XLDnaute Junior
Bonjour Sousou, Chti160 et le forum
Merci de me répondre si vite. J’ai préparé un petit fichier. Comme vous voyez je m’occupe de généalogie et ces macros serviront à trier et créer des feuilles .
A+
Francis
[file name=Classeur_20050510173240.zip size=17927]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur_20050510173240.zip[/file]
 

Pièces jointes

  • Classeur_20050510173240.zip
    17.5 KB · Affichages: 20

ChTi160

XLDnaute Barbatruc
Salut Francis
bonsoir le Forum
une version 1 je ne suis pas sur d'avoir bien compris, mais j'en suis s&ucirc;r ,toi tu vas m'expliquer si je suis à coté lol
regardes ce fichier et tiens moi au courant [file name=Classeur_FrancisV1.zip size=28565]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur_FrancisV1.zip[/file]
 
Dernière édition:

Francis

XLDnaute Junior
Bonjour ChTi160 et le forum
Merci de t’intéresser à mon petit pb. Ce n’est pas tout à fait ça que je veux.
Je voudrais trier ET créer la feuille (s’il y a lieu) ET ce pour toutes les valeurs de la combo en une seule action.
Pour le moment, la macro que j’ai réalisée fait ' le tri ET la création des feuilles ' mais uniquement feuille par feuille suivant la valeur de la combo sélectionnée.
Toi, tu me crées les feuilles directement (c’est bien) mais le tri ne se fait pas en même temps.
Je désire faire cette modification car après je vais faire une macro évènementielle du genre : ' Si une cellule a changée dans une ligne de la base de données then mise à jour du classeur '.
Voila cher ChTi160 de quoi t’occuper un petit moment si tu veux.
Merci d’avance et je t’envoie un bonjour du 17.
A+
Francis
 

ChTi160

XLDnaute Barbatruc
Salut Francis
bonjour le Forum
Francis je ne comprends pas tout, si tu peux m'éclairer

Je voudrais trier ET créer la feuille (s’il y a lieu) ET ce pour toutes les valeurs de la combo en
une seule action.
Pour le moment, la macro que j’ai réalisée fait ' le tri ET la création des feuilles ' mais
uniquement feuille par feuille suivant la valeur de la combo sélectionnée

trier ET créer la feuille (s’il y a lieu)
[ol][li]trier quelle feuille [/li]
[li]créer la feuille ?[/li]
[li]uniquement feuille par feuille[/li]
[li]suivant la valeur de la combo sélectionnée etc[/li][/ol]
tu vois là je ne comprends déjà plus ce que je tente de comprendre Lol
si tu peux m'aider
Merci

Message édité par: ChTi160, à: 12/05/2005 13:52
 

Francis

XLDnaute Junior
Bonsoir ChTi160 et le forum
Merci de t’intéresser à mon problème et d’être patient à mes explications
Je vais essayer d’être plus clair.
Actuellement la macro réalise l’action suivante :
La page de départ est la feuil 'données' (la base de données). Sur celle-ci, je désire trier suivant les valeurs de la combobox et créer la feuille comprenant les données triées.
Exemple : je sélectionne ' 1865 ' avec la combo, la feuille ' 1865 ' se crée et les données relatives de 1865 sont transférées de la feuil'données' à la feuille ' 1865 '.
Je sélectionne ' 1866 '…etc. même séquence.
Or vu le nombre de données de ma combo, je voudrais réaliser ce tri automatiquement pour toutes les données de la combo.
Je désire que toutes les feuilles soient crées et triées en une seule action. Il n’y a pas besoin d’afficher la combo.
Donc si je reprends vos questions :
1) Trier quelle feuille ?
La feuille 'Données' ou il y a toutes les données
2) Créer la feuille ?
A l’initial, il n’y a pas de page triée donc elles doivent être crées, ensuite plus besoin de la créer.
3) Uniquement feuille par feuille?
Non surtout pas ! c’est l’objet de l’appel à l’aide
4) Suivant la valeur de la combo sélectionnée
Non surtout pas ! je veux que toutes les valeurs soient balayées en une seule passe.
Merci d’avance
A+
Francis
 

ChTi160

XLDnaute Barbatruc
Salut Francis
je récapépette
1° un simple bouton pourrait suffire
2° on crée la feuille si elle n'existe pas déjà et on y colle les données correspondantes ou on les colle dans la feuille déjà exitante et ainsi de suite
c'est ça ?
 

Francis

XLDnaute Junior
Bonsoir ChTi160
1)Oui un simple bouton pourrait suffire
2) on crée la feuille si elle n'existe pas déjà et on y colle les données correspondantes.
Je préfère la première solution,- on crée la feuille si elle n'existe pas déjà et on y colle les données correspondantes- car je ne voudrais pas de feuille vierge en attente de données.
Donc la séquence serait :
Je clique sur un bouton et on crée la feuille si elle n'existe pas déjà et on y colle les données correspondantes et cela pour toutes les valeurs de la combo.
Merci ChTi160 et bonne soirée
Francis
 

ChTi160

XLDnaute Barbatruc
Salut Francis
bonsoir le Forum
en pièce jointe une Vision de la chose une Macro Trois actions
1 l'Origine création des Feuilles et transfert des Données
2 Ajout de Données si même Feuilles
3 Création d'une nouvelle Feuille et ajout des données
tiens moi au courant s'il faut adapter
New Edition
je te post une version Modifiée dès que possible
[file name=Classeur_FrancisV2.zip size=32485]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur_FrancisV2.zip[/file]

Message édité par: ChTi160, à: 13/05/2005 17:07
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
re
voilà la procèdure modifiée pour le confort des Yeux

je vais essayé d'améliorer tri chronologique des Feuilles

bon Amusement
[file name=Classeur_FrancisV3.zip size=41315]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur_FrancisV3.zip[/file]

Message édité par: ChTi160, à: 13/05/2005 17:40
 
Dernière édition:

Francis

XLDnaute Junior
Bonjour ChTi160
Afin d’analyser votre macro, j’ai attendu un peu pour vous répondre.
Le fichier V3 répond parfaitement au cahier des charges que je vous ai envoyé jusqu’à ' Case Is = Nbre_Feuil_Diff + 1 ' ; Je pense que le reste est superflu pour mon application car vous avez raisonné ' modification par ajout de lignes. '
Or cette base de données est continuellement mise à jour soit par ajout de lignes (en fin de liste ou intercalée) ou changements de cellules. Et si je relance la macro ces changements ne sont pas pris en compte.
En résumé,ce que vous m’avez fait c’est exactement ce que je voulais mais il faudrait ajouter : 'Si je change une valeur dans la base se données, cette modification doit être prise en compte si je relance la macro '.
Merci encore de vous pencher sur mon application.
A+
Francis
 

ChTi160

XLDnaute Barbatruc
Salut Francis
bonjour le Fil
Bonjour le forum
Francis quand tu dis (ici on tutoie c'est plus sympa et moins académique) :) :)
je change une valeur dans la base se données, cette modification doit être prise en compte si je
relance la macro '.

que veux tu dire exactement par 'je change'
tu peux donc modifier une ligne existante ou insérer une ligne au milieu de la base ou ajouter une ligne à la fin?
quelle différence que cette ligne soit incluse à la fin plutôt que dans la base(on peut trier)

expliques moi s'il te plait Lol
car il y à une solution c'est de relancer après effacement des Feuilles La Macro
Merci

Message édité par: ChTi160, à: 15/05/2005 10:39

Message édité par: ChTi160, à: 15/05/2005 10:41
 

ChTi160

XLDnaute Barbatruc
Re Francis
voilà ce que j'ai fait tu regardes
j'ai introduit un tri de la base et j'éfface ensuite les feuilles afin de les reconstruire avec les éventuelles modifications
tu me tiens aux courant
bon dimanche
New Edition
Arf le Voici le Voilà Merci NiKi42 Dur Dur

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

Message édité par: ChTi160, à: 15/05/2005 11:26
 
Dernière édition:

Statistiques des forums

Discussions
312 391
Messages
2 087 984
Membres
103 690
dernier inscrit
LeDuc