IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copier contenu d'une cellule avec critères à définir [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 38
    Par défaut Copier contenu d'une cellule avec critères à définir
    Bonjour à tous et à toutes,

    je me permet de vous écrire car j'ai besoin de copier le contenu d'une cellule
    D27 (colonne D= Total; ligne 27=) et correspondant à la valeur enregistrée chaque mois (qui est définie dans la colonneB).
    Le but est de copier donc cette cellule correspondant à l'avant dernier mois du tableau.

    Le problème est que ce fichier est régulièrement mis à jour, des lignes sont donc ajoutées vers le bas d'une manière non homogène (+4 ou +5 selon le mois).

    et le but est de dopier la cellule de la même colonne sur la ligne de l'avant dernier mois.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1").Value = Range("A2").Value
    Sinon, .Copy / .Paste.

    F1 est ton ami pour cette deuxième solution.

    Pour info, l'enregistreur de macros t'expliquera tout cela mieux que moi étant donné que c'est la seule réponse que tu pourras avoir avec la description du problème que tu as donnée (critères à définir : oui mais encore ?).

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 51
    Par défaut
    Ctrl + C
    Dans la cellule ou tu veux coller Ctrl + V

    Sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tacellule.value = tadeuxiemecellule.value
    Ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tacellule.copy
    tadeuxiemecellule.paste
    apres tu peux voir les collages spéciaux en enregistrant une macro

    Edit: Grilled by DeaD78

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 38
    Par défaut
    Merci pour vos réponses,

    Mais vous êtes completement à coté de la plaque (normal avec une explication aussi pourrie que la mienne, je sais j'ai un sacré toupet)

    Blague à part, Voici le contenu du tableau pour une meilleure visibilitée:


    Mois Total
    March 03/01 -> 03/07 5
    03/08 -> 03/14 6
    03/15 -> 03/21 4
    03/22 -> 03/28 12
    03/29 -> 04/04 8
    March Total 35
    April 03/29 -> 04/04 4
    04/05 -> 04/11 3
    04/12 -> 04/18 12
    04/19 -> 04/25 7
    04/26 -> 05/02 15
    April Total 41
    May 05/03 -> 05/09 10
    05/10 -> 05/16 3
    05/17 -> 05/23 6
    May Total 19


    Donc on reprends, le but est de copier la cellule en D27 = 41.
    et comme je vous le disais plus haut ce fichier est mis à jour,
    voici ce que je suis sucspetible de trouver:

    Mois Total
    March 03/01 -> 03/07 5
    03/08 -> 03/14 6
    03/15 -> 03/21 4
    03/22 -> 03/28 12
    03/29 -> 04/04 8
    March Total 35
    April 03/29 -> 04/04 4
    04/05 -> 04/11 3
    04/12 -> 04/18 12
    04/19 -> 04/25 7
    04/26 -> 05/02 15
    April Total 41
    May 05/03 -> 05/09 10
    05/10 -> 05/16 3
    05/17 -> 05/23 6
    05/25 -> 05/29 15
    May Total 33
    June 06/01 -> 06/05 10
    06/07 -> 06/11 3
    JuneTotal 13

    et dans ce cas là le but est de copier la cellule D32 = 33

    En gros c'est la valeur de la colonne D de l'avant dernier mois qu'il faut copier.
    Je suis vraiment désolai de la manière dont ce topic a été posté, merci en tout cas pour vos réponses

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim plage As Range, c As Range
    Set plage = Range("A1:" & Cells(Rows.Count, 1).End(xlUp).Offset(-1, 0).Address) 'plage données colonne A moins dernière cellule total dernier mois
    Set c = plage.Find("TOTAL", LookIn:=xlValues, lookat:=xlPart, searchdirection:=xlPrevious) 'on cherche le mot Total
    If Not c Is Nothing Then MsgBox c.Offset(0, 1).Value  'Si trouvé, on affiche la valeur correspondante colonne B (dès lors on peux faire ce qu'on désire)
    Set c = Nothing
    Set plage = Nothing

  6. #6
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 38
    Par défaut
    Bonjour mercatog,

    Merci pour ta réponse, cependant en executant ton code il ne se produit rien.
    j'ai toujours le même résultat .

    Voci le code que j'utilise pour faire mon Copier/Coller.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Workbooks.Open Filename:="G:\Creditbail\Immtech\Documentation Support\Stat Itrack\Suivi global\eXport.xls"
        Sheets("tcd_flux").Select
        Set f1 = Workbooks("eXport.xls").Sheets(4)
        Windows("2010 - Suivi Support-V2.xls").Activate
        Set f2 = Workbooks("2010 - Suivi Support-V2.xls").Sheets(2)
        derLigne = f2.Range("B65536").End(xlUp).Row
        f1.PivotTables("pivot_open_flux").PivotFields("Filiale").CurrentPage = "GNF"
        f2.Range("B" & derLigne + 1) = f1.Range("D21")
        Application.CutCopyMode = False
    La problématique concerne la cellule D21 qu'il faut remplacer en mettant à sa place la cellule qui est sur la même ligne que l'avant dernier mois.

  7. #7
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 38
    Par défaut
    Bonsoir,

    Je me permet de réitérer et de formuler ma demande en fournissant d'autres données.
    En fournissant le fichier concerné, j'espère que mon explication sera plus claire. Comme expliqué plus tôt, je doit automatiser la copie d'une valeur dans la colonne D. cette valeur correspond à une valeur mensuelle et celle qui nous intéresse est celle du mois M-1 (Avril dans l'exemple).

    Or le souci c'est que ce fichier est généré mensuellement et que chaque mois il y a aléatoirement 3,4 ou 5 lignes qui s'ajoutent.
    JE n'avais pas pris en compte cette donnée en mettant la copie de la cellule D27.
    Du coup c'est toujours la valeur relative au mois d'Avril qui est copiée or quand on sera en Juin, l'avant dernier mois sera Mai e non plus Avril.
    Voici le code que j'utilisais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Workbooks.Open Filename:="G:\Creditbail\Immtech\Documentation Support\Stat Itrack\Suivi global\eXport.xls"
        Sheets("tcd_flux").Select 
        Set f1 = Workbooks("eXport.xls").Sheets(4)
        Windows("2010 - Suivi Support-V2.xls").Activate
        Set f2 = Workbooks("2010 - Suivi Support-V2.xls").Sheets(2)
        derLigne = f2.Range("B65536").End(xlUp).Row
        f1.PivotTables("pivot_open_flux").PivotFields("Filiale").CurrentPage = "GNF"
        f2.Range("B" & derLigne + 1) = f1.Range("D21")
        Application.CutCopyMode = False
    Ce que j'ai pensé:
    Comment faire pour par exemple trouver l'avant dernière case contenant le mot "Total" dans la colonne B et copier la valeur contenue dans la cellule correspondante dans la colonne D
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Calculer le contenu d'une cellule avec formule
    Par Bulveye dans le forum Excel
    Réponses: 1
    Dernier message: 11/02/2014, 17h54
  2. Contenu d'une cellule avec getElementsByName
    Par Bdloul dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/12/2011, 11h35
  3. Réponses: 2
    Dernier message: 04/02/2009, 12h13
  4. Réponses: 7
    Dernier message: 28/09/2007, 09h51
  5. Copier le contenu d'une cellule avec suivie en cas de changement
    Par geeksideofme dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/04/2007, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo