Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recuperer données dans liste + exploitation

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

Guigui

XLDnaute Occasionnel
Bonsoir le forum,

Je vous joint un petit fichier qui parle plus qu'une explication ici, j'ai peur de m'emmeler les pinceaux...

En bref, j'ai une liste de nom dans une colonne, aprés un 1er traitement, les lignes vides on disparus mais ensuite j'ai besoin d'exploiter cette nouvelle liste en fonction de critere...

Bon ... place au concret ... je vous l'ai dit c'est mieux 😉

Merci d'avance pour votre aide
A+
Guillaume [file name=ExempleGrille.zip size=10842]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ExempleGrille.zip[/file]
 

Pièces jointes

Bonjour Guillaume,

Je te joins ton fichier agrémenté d'une solution possible. Ne t'alarme pas si tu ne vois que 2 instructions dans la procédure appelée par le bouton de commande de la Feuil1, c'est normal 😛

En fait, tout se passe dans le module de classe ClasseDeDonnees. Si tu as des modifications à apporter, c'est dans ce module qu'il faudra le faire.

Voili voilà

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

A+ 😉
 

Pièces jointes

Re le forum, charly2,

Merci beaucoup !! c'est super !

Par contre ... 😉

Peux tu m'expliquer un peu le code, car j'ai quelque modif a faire et je ne sais pas ou lesfaire exactement, par exemple,
les nom des qualifs n'est pas en colonne C mais A, et je ne sais pas ou modifier ceci,

Autre chose, si je veut que le nouveaux tableau soit crée dans un nouveau fichier,je pense connaitre la syntaxe, mais ou la placer dans ton code ?

Derniere chose, un agents malgrés qu'il soit dans un groupe 'piste', pusheurs ou casque, peut avoir les 3 qualif en meme temps, je vais donc inserer une autre feuille avec la liste des agents et toutes leur qualifs
ex:
Toto : PB, HS, P
Tata : PB, HS

est ce qu'un code recherche (du nom) et copier la ligne correspondante (avec les qualifs) suffirait ?

Merci d'avance pour ton aide

Et encore merci pour ton 1er code ...

Je comprend pas tous mais bon ...

A+
Guillaume
 
Bonsoir Guillaume, bonsoir à toutes et à tous 🙂

Guigui écrit:
Peux tu m'expliquer un peu le code, car j'ai quelque modif a faire et je ne sais pas ou lesfaire exactement, par exemple,
les nom des qualifs n'est pas en colonne C mais A, et je ne sais pas ou modifier ceci,

En allant sous VBE, tu cherches le module de classe ClasseDeDonnees dans VBAProject, tu y trouveras la définition et les méthodes de cette classe.

[ul]Les méthodes :

[li]-> LitDonnees (Plage As Range)
cette méthode va lire les données de Plage et les stocker dans un tableau. Comme Plage est un objet Range, tu peux très bien indiquer une autre feuille en appelant la méthode ainsi :

LitDonnees Sheets(TaFeuille).Range(TonTableau)

Je n'ai pas appelé cette méthode car j'ai prévu la possibilité d'un appel direct à la méthode suivante : TraiteDonnees() qui, en cas d'absence d'appel à LitDonnees, l'effectue elle-même avec une plage par défaut (celle de ton exemple).

Tu peux donc appeler LitDonnees avec la plage de ton tableau.[/li]
[li]-> TraiteDonnees()
Bon, puisque ton tableau n'est plus tout à fait organisé de la même façon, il va peut-être falloir que tu retrousses tes manches 😉.
Dans un premier temps, modifie l'appel par défaut à la méthode LitDonnees (à voir au début de la procédure) :

If IsEmpty(.TabInit) Then
  Me.LitDonnees Range('A1:C' & Range('C65536').End(xlUp).Row)
End If

soit en remplaçant la plage par défaut en fonction de ton tableau, soit en prévoyant un message si la variable TabInit n'a pas été initialisée.

Le travail principal de cette méthode se fait dans ces quelques instructions :[/li]


[li]Là, on va chercher les cellules vides en colonne 1 (A) pour lesquelles la colonne 3 contient une donnée (AGENTS DE PISTE, etc.) et en fonction de cela, on appelle la procédure privée RangeDonnees avec comme paramètre l'ID d'équivalence.

Lorsqu'elle rend la main, la variable i pointe sur la première ligne vide après les noms qu'elle a rangé dans un tableau (l'équivalent de ton tableau récapitulatif), ou sur la fin du tableau.

C'est donc cette partie qui est à modifier si tes informations ne sont pas en colonne C comme dans ton exemple.[/li]

[li]->RangeResultats(FirstCell As Range)

Je pense que les noms sont assez explicites :huh: . C'est cette méthode qui va placer les résultats (le tableau final mais sans formatage des cellules) à partir de la cellule passée en paramètre.

C'est la même chose que pour LitDonnees, tu peux très bien y placer l'adresse de la cellule haut gauche de ton tableau où qu'il soit dans le classeur (si tu ne préfixes pas la cellule, ce sera la feuille active).[/li]

La propriété :lol: :

[li]-> TableauResultat

C'est un tableau de chaînes de caractères (String).[/li][/ul]

Guigui écrit:
Autre chose, si je veut que le nouveaux tableau soit crée dans un nouveau fichier,je pense connaitre la syntaxe, mais ou la placer dans ton code ?

Là, je pense avoir répondu dans l'explication de la méthode RangeResultats 😛


Guigui écrit:

Naturellement, tu peux prévoir un tel code qui ressemblerait à un INDEX / EQUIV ou RECHERCHEV.

Voilà, j'espère ne pas avoir été trop lourd. Fais un copier/coller et lit ça à tête reposée :silly:

A+ 😉

Message édité par: Charly2, à: 29/03/2006 21:51
 
Re, bonsoir Charly2,

Merci pour toutes ces précisions,

un peu de chinois avant de dormir... j'adore .. :silly:

Sub ID_qualif()
Dim Donnees As New ClasseDeDonnees
With Donnees
.TraiteDonnees
.RangeResultats Range('G2')
End With

Est ce ici que je doit placer un code pour que le nouveau tableau avec mes ID soit dans un nouveau classeur ?

Bon ...
Je regarde tous ca, et je te tiens au courant demain.

Merci encore.



A+
Guillaume
 
re Guillaume 🙂

Ça stimule paraît-il :woohoo:

Sinon, oui c'est bien l'appel de RangeResultat qu'il faut modifier pour placer les données dans une nouvelle feuille, par exemple :

RangeResultat Sheets('MesRésultats').Range('A1')

Sinon, pour la détermination des ID et des noms, il faut aller dans 'Module de classe' sous VBAProject.

Si tu veux un coup de main, envoie-moi le 'patron' (avec les bonnes plages, les noms de feuilles, etc.) et je mettrai les main dans le cambouis 🙂

A+ 😉
 
Re, le forum, charly2 Bonjour,

Alors, j'ai essayé quelques petites bidouille mais sans résultat concluant à chaque fois ...

Ca frustre ... mais bon

Je te joint un ti fichier avec un peu plus de détails sur le resultat souhaité ...

Le truc, je pense, est juste de crée un nouveau fichier et de dire au code de mettre le tableau dedans ...

Merci encore pour ton aide
A+
Guillaume [file name=Guigui_exemple_2.zip size=39678]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Guigui_exemple_2.zip[/file]
 

Pièces jointes

Bonjour Guillaume, bonjour à toutes et à tous 🙂

Je me rends compte que j'avais mal lu ce que tu avais écrit :huh:

En fait, j'avais traduit 'nouveau classeur' par 'autre feuille' :unsure: , j'espère que tu ne m'en veux pas trop car, du coup, on a perdu un peu de temps par ma faute, mea culpa :whistle:

Bon, une nouvelle mouture. Il y a une feuille cachée appelée Modèle (tu peux la rendre visible par Format/Feuille/Afficher) qui doit être dans tes classeurs car c'est elle qui servira de 'patron' pour la feuille du nouveau classeur.

Tu verras que j'ai ajouté des paramètres optionnels à la procédure RangeResultats, les explications sont dans Module1 et dans le Module de classe ClasseDeDonnees.

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

Tiens nous au courant.

A+ 😉
 

Pièces jointes

Re le forum, Charly2,

Encore une fois merci de prendre tant de temps pour me venir en aide ...

C'est vrai que je n'arrivais pas à te faire comprendre que je voulais un nouveau classeur ...
lol ... t'inquietes, je ne t'en veux pas du tout !!!!

Ensuite , .... :whistle:
Soit je suis une quiche, soit euuh .. nan en faite je suis une quiche ...

Quand je clic sur le bouton , rien ne se passe si ce n'est l'apparition de la feuille Modele.

Je me dit donc : faut peut etre retiré les ''' que tu as mit devant certains code...
Code:
  ' Nouveau mode d'appel de la procédure :
    ' .RangeResultats FirstCell:=CelluleHautGauche,
    '       [NewWorkbook:=(True ou False),
    '       [NewWorkbookName:=NomClasseur,
    '       [NewWorksheetName:=NomFeuille]]])
Dans ma quichierie, ... je met True à NewWorkbook
et range(A2) à FirstCell
Biensurs, rien ne se passe ... j'ai honte 😉

Bon en faite, tu dis :
Si NewWorkBook est True, la feuille 'Modèle' est copiée
' dans un nouveau classeur (False par défaut).
Je le change ou le True de NewWorkbook ??!
Je ne peux que te demandé ca, car rien ne se passe donc ... euh bah rien ne se passe

Merci d'avance pour ta réponse.

A+
Guillaume
(chui lourd, je sais ...)
 
re Guillaume,

hmmm, hmmm !!! 😱

I am very surprised (prononcer surpraillezède) !

Je viens de la lancer sur mon PC et tout est ok sans rien modifier.

Essaie de créer et de lancer cette procédure (dans Module1) :

Sub Restaure()
With Application
.EnableEvents = True
.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub

et si ça ne fonctionne toujours pas, tu vas dans le module de classe après avoir lancé de nouveau Restaure, et en ligne 199, dans la méthode RangeResultats, tu désactives l'instruction :

On Error GoTo ProblemeWorkbook

en la plaçant en commentaire. Si rien ne se passe et que seul la feuille Modèle est visible, c'est dans les instructions qui suivent cette ligne de code qu'il y a un problème.

Dans ce dernier cas, reviens pour dire quel code d'erreur (et/ou message) tu obtiens...

A+ 😉
 
re,
...
le calme plat ...

j'ai lancé Restaure : rien
j'ai retiré on error ... : rien
' si erreur à la création, on quitte la procédure
' sans stocker les résultats.
'On Error GoTo ProblemeWorkbook
With ThisWorkbook.Sheets('Modèle')

Grrrrrr ....

C'est grave docteur ?
J'ai pas de message d'erreur à te montrer, y'en a pas!!

A+
Guillaume
 
re,

Juste une idée comme ça, essaie de faire 'enregistrer sous' et de donner un nouveau nom à ton classeur.

Si ça ne fonctionne toujours pas après ça, envoie-moi alors le fichier nouvellement créé (zippé, of course)...

Pour la gravité de la situation, tant qu'il n'y a pas un crise aigüe, c'est que c'est grave :lol:

J'ai XL97 donc le code devrait être ok pour les versions ultérieures.

A tout de suite
 
re,

Rien ne se passe ...
Voici le fichier

Je m'absente un moment par contre.

A+
Et merci encore charly2

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

Pièces jointes

Re le forum, charly2,

Donc comme tu le sais, le fichier fonctionne maintenant... (sauf chez moi...)

Je t'avais parlé, d'un autre traitement à faire :
Le probleme est que je ne maitrise pas beaucoup ces fonctions, et aussi, ou mettre cette liste avec toutes les qualifs, avant la création des feuilles je penses .??
N'y a t il un moyen en VBA ?

Je te remet le fichier avec cette liste.

Merci d'avance.
A+
Guillaume [file name=TRANSFERTWBV2.zip size=36351]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TRANSFERTWBV2.zip[/file]

Message édité par: guigui, à: 01/04/2006 18:01
 

Pièces jointes

- 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

Discussions similaires

P
  • Question Question
Réponses
1
Affichages
964
C
Réponses
2
Affichages
1 K
Christian
C
M
Réponses
2
Affichages
1 K
B
Réponses
2
Affichages
2 K
B
A
Réponses
6
Affichages
4 K
P
Réponses
3
Affichages
1 K
Pierrick
P
T
Réponses
3
Affichages
1 K
TITANIC
T
C
Réponses
2
Affichages
1 K
C
M
Réponses
7
Affichages
1 K
Moussa
M
M
Réponses
4
Affichages
2 K
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…