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 :

Copie automatique données vers autre feuille [XL-2010]


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
    Février 2012
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut Copie automatique données vers autre feuille
    Bonjour à tous,

    J'aimerais réaliser une commande automatique mais je n'ai pas la moindre idée du code qui pourrait lui donner vie.

    Voici mon "problème" :

    J'ai 2 feuilles Excel avec sur la première, des candidats en cours de promotion, et sur la deuxième, j'aimerais que soient transférés les candidats promus.

    Le critère de promotion est la date d'échéance de la période de stage.
    Si celle-ci est de deux ans et que le candidat a commencé son stage en 2010, il sera promu en 2012. Ainsi, au 1er janvier 2012, toute la ligne le concernant (Nom, matricule, date arrivée, date d'échéance, etc...) devrait être transférée dans la deuxième feuille. Cependant, j'aimerais que ces données restent dans la première feuille, mais par exemple en italique ou en barré.

    La condition de transfert est donc le terme de sa période de stage (qui est l'une des colonnes de la feuille 1).


    J'espère avoir été assez clair, n'hésitez pas à me demander des précisions.

    Merci à ceux qui se pencheront sur mon problème


    OliFossa

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Ci dessous un exemple (Date en colonne B)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Dim i As Long
    Dim shSource As Worksheet
    Dim shCible As Worksheet
     
    Set shSource = Sheets("sheet2")
    Set shCible = Sheets("sheet3")
     
    'Boucle sur chaque ligne de la feuille source
    For i = 2 To shSource.Range("A" & Rows.Count).End(xlUp).Row
        'Vérifie si la date de début stage + 2 ans inférieur à aujourdhui et pas déja traité (pas en gras)
        If DateAdd("yyyy", 2, CDate(shSource.Range("B" & i).Value)) < Date And shSource.Range("B" & i).Characters.Font.Bold = False Then
            shSource.Rows(i).Copy shCible.Range("A" & shCible.Range("A" & Rows.Count).End(xlUp).Row + 1)
            shSource.Rows(i).Characters.Font.Italic = True
            shSource.Rows(i).Characters.Font.Bold = True
        End If
    Next i

  3. #3
    Membre averti
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut
    Merci pour votre réponse.

    J'ai bien mis le code dans mon module, en adaptant la colonne concernée, mais le deboggeur me surligne en jaune la ligne suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 2 to shSource.Range ("I") & Rows.Count).End (x1up).Row

    (ma colonne date est en J)

    Est-ce du au fait que j'aie une autre macro avant ? Ma première macro est en fait un formulaire qui demande les noms prénoms, etc... de chaque candidat.



    Merci pour votre aide.

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Tu as fermé la parenthèse au mauvais endroit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 2 to shSource.Range ("I") & Rows.Count).End (x1up).Row

  5. #5
    Membre averti
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut
    Voilà, je viens de réessyer, mais le soucis persiste

    Le message d'erreur est le suivant : "Erreur d'exécution 1004 - Erreur définie pas l'application ou par l'objet "


    Dois-je peut-être écrire ce code dans un autre module ?

    Merci

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Peux tu mettre le code que tu as mis (procédure complète)

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 24/02/2015, 09h54
  2. Réponses: 1
    Dernier message: 28/01/2015, 14h39
  3. [XL-2003] Copié des données dans une feuille vers une autre
    Par guillaumepops dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/03/2012, 15h43
  4. ouverture et copie de données vers un autre classeur variable
    Par mustapha.ezzaouia dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/12/2009, 14h24
  5. Réponses: 4
    Dernier message: 07/02/2009, 17h19

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