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 :

Automatiser une mise a jour


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    jeanlucmartin
    Inscrit en
    Avril 2009
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : jeanlucmartin

    Informations forums :
    Inscription : Avril 2009
    Messages : 101
    Par défaut Automatiser une mise a jour
    Bonjour le forum
    Chaque feuille de mon fichier est nommé avec cette formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Name = "PDG" & "_" & [année]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Name = "P1" & "_" & [année]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Name = "P2" & "_" & [année]
    etc etc

    année étant le nom d'une cellule dans PDG qui correspond à une date .
    donc des que je change cette date je dois ouvrir chaque feuille pour que la mise a jour des noms des onglets se fasse.
    Question
    il y a t il moyen d'automatiser dés que je change la valeur de cellule [année]
    merci de d'aide
    amicalement

  2. #2
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,
    oui tu peux utiliser les évènement d'une feuille ou d'un classeur au changement de la cellule voulu (avec utilisation Intersect en plus) :
    Les liens :
    Les évènements dans la feuille de calcul Excel
    Les évènements du module objet ThisWorkbook, dans Excel


    tu utliseras surtout change dans ton cas :
    II-E. Worksheet_Change

    après selon les paramètre tu pourrais le faire sur le classeur en une seule fois
    II-20. Workbook_SheetChange

    Donc au changement de la cellule voulu, vérification si le nom de la feuille différent de "PDG" & "_" & [année] par exemple
    si c'est le cas changé le nom
    la réponse au si devrait être true ou false

    Edit : qq petits ajouts + petite modif
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  3. #3
    Membre confirmé
    Homme Profil pro
    jeanlucmartin
    Inscrit en
    Avril 2009
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : jeanlucmartin

    Informations forums :
    Inscription : Avril 2009
    Messages : 101
    Par défaut suite
    merci beaucoup pour la réaction rapide
    Mais je dois rectifier mon niveau qui est vraiment un débutant en vba, et je dois t'avouer que je n'ai pas tout compris dans ta solution.
    si tu peux m'aiguiller davantage je t'en serai reconnaissant
    merci

  4. #4
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    juste avec les liens données un test rapide :
    Intersect ici sert juste à cibler le changement de la cellule incriminé moi j'ai choisi A1 renommé "année" (pour Intersect si les autres cellules de la feuille sont modifiés la macro ne s'applique pas)

    ici j'ai fait au plus simple j'ai choisi l'événement de la feuille donc le code est à mettre dans la feuille concerné; l'évènement choisi est (au changement de la feuille) :
    Private Sub Worksheet_Change(ByVal Target As Range)

    ce qui donne avec un test de réponse par MsgBox (change l'année de la cellule, une différente, puis remet la même)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
            MsgBox ActiveSheet.Name = "PDG" & "_" & [année]
        End If
    End Sub
    Edit : donc au final on aura :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
            If ActiveSheet.Name <> "PDG" & "_" & [année] Then
                ActiveSheet.Name = "PDG" & "_" & [année]
            End If
        End If
    End Sub
    Voilà je suis allé au plus simple.
    PS : Pense à utiliser l'aide avec en te positionnant sur la partie du code voulu puis faire F1
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  5. #5
    Membre confirmé
    Homme Profil pro
    jeanlucmartin
    Inscrit en
    Avril 2009
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : jeanlucmartin

    Informations forums :
    Inscription : Avril 2009
    Messages : 101
    Par défaut
    re
    j'ai donc mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
            If ActiveSheet.Name <> "PDG" & "_" & [année] Then
                ActiveSheet.Name = "PDG" & "_" & [année]
            End If
        End If
    End Sub
    dans le code de ma page PDG
    mais il se passe rien ou alors j'ai rien pigé
    merci

  6. #6
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    sans plus d'explication difficile de dire pourquoi
    voilà un fichier exemple, année est en A1 - modifie A1 manuellement
    Test.xls
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

Discussions similaires

  1. Recuperer un logiciel complet A partir d'une mise a jour
    Par salimooo dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 29/03/2006, 09h28
  2. TADOTable VS TADOQuery pour une mise a jour
    Par okparanoid dans le forum Bases de données
    Réponses: 7
    Dernier message: 07/11/2005, 11h53
  3. [sqlserver][debutant] organiser une mise a jour
    Par cladsam dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/10/2005, 12h21
  4. Requete SQL permettent une mise a jour dans la base
    Par themagaly dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/06/2004, 09h32

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