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 :

Apporter une modification [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut Apporter une modification
    Bonjour a toutes et tous, Forum bonjour

    Ce petit code au 01 de chaque mois recopie quelques lignes (17 à 26 ) sur la colonne suivante par la droite les valeurs de la colonne précédente ou du mois précédent.

    Petit soucis le code recopie bien la valeur MAIS ca m'éfface la formule de la cellule de destination.

    Pas trouver comment modifier ce code pour que cela n'efface plus mes formules, si quelqu'un veux bien modifier et si c'est possible bien sur.

    Merci de votre aide et de votre temps.

    Cordialement Ray


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
          If Month(Date) > 1 Then
            .Cells(17, Month(Date) + 4).Resize(3, 1).Value = .Cells(17, Month(Date) + 3).Resize(3, 1).Value
            .Cells(18, Month(Date) + 4).Resize(3, 1).Value = .Cells(18, Month(Date) + 3).Resize(3, 1).Value
            .Cells(19, Month(Date) + 4).Resize(3, 1).Value = .Cells(19, Month(Date) + 3).Resize(3, 1).Value
            .Cells(20, Month(Date) + 4).Resize(3, 1).Value = .Cells(20, Month(Date) + 3).Resize(3, 1).Value
            .Cells(21, Month(Date) + 4).Resize(3, 1).Value = .Cells(21, Month(Date) + 3).Resize(3, 1).Value
            .Cells(22, Month(Date) + 4).Resize(3, 1).Value = .Cells(22, Month(Date) + 3).Resize(3, 1).Value
            .Cells(23, Month(Date) + 4).Resize(3, 1).Value = .Cells(23, Month(Date) + 3).Resize(3, 1).Value
            .Cells(24, Month(Date) + 4).Resize(3, 1).Value = .Cells(24, Month(Date) + 3).Resize(3, 1).Value
            .Cells(25, Month(Date) + 4).Resize(3, 1).Value = .Cells(25, Month(Date) + 3).Resize(3, 1).Value
            .Cells(26, Month(Date) + 4).Resize(3, 1).Value = .Cells(26, Month(Date) + 3).Resize(3, 1).Value
          End If

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Feuil1
        With .Cells(17, Month(Date) + 3).Resize(10, 1)
            If Month(Date) > 1 Then .Copy .Offset(0, 1)
        End With
    End With

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut mercatog

    Merci pour ta rapide réponse

    j'ai essayer ton code mais ca ne marche pas

    cela engendre une erreur ( #VALEUR! )

    je regarde si je peux trouver, bonne après midi

    Cdlt Ray
    '---------------

    Re salut

    Peut etre plus facile de modifier le code ci dessous qui fait la mème chose

    j'ai essayer d'adapter ton code a celui ci dessous mais pas réussi.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If Month(Date) > 1 Then
       For I = 17 To 26
           .Cells(I, Month(Date) + 4).Resize(3, 1).Value = .Cells(I, Month(Date) + 3).Resize(3, 1).Value
     
       Next I
    End If

  4. #4
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut a tous

    Bon après de multiples essais bah bof pas réussi a faire fonctionner

    bonne soirée a tous

    Cdlt Ray

  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
    As-tu un fichier exemple? (la solution est peut être facile)

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par eliot.raymond Voir le message
    Bonjour a toutes et tous, Forum bonjour
    Petit soucis le code recopie bien la valeur MAIS ca m'éfface la formule de la cellule de destination.
    Cordialement Ray
    C'est le comportement normal d'Excel. Tu ne peux pas avoir dans la même cellule une donnée unique et une formule.

  7. #7
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Bonjour a tous, bonjour forum

    Salut mercatog

    je regarde pour poster mon fichier, merci pour ton aide

    Vu l'heure bon app et bonne après midi

    Cdlt Ray

    Citation Envoyé par clementmarcotte Voir le message
    C'est le comportement normal d'Excel. Tu ne peux pas avoir dans la même cellule une donnée unique et une formule.

    Salut clement marcotte


    merci pour ta réponse

    suis pas sur de comprendre, dit m'en plus svp, bonne après midi

    Cdlt Ray

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour eliot

    pas sur de comprendre ?????!!!!!

    tu a une cellule de destination dans la quelle se trouve une formule
    forcement en lui injectant une simple valeur calculée par une macro la formule est remplacée par la valeur

    c'est évident en fin pour moi

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut a tous

    je joins mon fichier peux etre ca sera plus facile

    j'ai mis quelques commentaires

    merci de l'aide apporter, bonne fin d'après midi

    Cdlt Ray

    http://www.cjoint.com/?3JdqoDulibX

  10. #10
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Feuil1
        With .Cells(17, Month(Date) + 3).Resize(10, 1)
            If Month(Date) > 1 Then .Copy .Offset(0, 1)
        End With
        .Calculate
    End With

  11. #11
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut Mercatog

    Merci bien pour la modification du code

    ca fonctionne presque bien SAUF pour les lignes 18 et 19

    peut etre a cause des formules qui sont dedans ?????

    De mème que je n'arrive pas a effacer la zone des données que je viens de copier avec le code ci-dessous trouver sur le site qui doit effacer les valeurs sans supprimer les formules.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .SpecialCells(xlCellTypeConstants, 3).ClearContents

    bonne fin d'après midi

    Cdlt Ray

    Citation Envoyé par patricktoulon Voir le message
    Bonjour eliot

    pas sur de comprendre ?????!!!!!

    tu a une cellule de destination dans la quelle se trouve une formule
    forcement en lui injectant une simple valeur calculée par une macro la formule est remplacée par la valeur

    c'est évident en fin pour moi

    au plaisir
    Salut Patrick

    Merci pour ton info

    Mais pour moi ca a l'air de marcher

    avec le code de l'ami Mercatog

    Mais je n'ai sans doute pas tout compris

    Cdlt Ray

    Bonjour a tous, Forum bonjour,

    Salut Mercatog

    Merci bien pour la modification du code, ca fonctionne presque bien SAUF pour les lignes 18 et 19 ????

    Peut etre a cause des formules qui sont dedans ?????

    j'ai fait d'autres essais mais je ne comprends pas pourquoi, ca ne marche pas pour les lignes 18 et 19
    ---------
    De mème que je n'arrive pas a effacer la zone des données que je viens de copier avec le code ci-dessous trouver sur le site qui doit effacer les valeurs sans supprimer les formules.


    Code :Sélectionner tout - Visualiser dans une fenêtre à part12
    .SpecialCells(xlCellTypeConstants, 3).ClearContents

    Merci pour l'aide apporter, Bon W-end

    Cdlt Ray

  12. #12
    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
    Que veut dire que ça ne fonctionne pas pour les lignes 18 et 19?

    N'as tu pas toute la plage copiée?

    J'ai testé ce code sur ton fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    With Feuil1
        With .Cells(17, Month(Date) + 3).Resize(10, 1)
            If Month(Date) > 1 Then
                .Copy .Offset(0, 1)
                .SpecialCells(xlCellTypeConstants).ClearContents
            End If
        End With
        .Calculate
    End With
    Regarde le contenu des formules et des valeurs copiées

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    si ta formule prend en compte la cellule de destination, tu n'as plus de problème.
    il te suffis d'insérer un colonne à la fin de ton tableau pour décaler ta formule qui tien toujours compte d'elle même comme point de fin:
    Code Formule Excel : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(E2:DECALER(Q2;0;-1))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
    Worksheets("Compte").Columns(Month(Date) + 4).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    End Sub

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/06/2007, 19h15
  2. Recalculer une feuille Excel après une modif de style
    Par ThierryAIM dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/03/2007, 20h55
  3. Annuler les modifications apportées à une table.
    Par PadawanDuDelphi dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/10/2006, 09h26
  4. [PDE] Problème pour sauvegarder une modif dans un éditeur
    Par simsky dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 11/08/2005, 15h05
  5. Enregistrer une modification dans un formulaire
    Par micheline dans le forum Access
    Réponses: 5
    Dernier message: 26/06/2005, 19h13

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