[Résolu] Cumuler des valeurs numériques depuis une case unique vers une autre.

PULK

XLDnaute Nouveau
Bonjour à tous,

Une nouvelle tâche m'a été confiée, que je pensais simple à l'origine, mais qui finalement s'avère compliqué, du moins pour moi. Je suis donc ici pour vous demander de l'aide.

Je joins un classeur excel comme exemple :

Il s'agit d'un fichier sur la "PRODUCTION JOURNALIERE", qui comprend le nombre de rendez-vous du jour (commandés et livrés) et le cumul de tout les rendez-vous du mois.

Pour l'exemple, j'ai créé un classeur avec trois onglets correspondants à trois jours consécutifs (du 10 au 12 Mai 2011). Normalement, le classeur ne comprend qu'un seul onglet, et chaque jour le fichier est écrasé (pour plus de visibilité).

Les colonnes "RDV du jour" ne sont donc pas sauvés. Ce sont les colonnes "RDV cumul du mois" qui importent. En effet, chaque jour, le cumul du nombre de RDV (commandés et livrés) est effectué de tête.

Ainsi, je cherche une méthode pour que les valeurs des colonnes "RDV cumul du mois" restent en mémoire puis que chaque jour, on puisse supprimer les valeurs des colonnes "RDV du jour" en les actualisant avec les nouvelles données du jour, qui viendraient s'ajouter à la valeur correspondante de la colonne "RDV cumul du mois".

Je ne sais pas si j'ai été bien clair... J'ai pensé utiliser une macro d'extraction de données ? Ou une fonction CUMUL si cela existe pour mon cas ?

Merci d'avance pour toute aide.

Antoine.
 

Pièces jointes

  • Exemple_PULK.xls
    17.5 KB · Affichages: 72
  • Exemple_PULK.xls
    17.5 KB · Affichages: 81
  • Exemple_PULK.xls
    17.5 KB · Affichages: 79
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Cumuler (additioner) des valeurs numériques depuis une case unique vers une autr

Bonjour, Pulk.

Une proposition ici, avec une seule feuille :
 

Pièces jointes

  • Exemple_PULK.xls
    32.5 KB · Affichages: 73
  • Exemple_PULK.xls
    32.5 KB · Affichages: 75
  • Exemple_PULK.xls
    32.5 KB · Affichages: 87

Robert

XLDnaute Barbatruc
Repose en paix
Re : Cumuler (additioner) des valeurs numériques depuis une case unique vers une autr

Bonjour Pulk, bonjour le forum,

Une proposition en pièce jointe avec un bouton Nouvelle Journée pour mettre à jour les date et effacer les anciennes données du jour et la marco événementielle Change sur la plage B6:C10 pour actualiser les calculs mensuels.


[Édition]
Bonjour Victor on s'est croisé...
 

Pièces jointes

  • Pulk_v01.xls
    32.5 KB · Affichages: 63
Dernière édition:

PULK

XLDnaute Nouveau
Re : Cumuler (additioner) des valeurs numériques depuis une case unique vers une autr

Wahou magique ! Merci Victor21 !

Par contre est-il possible d'avoir quelques explications au niveau de la macro, parce que maintenant je vais devoir l'adapté au classeur d'origine, qui est plus compliqué que l'exemple... Et que je ne maîtrise pas très bien les macros.

Il s'agit d'une macro qui copie les valeurs de F6:G10 à B6:C10 en supprimant les valeurs de D6:E10 c'est cela ?

Macro VB :

Sub Macro1()
Range("F6:G10").Copy
Range("B6:c10").PasteSpecial Paste:=xlPasteValues
Range("D6:E10").ClearContents
End Sub


Ainsi, dans un tableau légèrement plus compliqué avec une ligne vide, comment l'introduire dans ce modèle de macro ? (voir nouvel exemple).

Par exemple, est ce que cela est correct :

Sub Macro1()
Range("F6:G10").Copy
Range("B6:c10").PasteSpecial Paste:=xlPasteValues
Range("D6:E10").ClearContents

Range("F15:G19").Copy
Range("B15:c19").PasteSpecial Paste:=xlPasteValues
Range("D15:E19").ClearContents
End Sub


Encore merci !
 

Pièces jointes

  • Exemple_PULK_2.xls
    16 KB · Affichages: 67
Dernière édition:

PULK

XLDnaute Nouveau
Re : Cumuler (additioner) des valeurs numériques depuis une case unique vers une autr

Bonjour Robert ! Je viens de répondre à Victor21 et je n'ai pas encore vu votre proposition mais je vais y répondre dès que possible ! En tout cas merci beaucoup à tout les deux !
 

PULK

XLDnaute Nouveau
Re : Cumuler (additioner) des valeurs numériques depuis une case unique vers une autr

Bonjour Robert,

Il est vrai que votre solution est plus complète et plus adapté à mes besoins. Le bouton "Nouvelle Journée" est très utile ! Merci beaucoup !

Par contre, j'ai essayé de comprendre votre réflexion et votre macro, mais étant débutant, je n'ai pas tout saisi.

J'ai joins le modèle du tableau original, ce que j'aurai peut être du faire dès le début... Pourriez-vous m'expliquer comment adapté votre macro avec ce tableau s'il vous plait ?

Enfin, que se passe-t-il lorsque un nouveau mois démarre ? En effet, ce tableau est mensuel, et donc il est remis à zéro à chaque début de mois.

Merci d'avance. Antoine.
 

Pièces jointes

  • Modèle_Tableau_PULK.xls
    20.5 KB · Affichages: 55

Robert

XLDnaute Barbatruc
Repose en paix
Re : Cumuler (additioner) des valeurs numériques depuis une case unique vers une autr

Bonjour le fil, bonjour le forum,

En pièce jointe ton fichier modifié. Le fonctionnement de la macro est le suivant : une plage pl est définie. Elle correspond aux cellules où seront édités les RDV du jour. Cette plage n'est pas dynamique. Si tu rajoutes, supprimes ou modifies le nombre de lignes, la macro risque de ne plus fonctionner correctement. Il te faudra redédinir la plage pl. Si ton fichier ne bouge pas la solution que je te propose devrait convenir mais si tu dois sans cesse rajouter des clients ou des réseaux il faudra penser différemment...

Le code du bouton commence par récupérer la date (inscrite dans le nom de l'onglet). Cela veut dire que si l'onglet porte un nom non convertible en date ça plante...
• Ensuite une boîte d'entrée te propose une nouvelle date. Par défaut la date de l'onglet + un jour. Valide ou inscrit la date que tu désires.
• L'onglet sera renommé ainsi que la date dans la cellule A1
• Tous les anciens rendez-vous du jour sont effacés
• si le jour de la nouvelle date proposé est le premier jour du mois, tous les anciens RDV cumul du mois sont également effacés.
Le code du bouton est terminé

La macro événementielle Change va agir dès que tu vas éditer quelques chose dans l'onglet.
• Si tu édites ailleurs que dans la plage pl ou si la variable booléenne Test est vrai, rien ne se passe.
• Sinon, la cellule située deux cellules à droite de la cellule éditée est incrémentée de la valeur que tu as éditée (par exemple D6 = 41 et tu tapes 4 en B6. D6 prend alors la valeur 41 + 4 = 45).

Voilà j'espère que ça te conviendra... ha oui, autre chose, tu sais on est tous des bénévoles dans ce site et des fois, le week-end, on est moins disponible. Mais pas toujours heureusement parce qu'après on trouve des gens surpris de nepas avoir eu leur réponse...
 

Pièces jointes

  • Pulk_v02.xls
    36.5 KB · Affichages: 51

PULK

XLDnaute Nouveau
Re : Cumuler (additioner) des valeurs numériques depuis une case unique vers une autr

Bonjour Robert !

Un grand merci pour votre travail et pour les explications ! Maintenant j'ai tout compris ! J'ai adapté ta macro à mon travail et tout marche nickel !

Pour terminer, excusez moi pour mon dernier message, je ne voulais en aucun cas précipiter les choses mais seulement savoir si vous alliez compléter votre première réponse ou non. Vous faites un travail merveilleux sur ce forum, encore merci.

Antoine.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : [Résolu] Cumuler des valeurs numériques depuis une case unique vers une autre.

Bonjour le fil, bonjour le forum,

Dans la version 02 les RDV cumul du mois étaient effacés uniquement si la date proposée était le 1er du mois. Dans la version 03, ils le seront si le mois est différent de celui affiché avant le clic dans le bouton Nouvelle Journée.
Si par exemple tu passes du vendredi 31 mois x au lundi 03 mois x+1 les RDV cumul du mois seront effacés.
 

Pièces jointes

  • Pulk_v03.xls
    37 KB · Affichages: 47

PULK

XLDnaute Nouveau
Re : [Résolu] Cumuler des valeurs numériques depuis une case unique vers une autre.

Bonjour Robert,

Très bien merci.

J'ai aussi remarqué un autre problème. Dans la plage RDV du jour, lorsque l'on écrit les valeurs et que l'on valide par entrée la valeur est ajoutée à la case correspondante dans la plage RDV cumul du mois. Le problème est que si on se trompe et que l'on inscrit une valeur erronée dans la plage RDV du jour, la modifier ou l'effacer ne soustrait pas cette valeur à la case correspondante dans la plage RDV cumul du mois.

Exemple : D6 = "41". On tape "2" dans la case B6. La case D6 prend alors la valeur 41 + 2 = "43".

Si jamais "2" était erroné et que l'on devait écrire "3", on efface alors la valeur dans B6 pour rectifier en tapant "3".

Dans ce cas là, D6 garde sa valeur et ajoute celle de B6, soit 43 + 3 = 46. Le vrai résultat aurait dû être "44" (valeur de base 41 + 3).



Est ce que vous savez comment modifier cela ?

Merci d'avance. Antoine.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : [Résolu] Cumuler des valeurs numériques depuis une case unique vers une autre.

Bonjour le fil, bonjour le forum,

Oui Antoine, j'avais conscience de ce problème mais le résoudre nécessite des modifications. D'abord il faudrait impérativement que tu effaces la valeur erronée avant de la retaper. Sans quoi, comment dire au code qu'il reconnaisse que c'est une valeur erroné et pas une nouvelle entrée ?

Je reprends ton exemple : D6=41, tu tapes 2 en B6, D6 devient 43. Tu te rends compte que tu aurais dû taper 3...
Alors il faudrait effacer 2 (et dire au code de reprendre sa valeur initiale) et ensuite taper 3. C'est faisable de dire au code si B6 est effacée alors D6=D6-B6.
Mais ! Que va-t-il se passer lors d'une Nouvelle Journée où tous les rendez-vous du jour sont effacés ?
Tu vois ça complique... Je vais m'y pencher mais je me demande si ça serait pas plus simple de corriger toi-même : tu retapes 1 dans B6 et D6=43+1=44... ou si tu t'es trompé en trop tu retapes un nombre négatif pour corriger...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : [Résolu] Cumuler des valeurs numériques depuis une case unique vers une autre.

Bonjour le fil, bonjour le forum,

Finalement pas si compliqué que ça. J'ai utilisé la macro événementielle Selection_Change pour récupérer la valeur initiale vi. Et si la cellule du RVD du jour est effacée, le Cumul du mois retrouve son ancienne valeur.
Mais comme je te disait dans mon post précédent, il te faut impérativement effacer une valeur erronée avant de la retaper. Si tu retapes par dessus le cumul additionnera !
De plus, comme au clic du bouton Nouvelle Journée la variable test prend la valeur vrai, l'effacement global des RVD du jour n'affecte pas les cumuls.

La v04 en pièce jointe...
 

Pièces jointes

  • Pulk_v04.xls
    44.5 KB · Affichages: 52

Discussions similaires

Réponses
46
Affichages
1 K

Statistiques des forums

Discussions
312 492
Messages
2 088 940
Membres
103 989
dernier inscrit
jralonso