Copier une cellule vers une autre feuille en fonction d'une date
#1
Débutant XLPages

Inscription: 21/11/2012

Messages: 8

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 26-12-2012 14h13

Bonjour à toutes et tous
Je voudrai pouvoir copier le nombre inscrit dans une cellule sur la feuil1, dans la feuil2 dans un tableau de répartition par mois et ce en fonction d'une date indiquée dans la feuil1. C'est-à-dire que je souhaiterai recopier le contenu de la cellule E2 en fonction d'une date située en I2 de la feuil1 vers un tableau en feuil2 en fonction du mois de l'année de cette dite date.

Merci d'avance à tous ceux qui pourront m'aider et bonnes fêtes de fin d'année à toutes et tous.

Sandy



Pièce jointe:
xls essai.xls   [ Taille: 15.00 Ko - Téléchargements: 1177 ]
Hors Ligne
Rapport   Haut 

Re: Copier une cellule vers une autre feuille en fonction d'une date
#2
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 27-12-2012 07h18
Bonjour Sandy84, Didier, le Forum 

Voici un code pour écrire la valeur "PO" dans la bonne cellule de ton tableau, code à mettre dans un module.
Sub Sandy_mdf_xlpages()
'Déclaration des variales
Dim vLigne As Byte
'Action .xxxx pointant sur l'objet
With Worksheets("Feuil1")
   'Quelle est la ligne à affecter, celle de Pierre, Paul ou Leo ?
   'recherche du caractère "X" dans les trois premières colonnes
   'vligne aura la valeur 4 , 7, 10
   vLigne = (Application.Match("X", .Range("A5:C5"), 1) * 3) + 1
   'on écrit la valeur de la cellule E5
   'dans la colonne "PO" du mois concerné et en fonction de la ligne vLigne
   Worksheets("Feuil2").Cells(vLigne, (Month(.Range("I5")) * 2)) = .Range("E5")
End With
End Sub
  
Après il te faudra créer un bouton pour lancer le code.

Concernant la formule en I5, tu peux l'écrire de cette manière :
=SI(ESTVIDE($H5);"";$H5+$D5)
ou
=SI($H5="";"";$H5+$D5)

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: Copier une cellule vers une autre feuille en fonction d'une date
#3
Débutant XLPages

Inscription: 21/11/2012

Messages: 8

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 27-12-2012 08h42
Bonjour Jean-Marie

Tout d'abord merci de ta réponse et de ta rapidité, par contre peux tu me dire comment faire pour appliquer cette formule à tout mon tableau (pour Pierre, Paul et Léo et ce pour tous les mois de l'année) j'ai essayé en mettant des $ devant les noms des colonnes mais ça ne fonctionne pas.

Merci d'avance et bonne journée
Sandy

Hors Ligne
Rapport   Haut 

Re: Copier une cellule vers une autre feuille en fonction d'une date
#4
Débutant XLPages

Inscription: 21/11/2012

Messages: 8

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 27-12-2012 09h49
Ah oui merci aussi pour la formule en "I5" elle est plus simple.

Sinon petite précision concernant mon tableau j'ai besoin que lorsque je crée une nouvelle entrée et que si cette dernière correspond également à un mois ayant déjà une valeur il faudrait que cette dernière s'ajoute au total déjà indiqué sur la Feuil2
Exemple : j'ai déjà 10 en avril et pour la même personne je rajoute 3 il faudrait qu'en avril j'obtienne 13.
Désolée j'avais oublié de le préciser. Encore merci
Sandy84
Hors Ligne
Rapport   Haut 

Re: Copier une cellule vers une autre feuille en fonction d'une date
#5
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 27-12-2012 14h58
Re....

Essaye avec ce code
Sub Sandy_mdf_xlpages()
'Déclaration des variales
Dim vLigne As Byte 'valeur de la ligne à affecter
Dim vColonne As Byte 'valeur de la colonne à affecter
Dim vCumul As Variant 'Valeur de la cellule pointée par vLigne et vColonne
'Action .xxxx pointant sur l'objet
With Worksheets("Feuil1")
   'Recherche la dernière cellule de la colonne H contenant une donnée saisie
   'Début de la boucle, on commence à la ligne 5
   For K = 5 To .Range("H65536").End(xlUp).Row
      'Quelle est la ligne à affecter, celle de Pierre, Paul ou Leo ?
      'recherche du caractère "X" dans les trois premières colonnes
      'vligne aura la valeur 4 , 7, 10
      'la foncion Match correspond à la fonction EQUIV d'Excel
      vLigne = (Application.Match("X", .Range("A" & K & ":C" & K), 1) * 3) + 1
      'Calcul de la colonne à affecter en prenant la valeur du mois de la cellelule en colonne I
      vColonne = Month(.Cells(K, "I")) * 2
      'on additionne la valeur de la colonne E avec la valeur de la cellule déterminée par vLigne et vColonne
      vCumul = Worksheets("Feuil2").Cells(vLigne, vColonne) + .Cells(K, "E")
      'on écrit la valeur cumulée
      Worksheets("Feuil2").Cells(vLigne, vColonne) = vCumul
   'on passe à la ligne suivante
   Next K
End With
End Sub

@+Jean-Marie 
Hors Ligne
Rapport   Haut 

Re: Copier une cellule vers une autre feuille en fonction d'une date
#6
Débutant XLPages

Inscription: 21/11/2012

Messages: 8

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 27-12-2012 16h39

Le code fonctionne très bien par contre il m'additionne à nouveau les lignes existantes (ex: si j'ai déjà 10 en avril après l'exécution il me rajoute 10 dans cette même colonne même s'il n'y en a pas en plus) et autre détail la commande ne s'applique que pour PO et pas aussi pour GO. Sinon c'est génial.
Vraiment désolée du dérangement, je sais que j'abuse mais je peux m'en sortir avec les formules mais pas sous VBA j'avoue. Je préfère m'adresser aux pro de ce forum et compter sur leur bonté pour m'aider.
Encore merci par avance
Sandy84


Pièce jointe:
xls essai.xls   [ Taille: 31.50 Ko - Téléchargements: 911 ]
Hors Ligne
Rapport   Haut 

Re: Copier une cellule vers une autre feuille en fonction d'une date
#7
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 27-12-2012 17h24
Re...

Pour ce qui est de ta demande pour le cumul des valeurs "GO" de ton tableau, que devrais-tu modifier sur ces deux lignes de code ?
      vCumul = Worksheets("Feuil2").Cells(vLigne, vColonne) + .Cells(K, "E")
      Worksheets("Feuil2").Cells(vLigne, vColonne) = vCumul

Il est évidant que si tu n'effaces pas les lignes de la feuille1 après avoir exécutée la macro, celles-ci seront de nouveau cumulées au lancement de la macro.

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: Copier une cellule vers une autre feuille en fonction d'une date
#8
Débutant XLPages

Inscription: 21/11/2012

Messages: 8

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 29-12-2012 15h15
Bonjour Jean-Marie
Je ne comprends pas ta question concernant ce qu'il faut changer dans la formule !!!!

Pour ce qui est du reste j'ai résolu le problème en créant un bouton qui efface mes données puis un autre pour lancer le calcul.

Bon week-end
Sandy84

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes