rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

VBA - Structure en boucle

Posté par Cat&Dom, le lundi 24 septembre 2007 à 13:15:03
Bonjour,

Je travaille sur excel 2000

Je débute en VBA, j'ai fait une formation de 3 jours, mais j'ai beaucoup de mal à trouver la bonne piste.

Voilà, j'ai créé :

- Une fiche

- Un tableau à double entrée :

En-tête de colonne : produits
En-tête de lignes : salariés

A partir de ce tableau, je voudrais générer une fiche par salarié sur laquelle serait recencé tous les produits que le salarié utilise. Ma fiche contient des formules qui vont chercher les caractéristiques des produits (code produit, Phrase de risque, date de début d'utilisation....) et les coordonnées du salarié (prénom, date de d'entrée, poste occupé....)

Je pense qu'il faut que je dois faire appel à une structure en boucle, mais laquelle ?

Je suis dans le flou le plus complet.

Merci d'avance à tous ceux et celles qui tenteront de m'aider.

Catherine
Configuration: Windows XP
AOL 8.0
Répondre à Cat&Dom  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ShaBoo, le lundi 24 septembre 2007 à 15:20:22
Bonjour,

Est ce que ton fichier à cette structure ?

            | Produit | Produit | Produit |
            |----------|----------|----------|
Salarié | Tutu     | Tata     | Toto     |
            |----------|----------|----------|
            |Prod11  | Prod21 | Prod31 |
            |----------|----------|----------|
            |Prod11  | Prod21 | Prod31 |
            |----------|----------|----------|
            |Prod11  | Prod21 | Prod31 |
            |----------|----------|----------|
Répondre à ShaBoo

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Cat&Dom, le lundi 24 septembre 2007 à 20:50:17
Bonsoir,

Ce n'est pas tout à fait ça. J'ai fait des copies d'écran que j'ai enregistrer dans photoshop adobe en format jpeg mais je n'arrive pas à les envoyer par le biais d'HIBOOX. Je pense que ce serait plus explicite.

As-tu un autre site par lequel je pourrais passer ?

D'avance merci.

Catherine
Répondre à Cat&Dom

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Cat&Dom, le lundi 24 septembre 2007 à 21:30:39
Bonsoir,

[url=http://www.hiboox.com/lang-fr/image.php?img=q0nid2wv.jp­g][img]http://images2.hiboox.com/vignettes/3907/q0nid2wv.jpg­[/img][/url]

[url=http://www.hiboox.com/lang-fr/image.php?img=efymxzkp.jp­g][img]http://images2.hiboox.com/vignettes/3907/efymxzkp.jpg­[/img][/url]

Voilà, apparemment, j'ai réussi à mettre mes copies d'écran, j'espère que ce sera suffisamment claire.

Voilà, je voudrai créer un code qui sélectionne le premier salarié de la colonne A du tableau, ensuite se déplace horizontalement et chaque fois qu'il trouve un "X", sélectionne l'entête de colonne et vient la copier dans la première ligne de la fiche "salarié". Ensuite, créé une nouvelle ligne chaque fois qu'il retrouve une croix sur la ligne du salarié concerné jusqu'a ce que tous les produits soient recensé sur la fiche individuelle.

Une fois la fiche du premier salarié renseignée, il créé une nouvelle feuille pour le suivant, etc...

J'espère que quelqu'un pourra m'aider.

Merci d'avance

Cordialement. Catherine
Répondre à Cat&Dom

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ShaBoo, le lundi 24 septembre 2007 à 21:52:17
Bonsoir,

je viens de regarder tes documents. Il te faudra 2 boucles :

- Une pour parser tes salariés
- Une pour parser chaque produit marqué d'un "X" pour chaque salarié parsé.

Te faut il plus de précision ?
Répondre à ShaBoo

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Cat&Dom, le mardi 25 septembre 2007 à 06:00:19
Bonjour,

J'ai réfléchi, je vais un peu simplifier la tâche, je vais dans un premier temps générer une seule fiche à la fois.

Ce qui me permettra d'avoir recours à une seule boucle et je pense que ce sera suffisant.J'ai donc commencé par une Inputbox pour saisir le nom du salarié.

Par contre, quelle instruction:
WHILE...WEND
DO...LOOP
FOR....NEXT
FOR EACH.....NEXT

Mes 3 jours de formation date du mois de juin et je n'ai pas eu le temps de travailler dessus (déménagement, orientation des enfants....) ça va être difficile de reprendre. Je suis complètement perdue.

Si tu peux me mettre sur la bonne piste, ce sera un gain de temps car il y a du boulot.

Merci d'avance
Catherine
Répondre à Cat&Dom

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ShaBoo, le mardi 25 septembre 2007 à 09:53:25
Bonjour,

Dans ton cas tu peux utiliser la boucle do while :

Do While ValeurCelluleSalarié <> ""  '1ère boucle pour lire les salariés : la boucle s'arrete lorsque la celulle est vide
        
        'Créer la fiche pour le salarié trouvé

        Do While ValeurCelluleEnteteProduit <> "" '2ème boucle pour lire les produits : la boucle s'arrete lorsque la celulle est vide
                                                                            ' la condition est faite sur l'entête de colonne car ttes les colonnes sont remplies
                                                                            'ce qui n'est pas le cas pour les cellules marquant la présence ou non d'un produit 

         'incrementer un indice pour aller sur la colonne suivante
         
         if ValeurCelluleProduit = "X" Then
             'Recupérer l'intitulé
             
             'Créer une ligne dans la fiche avec valeur de l'intitulé produit
            
         End If

     Loop

     'incrementer un indice pour aller sur la ligne suivante

Loop


Cela te convient il ?
Répondre à ShaBoo

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ShaBoo, le mardi 25 septembre 2007 à 11:10:15
Bonjour,

J'ai mis un fichier excel en ligne :

http://www.cijoint.fr/cij117041863626750.xls

Il contient une macro que tu pourras faire tourner en mode debug. Le Classeur est proche de tes conditions. Tu n'auras qu'à modifier la macro pour que cela corresponde à tes besoins.

En espérant avoir répondu à tes attentes.

@+
Répondre à ShaBoo

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Cat&Dom, le mardi 25 septembre 2007 à 13:24:32
Bonjour,

Je viens de rentrer et je suis très agréablement surprise par ce que tu m'as envoyé. C'est super, je vais détailler tout ça et essayer de l'adapter exactement à ce que je souhaite, à savoir deux solutions :

1 - Je lance une seule fiche par le biais d'une inputbox lorsque qu'un nouveau salarié arrive ou qu'un salarié quitte la société

2 - Je lance automatiquement la totalité des fiches sans renseignement par le biais de MsgBox car j'ai environ 60 fiches à lancer chaque fois qu'un produit est supprimé ou ajouté.

Un grand merci et peut-être à bientôt car il serait fort étonnant que je m'en sortes complètement seule, je vais probablement encore faire appel aux connaissances de personnes comme toi. Je retourne bosser.

Cordialement Catherine
Répondre à Cat&Dom
Logiciels pertinents trouvés dans les téléchargements
Télécharger Open Workbench 1.1.6Open Workbench - Open Workbench est une application libre de gestion et de planification de projet. Il s'agit d'un équivalent libre de...Catégorie: Gestion de projet
Licence: Open Source
Télécharger GANTT Project 2.0.7GANTT Project - GanttProject est un outil de gestion de projet libre, permettant de réaliser des diagrammes de GANTT afin de planifier un...Catégorie: Gestion de projet
Licence: Open Source
Télécharger Visual Basic Express 2005 2005Visual Basic Express 2005 - Le langage de programmation Visual Basic est historiquement dans les gènes de la société Microsoft. Avec plus de 30.000...Catégorie: Visual Basic
Licence: Freeware/gratuit
Télécharger Coloriage 1.1.4Coloriage - Coloriage est un logiciel de coloriage pour jeunes enfants, à la manière de Tux Paint . Il répertorie quelque 220 dessins à...Catégorie: Dessin
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « VBA Structure en boucle »