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 :

Ecraser des formules excel


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Ecraser des formules excel
    Bonjour à tous,

    Je souhaite écraser le résultat d'une formule excel à partir d'une macro.

    La complexité c'est que je veux que chaque mois qu'il y'est un déplacement de la colonne à écraser (mois octobre colonne F, mois novembre colonne G.....).

    Si possible lier la colonne au numéro du mois octobre 10, novembre 11...

    Merci pour votre collaboration

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 355
    Points
    34 355
    Par défaut
    bonjour,
    tu peux nous dire ce que tu veux dire par "écraser" stp ?
    un mois la formule serait "=SUM(A10:A25)" puis le mois d'après "=SUM(B10:B25)" ? il me semble que si c'est cela, c'est déjà automatiquement géré par excel...

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    nan en fait j'ai un tableau à plusieur colonne, chaque mois une des colonnes se rafraichie à partir de formule excel (données provenant du web). Le problème c'est que chaque mois les données rapatriées ne s'affichent plus étant donné que ces les données du mois suivant qui sont rapatriés.

    Pour garder un historique il faudrait que j'écrase les liens excel par les valeurs.

    merci beaucoup pour votre aide.

    j'espère avoir été clair.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 355
    Points
    34 355
    Par défaut
    d'accord, il faudrait alors faire un bout de code qui copie et colle les valeurs des cellules avant de les écraser c'est bien cela ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    En fait voilà le code pour écraser des formules...

    Je souhaite que le mois prochain se soit la colonne AG puis la colonne AH etc....chaque mois. Je sais pas indéxé en VB.


    Merci.

    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
    Sub Ecraser_Formules()
    '
    ' Ecraser_Formules Macro
    ' Macro enregistrée le 12/11/2007 par DAOUDI Jaoued
    '
     
    '
        Range("AF1:AF38").Select
        ActiveWindow.SmallScroll Down:=-30
        Selection.Copy
        Range("AF1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        Range("AF2").Select
    End Sub

  6. #6
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour

    une proposition un peu tordue mais qui doit fonctionner.
    Cette macro devrait vérifier à l'ouverture du classeur s'il y a une formule dans la première cellule de la colonne "correspondant" aux données du mois précédent (en supposant que les données de la colonne AF sont celles du mois d'octobre 2007 et que tu utilises un calendrier depuis 1900).
    Si c'est le cas, copier, collage spécial - valeur.


    A mettre dans le module ThisWorkbook et à tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub Workbook_Open()
    With Sheets("Feuil1")
      maColonne = DateDiff("m", 38412, Now)
      If .Cells(1, maColonne).HasFormula Then
        With Range(.Cells(1, maColonne), .Cells(38, maColonne))
          .Copy
          .PasteSpecial Paste:=xlPasteValues
        End With
      End If
    End With
    Application.CutCopyMode = False
     
    End Sub
    cordialement

  7. #7
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Ci-dessous, un code qui te permet de faire un copier-CollageSpecial valeur de la première colonne contenant des formules dans un tableau qui démarre en A1... si ca peut t'aider.

    Comme je n'ai pas compris pourquoi tu parlais un coup de G, H,... et un coup de AG, AH, ... j'ai fait l'impasse sur la modulation par mois.
    Si tu es un peu plus clair sur cet énoncé, on pourra peut-être mieux faire.

    vàlà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub FigerColonne()
        With Range("A1").CurrentRegion.SpecialCells(xlCellTypeFormulas).Range("A1").EntireColumn
            .Copy
            .PasteSpecial xlPasteValues
        End With
        Application.CutCopyMode = False
    End Sub

  8. #8
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci à tous ça marche !!!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/10/2010, 20h56
  2. [Excel] Chercher un nom de cellule dans des formules
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2006, 18h43
  3. inséré des formule excel dans VB
    Par amel95140 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/12/2005, 18h21
  4. [EXCEL][VBA] Utilisation des formules Excel en VBA
    Par Amanck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 16h08
  5. [VBA]écrire des formules en Access comme en Excel ?
    Par beegees dans le forum Access
    Réponses: 2
    Dernier message: 14/12/2005, 02h23

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