Exporter la valeur d'une cellule

Bonjour à tous

Je vais avoir besoin d’un petit coup main.

Dans l’onglet test lorsque l’on clique sur le bouton valider on incrémente de 1 dans l’onglet EQ, en plus je souhaiterais que la valeur des cellules de la feuille test (H21, J21), (H23, J23), (R21, T21), (R23, T23) soient copiées dans la feuille EQ dans le tableau avec la date du jour de la saisie.

Important si dans une des listes déroulantes on reste sur choisir on n’exporte pas la valeur qui est à 0.

L’objectif et de pouvoir ensuite additionner le temps passé par poste VOIR FICHIER JOINT plus facile qu’une longue explication.

Ce fichier est un exemple si vous avez une suggestion plus simple je suis preneur.

Merci à tous pour votre aide et bon week-end.

33test.xlsm (46.86 Ko)

Salut,

Chose promise, chose due

J’ai regardé ton fichier et ai essayé un tout petit peu de comprendre quelles devaient être les conditions afin que ton code passe par l’instruction .Cells(Ligne, Col).Value = .Cells(Ligne, Col).Value + 1, mais je n'y suis pas arrivé.

Alors peux-tu me dire comment je peux m’y prendre afin que cette incrémentation fonctionne (merci d’utiliser des références précises).

Jo-personne a écrit :

en plus je souhaiterais que la valeur des cellules de la feuille test (H21, J21), (H23, J23), (R21, T21), (R23, T23) soient copiées dans la feuille EQ dans le tableau avec la date du jour de la saisie.

Peux-tu préciser quelles cellules doivent être reportées dans quelles cellules, s’il-te-plait ?

A te relire.

Désolé, mais ce code n'est pas de moi et mais connaissance en VBA ne me permet pas de te l'expliquer.

A te lire Jo-personne

Salut,

Je ne te demande pas de m'expliquer la macro, mais le fonctionnement général de ton fichier

1) Quelles opérations effectues-tu pour qu'une incrémentation se passe ? Et où a lieu cette incrémentation ?

2) Quelles données voudrais-tu vois déplacées où ? (Par exemple, le cellule H21 de la feuille 'Test' doit être reportée dans quelle cellule de la feuille 'EQ' ? Etc.)

Sinon est-ce que ce serait plus simple de continuer la discussion sur le fil par lequel tu as reçu ce code ?

A te relire.

Bonjour Yvouille

Je pars au boulot dans l'aprés-midi et je réponds à tes questions.

@+

Bonjour Yvouille

Après avoir sélectionné les noms dans les listes déroulantes lorsque que je clique sur VALIDER de la feuille Equipe 1 ou 2 on incrémente de 1 dans la feuille EQ au croisement du nom, du poste dans le bon N° de ligne et deux colonnes plus loin date du jour.

EX : Feuil Equipe1 > LAURENT1 > ligne 1 > poste 1 > Feuil EQ incrémentation de 1 au croisement COL E LIG 15 / Date COL G Ligne 15.

Et ceci en même temps pour les deux noms des deux listes déroulantes.

Maintenant sur la ligne 1 je souhaiterais faire un suivi de temps d’ouverture et récupérer les valeurs des listes déroulantes en face de chaque nom.

EX : Feuil Equipe1 devant Laurent1 > COL H LIG 21 pour les heures et COL J LIG 21 pour les minutes en centièmes.

Au classeur j’ai rajouté une Feuil CalculHrs dans laquelle je souhaite récupérer le total des heures dans la bonne ligne sur le bon poste et dans l’équipe.

Par-contre pour la récupération du temps j’ai un besoin différent entre la ligne1 et 2.

Le temps est toujours de 8.2 ceci explique l’absence de liste déroulante de temps dans la ligne 2.

Concernant la Feuil CalculHrs j’ai besoin de changer de tableau le premier de chaque mois.

Dans cette feuille on y retrouve les lignes, les postes et les équipes pour avoir un suivi séparé.

Le classeur que j’utilise est plus complet 3 équipes et plus de lignes.

Je joins à ce poste un nouveau classeur, à ton écoute pour toutes suggestions.

En espérant avoir répondu à tes questions, merci pour ton aide.

Bonne journée à tous.

10test2.xlsm (63.50 Ko)

Salut,

Ta demande est assez confuse et si on ne va pas y aller par étape, on va se perdre.

Lorsque tu fais référence à une cellule, donne la même référence que celle que tu vois à gauche de la barre de formule. Ainsi le 'croisement COL E LIG 15' correspond en fait à la cellule E15. Et si c’est nécessaire, n’oublie pas de préciser de quelle feuille.

Sur la base de ton premier exemple, j’ai sélectionné 4 noms sur la feuille ‘Equipe 1’ et j’ai validé. La seule chose que j’ai pu constater qui se modifiait, c’est les cellules correspondantes des diverses colonnes ‘Nombre’ correspondant aux divers postes.

Par contre je ne vois absolument pas ce que tu veux dire par : « et deux colonnes plus loin date du jour ». Est-ce quelque chose que je n’ai pas vu ou qui ne fonctionne pas et que tu voudrais voir fonctionner ?

Tu dis encore : « Maintenant sur la ligne 1 je souhaiterais faire un suivi de temps d’ouverture et récupérer les valeurs des listes déroulantes en face de chaque nom ». Je ne vois absolument pas de quoi tu parles ! La ligne 1 de quelle feuille ? Dans quelle(s) cellule(s) de la ligne 1 ?

Pour la feuille CalculHrs on verra quand tout ceci sera terminé.

A te relire.

NB : Si tu choisis Eric au poste 1 et Cyril au poste2, il y a une signalisation d’erreur dans la liste déroulante du poste 3. As-tu mal appliqué mon système ?

Sur la base de ton premier exemple, j’ai sélectionné 4 noms sur la feuille ‘Equipe 1’ et j’ai validé. La seule chose que j’ai pu constater qui se modifiait, c’est les cellules correspondantes des diverses colonnes ‘Nombre’ correspondant aux divers postes.

Désolé j'ai fais un fichier test pour le forum et en effet il y a deux erreurs présentes elles sont maintenant corrigées.

Sur la base de ton premier exemple, j’ai sélectionné 4 noms sur la feuille ‘Equipe 1’ et j’ai validé. La seule chose que j’ai pu constater qui se modifiait, c’est les cellules correspondantes des diverses colonnes ‘Nombre’ correspondant aux divers postes.

Concernant la date en effet il manque dans la macro ceci:

.Cells(Ligne, Col + 2).Value = Date

Tu dis encore : « Maintenant sur la ligne 1 je souhaiterais faire un suivi de temps d’ouverture et récupérer les valeurs des listes déroulantes en face de chaque nom

Sur les feuilles EQUIPE1 et EQUIPE2 > ligne 1 >poste 1 en H21 et J21 poste 2 en H23 et J23

Fichier TEST3 avec correction

A ton écoute , bonne soirée.

26test3.xlsm (63.83 Ko)

Re,

Il y a plusieurs choses qui baissent mon envie de t’aider :

- Je me suis cassé la tête à te proposer un code super avec lequel tu pouvais choisir des noms pour tes 4 postes et tu l’as très mal mené sur le nouveau fichier que tu as joint. Avec mon code, si tu choisissais un nouveau nom pour le poste 2 par exemple, les noms pour les postes 3 et 4 s’effaçaient de manière à ce que tu ne puisses pas choisir deux fois la même personne. Avec ton code récupéré, si tu choisis comme nouveau nom pour le poste 2 un non déjà présent dans le poste 3, il est inscrit sans que personne ne s’en soucie. C’est très revalorisant pour mon dernier travail

- Tu n’as pas encore répondu à mon message sur Excel Download

- Tu me fournis des codes exemple sur lesquels il manque des bouts au lieu de me fournir ton fichier réel, ce qui éviterait du boulot de singe.

- Tu ne te donnes pas la peine de relire tes messages : tu as réaffiché deux fois le même bout de mon ancien message et une des deux fois je ne sais pas de quoi tu parles.

- Tu n’es pas précis dans tes réponses : Tu me répètes que les données à transférer sont dans les cellules H21, J21, H23 et J23 des feuilles Equipe 1 et Equipe 2 (ça c'est bon, j'avais compris). Mais tu veux que je les place sur la ligne 1 !!!!! La ligne 1 de quelle feuille ? Dans quelle(s) colonne(s) de la ligne 1 de cette feuille ? En A1, B1, C1, D1, E1, F1, …………….. ?

A te relire.

Si tu me parles du fichier 1 organisation je t'ai répondu ceci

par contre les acquis 1 ou non acquis 0 n'est pas prix en compte. Dans LD 1 on voit Pierre et Didier alors qu'ils sont à zéro.

Ensuite j'attendais Dan ....... tu m'as écris.......... A un moment et bien on essaye ..... je multiplie les postes parce-que j'ai envis de trouver une solution. Quoi te dire de plus, quand on a les connaissances on ne poste pas on le fait et puis on demande pas de l'aide on aide.

Pour Excel Download je suppose pas la peine de répondre, je pense que tu peux comprendre avec ce que je viens d'écrire.

Maintenant si tu ne souhaites plus m'aider, je peux te comprendre.

A te lire.

Salut,

Je n’ai pas dit que je ne voulais plus t’aider, je t’ai simplement mis en garde de faire un peu gaffe quand même.

Yvouille a écrit :

Mais tu veux que je les place sur la ligne 1 !!!!! La ligne 1 de quelle feuille ? Dans quelle(s) colonne(s) de la ligne 1 de cette feuille ? En A1, B1, C1, D1, E1, F1, …………….. ?

Yvouille a écrit :

A te relire.

Dan m’a encore contacté hier en privé au sujet de ton ancien fil et je lui ai dit que je ne savais plus très bien où tu en étais avec ça. Tu donnes en fait la réponse ici, apparemment tu attends toujours de l’aide à ce propos. Mais est-ce que ça fait partie des questions que l’on a remises à plus tard ou est-ce vraiment un autre sujet ?

A te relire.

Bonsoir Yvouille

Le premier sujet est clos puisque le fichier TEST qui se trouve sur ce sujet, l'incrémentation de 1 fonctionne avec changement de date. Dans ce fichier je n'utilise pas ton code, car lorsque je teste, les personnes à 0 sont présentes dans les listes déroulantes..... tu connais la suite puisque tu m'as envoyé un courrier.

Dans ce second sujet je souhaite récupérer la valeur de certaines cellules des feuilles equipe 1 et 2, et ensuite de les additionner dans la feuille CalcuHrs.

Maintenant le fichier original comporte 3 équipes. Si je propose un fichier test c'est tout simplement parce-que je souhaite finaliser moi même le fichier final.

Vous donnez tous de votre temps pour aider, je trouve normal qu'avec vos solutions que je finalise le fichier final d'ou la présence d'un fichier TEST.

A ton écoute, dis moi à partir d'ou souhaites-tu reprendre.

Et je suis vraiment désolé pour les erreurs.

Bon week-end à tous.

Salut,

Le 9 avril .....

Yvouille a écrit :

Mais tu veux que je les place sur la ligne 1 !!!!! La ligne 1 de quelle feuille ? Dans quelle(s) colonne(s) de la ligne 1 de cette feuille ? En A1, B1, C1, D1, E1, F1, …………….. ?

Le 10 avril, .....

Yvouille a écrit :

Mais tu veux que je les place sur la ligne 1 !!!!! La ligne 1 de quelle feuille ? Dans quelle(s) colonne(s) de la ligne 1 de cette feuille ? En A1, B1, C1, D1, E1, F1, …………….. ?

A te relire.

Bonjour!

Comme tu le disais procédons par étape et oublions les postes précédents.

Pour mieux se comprendre je te propose 2 captures sur ce que je souhaite réaliser uniquement pour l’équipe 1 poste 1 et 2. « Les minutes sont en centièmes »

L’action doit se réaliser lorsque l’on clique sur le bouton VALIDER qui lui-même est déjà associé à une macro pour incrémenter de 1 avec changement de date dans la Feuil EQ

A regarder dans l’ordre :

Equipe1 >

Feuil CalculHrs >

Si tu as une autre organisation à me proposer je suis à ton écoute. Merci pour ta patience, à te lire.

Bonjour Yvouille

Je suppose, que tu as vu mon poste ci-dessus.

Pour respecter ta remarque procédons par ordre j'ai écrit que la première action, mais je pense qu'il faut que tu es un aperçu de la suite.

La deuxième action concerne LA LIGNE 2, toujours en capture d'écran.

Equipe1 >

Feuil CalculHrs >

Et pour terminer le premier de chaque mois on change de tableau.

Calculhrs >

Toujours à ton écoute.

Cordialement Jo-Personne

Salut,

Après avoir un peu travaillé dessus, je dois quand même te dire que, d’une manière générale, ton fichier est un peu mal foutu. Tu as énormément de cellules fusionnées qui créent tout plein de problèmes au niveau des macros alors qu’il y a 36 solutions pour ne pas les fusionner, tu as plusieurs fois pratiquement le même code pour chaque feuille d’équipe alors qu’il aurait mieux valu n’avoir qu’un seul code avec des variables différentes selon la feuille d’équipe traitée, tu inscrits un temps dans deux cellules différentes pour les unités et les dixièmes au lieu de n’avoir qu’une seule cellule, etc. Mais ça risque d’être un peu compliqué de vouloir améliorer tout ça et on va, ma foi, continuer sur ces bases.

Je n’avais pas remarqué que tu utilisais toi-même des références «Ligne 1 », « Ligne 2 », etc. pour ton entreprise et je pensais que tu faisais référence à des lignes Excel, raison pour laquelle je n’arrivais pas à comprendre ce que tu désirais. Mais tu ne m’as non plus jamais indiqué quelque chose de clair à ce sujet du genre ‘Pour ma LIGNE 1, inscrite dans la cellule D2 de la feuille CalculHrs, je voudrais …….’

Maintenant ce n’est pas facile de travailler avec tes copies d’écran postées sur Cjoint, car je dois à chaque fois jongler entre divers onglets Internet pour m’y retrouver. Place alors plutôt tes copies d’écran – pour autant que ce soit nécessaire – directement dans ton message (lorsque tu as ajouté ton fichier-image sur le fil, tu cliques encore sur ‘Insérer dans le message’ après avoir placé le curseur à l’endroit où tu veux voir apparaître l’image).

Voici comment je pense que tu aurais dû expliquer ton désir : Dans la plage B18:K24 de ma feuille Equipe1, j’ai les données de ma LIGNE 1. Dans cette plage, j’ai un temps pour le ‘Poste 1’ indiqué en H21 (unité) et J21 (dixième). Lorsque je clique sur le bouton ‘Valider’, je voudrais qu’en plus des opérations déjà effectuées par ma macro, les données des cellules H21 et J21 soient additionnées aux données déjà en place sur la feuille ‘CalculHrs’, sur la ligne du mois concerné dans la colonne D. De la même manière, les données des cellules H23 et J 23 pour le ‘Poste 2’ devraient être additionnées aux données déjà en place sur la feuille ‘CalculHrs’, sur la ligne du mois concerné dans la colonne G.

Si tu avais expliqué ton problème tel qu’indiqué ci-dessus, il manquerait quand même une information quant à savoir quel est justement ‘le mois concerné’. Je ne sais pas comment tu as décidé pour ton exemple que les temps inscrits sur les feuilles des équipes devaient être reportés dans le tableau de mars et il faudra que tu m’expliques encore cela. Dans le fichier ci-joint, j’ai préparé une variable ‘Réf_Mois’ et je lui ai attribué pour l’instant la valeur ‘AVRIL’, mais par la suite il faudra bien lui attribuer une valeur différente selon tes besoins mensuels. Si tu traites les données à chaque fois le jour même, on pourrait attribuer à cette variable la valeur du mois en cours. Sinon il faudra bien d’une manière ou d’une autre indiquer le mois concerné, par exemple en inscrivant une date sur la feuille d’équipe à laquelle on pourrait se référer ou en inscrivant une date dans un InputBox qui s’ouvrirait au lancement de la macro ou que sais-je encore.

Mais regarde aussi mon nouveau code et dis-moi si pour les reports on va dans le sens désiré.

Comme tu dis que tu désires pouvoir modifier toi-même la suite des codes, je te prierais de toujours m’indiquer ce que tu as modifié en plus de moi et n’oublie pas d’incrémenter le numéro des versions des fichiers afin que l’on s’en sorte.

J’ai également supprimé tes anciens modules 1 et 2 dans l’explorateur VBA – puisqu’ils étaient vides – et j’ai renommé le module 3 en module 1.

Je n’ai pas du tout regardé ton dernier envoi. Je t’avais dit qu’on allait y aller par étape et tu dois bien entendu me laisser un peu de temps entre deux réponses. Lorsque l’on aura liquidé la partie traitée ci-dessus, il faudra que tu voies si tu peux m’expliquer la suite de tes problèmes d’une manière plus simple et plus précise selon mes nouvelles indications.

Amicalement.

9test-v4.xlsm (61.06 Ko)

Tu as énormément de cellules fusionnées qui créent tout plein de problèmes au niveau des macros alors qu’il y a 36 solutions pour ne pas les fusionner

Tu parles des Feuilles Equipe 1 et 2 ?

tu as plusieurs fois pratiquement le même code pour chaque feuille d’équipe alors qu’il aurait mieux valu n’avoir qu’un seul code avec des variables différentes selon la feuille d’équipe traitée.

Si on peut affecter une variable à la macro en fonction de la feuille sélectionnée pour éviter la multiplication de la même macro je suis intéressé.

Mais ça risque d’être un peu compliqué de vouloir améliorer tout ça et on va, ma foi, continuer sur ces bases.

Avec de bon conseil je peux peut-être améliorer l’ensemble et je suis intéressé. A ton écoute

Si tu traites les données à chaque fois le jour même, on pourrait attribuer à cette variable la valeur du mois en cours

Je te confirme ouverture du fichier chaque jour, mais avec une exception pour le premier jour du mois pas d’ouverture le week-end. Le sujet était dans le second poste.

Mais regarde aussi mon nouveau code et dis-moi si pour les reports on va dans le sens désiré.

Tout à fait, je viens de tester dans mon fichier impect. par contre comment je gére le code entre l'équipe 1 et 2 pour la même LIGNE 1 pour pouvoir additionner dans la bonne Equipe 1 ou 2 dans la Feuil CalculHrs si je veux éviter la répétition du code dans chaque équipe.

Equipe1 D14 / G14

Equipe2 E14 / H14

Comme tu dis que tu désires pouvoir modifier toi-même la suite des codes, je te prierais de toujours m’indiquer ce que tu as modifié en plus de moi et n’oublie pas d’incrémenter le numéro des versions des fichiers afin que l’on s’en sorte.

Aucune modif dans le fichier TEST.

Prend ton temps, je ne suis pas pressé. Je te remercie pour l’ensemble de tes commentaires et pour le travail effectué.

Deuxième partie

A partir de la feuille Equipe 1 ou 2, LIGNE 2, POSTE 3 et 4 s'il y a une ou des personne s sélectionnée s dans les listes déroulantes, lorsque que l’on clique sur le bouton VALIDER on additionne 8.2 pour chaque personne, ce qui veux dire une personne 8.2, // 2 personnes 8.2 + 8.2 . L'addition se réalise dans la feuille Calculhrs.

L’addition dans la feuille CalculHrs pour avril doit se réaliser dans la partie LINGE 2 en S14 pour le POSTE 3 Eq1 et en V14 pour le POSTE 4 Eq1. Pour l'équipe 2 l'addition se réalise en T14 et W14 si on clique sur le bonton VALIDER de l'équipe2

Bonne soirée

Salut,

Je t’avais demandé qu’on n’avance pas avec la partie 2 tant que la partie 1 n’était pas finie, ceci spécialement car probablement que ta partie 2 sera imbriquée dans la nouvelle macro unique que je te propose dans le fichier ci-joint pour toutes les feuilles d’équipes.

Alors merci de nous laisser le temps de déjà tester cette première partie avant de vouloir continuer.

Dans ta macro de base, je n’ai pas trop compris – mais je n’ai pas cherché plus que tant à comprendre – ce qui se passait entre ton FOR EACH C et ton NEXT C. Par cotre j’ai essayé de mettre un peu d’ordre partout où j’ai pu.

Je pense que tu verras toi-même, en découvrant ma macro, comment on fait référence à la feuille traitée (Feuille Equipe 1 / Feuille Equipe 2 / etc.) selon depuis quelle feuille tu déclenches justement ton code.

Comme tu dis que tu traites tous les jours tes données – sauf les premiers jours du mois, mais là tu traites quand même tes données dans le mois courant – j’ai utilisé la date du jour pour déterminer le mois auquel doivent être reporté les données. Ainsi si tu lances cette macro actuellement, la variable Réf_Mois aura la valeur ‘AVRIL’ alors que si tu la lances le 1er mai, elle aura bien entendu la valeur ‘MAI’.

Merci de tester tout ça et – si ça joue – je vais voir pour la partie 2.

Pour les autres questions :

Tu as beaucoup de cellules fusionnées un peu partout. Sur les feuilles d’équipes, mais également sur ta feuille ‘EQ’ (D4, L4, etc.), sur ta feuille ‘CalculHrs’ (D2, M2, mais encore plus embêtant et plus inutile, B6, B7, B8, etc.), sur ta feuille ‘FiltreEq1’ (C3, etc.), etc.

A te relire

6test-v5.xlsm (62.92 Ko)

Bonjour

J'ai placé l'ensemble de la macro dans le fichier original que j'ai complété en respectant ta très bonne organisation de la macro et l’ensemble fonctionne très bien sur 3 équipes et 4 lignes. Le suivi des heures pour les lignes concernées se place dans les bonnes cellules, ainsi que le changement de mois.

BRAVO ! Super boulot.

Concernant les cellules fusionnées je vais suivre tes conseilles et penser différemment sur l'original. Merci.

A te lire pour la partie 2.

Bonne journée et encore merci.

Bonjour,

Jo-personne a écrit :

Concernant les cellules fusionnées je vais suivre tes conseilles et penser différemment sur l'original.

Je parlais surtout de faire attention pour un futur fichier. Pour ce fichier en cours, tu peux bien modifier les choses, mais ça a parfois des conséquences inattendues au niveau des codes VBA. PAR EXEMPLE : si ton code fait référence à la cellule D4 et que tu supprimes justement les liaisons inutiles entre les cellules des colonnes B et C puis que tu supprimes la colonne C devenue inutile à son tour, tu vas devoir remplacer manuellement D4 par C4 dans le code.

Pour le reste, il suffit d’utiliser le nouveau passage ci-dessous (en remplacement de l'ancien passage compris entre la première et la dernière ligne de ce bout de code) :

With Sheets("CalculHrs")
    Ligne_Mois = Application.WorksheetFunction.Match(Réf_Mois, .Range("B:B"), 0)
    If Feuille_traitée = "Equipe1" Then
        .Range("D" & Ligne_Mois) = .Range("D" & Ligne_Mois) + Range("H21") + (Range("J21") / 10)
        .Range("G" & Ligne_Mois) = .Range("G" & Ligne_Mois) + Range("H23") + (Range("J23") / 10)
        If Range("N21") <> "CHOISIR" Then .Range("S" & Ligne_Mois) = .Range("S" & Ligne_Mois) + 8.2
        If Range("N23") <> "CHOISIR" Then .Range("V" & Ligne_Mois) = .Range("V" & Ligne_Mois) + 8.2
    Else
        .Range("S" & Ligne_Mois) = .Range("S" & Ligne_Mois) + Range("H21") + (Range("J21") / 10)
        .Range("V" & Ligne_Mois) = .Range("V" & Ligne_Mois) + Range("H23") + (Range("J23") / 10)
        If Range("N21") <> "CHOISIR" Then .Range("T" & Ligne_Mois) = .Range("T" & Ligne_Mois) + 8.2
        If Range("N23") <> "CHOISIR" Then .Range("W" & Ligne_Mois) = .Range("W" & Ligne_Mois) + 8.2
    End If
End With

Si tu avais plus que 3 feuilles d’équipes, ça vaudrait la peine de chercher un code qui permettrait de remplacer ces IF/ELSE/END IF, mais avec 3 feuilles il me semble que ça va encore (tu dois juste rajouter toi les lignes nécessaires pour la troisième feuille, mais ça semble te convenir).

A te relire.

9test-v6.xlsm (62.05 Ko)
Rechercher des sujets similaires à "exporter valeur"