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 :

VBA - Copier cellules avec formules


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 6
    Points
    6
    Par défaut VBA - Copier cellules avec formules
    Bonjour !
    Voila je risque de souvent etre présent dans les semaines a venir parmis vous !
    En effet je suis en stage pendant 6 semaines et donc votre aide me sera précieuse ^^
    Voici ma demande du jour :
    Ca ne doit pas être bien compliqué lol
    Il s'agit simplement de copier une plage de valeur (cette plage comprend des cellules simples-avec du texte simplement- et d'autres avec des formules propres a une feuille) vers une autre feuille avec bien entendu toutes les informations restées qui font reference a la nouvelle feuille !
    J'espere avoir été clair !

    Un exemple quand meme :
    Dans une feuille1 j'ai cette formule : "=B65+D59" qui fait évidemment référence aux cellules de feuille1
    J'aimerais retrouver cette formule dans la feuille2 sans erreur.
    Le tout en VBA ^^

    Merci d'avance a vous j'espere ne pas trop vous embeter

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour

    tu peux utiliser un e formulation comme celle ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuil1").Range("A1:x100").Copy Worksheets("Feuil2").Range("A1")
    évidemment à modifier suivant ta plage de valeur et le nom de tes feuilles

    bon courage
    Cordialement.

    N'oubliez pas de cliquer sur Résolu quand vous avez obtenu la réponse à votre question.
    Citation
    Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres » - Anonyme
    Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Ca revient a ce que j'ai déja .
    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Bouton55_QuandClic()
     
    'Création d'une nouvelle feuille
    Sheets.Add(after:=Sheets(Sheets.Count)).Name = "Nouvelle"
    'Selection puis copier/coller de la plage de cellules
    Worksheets("Projection").Select
    Worksheets("Projection").Range("A65:E" & Cells(Rows.Count, "A").End(xlUp).Row).Copy _
    Worksheets("Nouvelle").Range("A1")
     
    End Sub
    Et evidemment dans ma feuille "Nouvelle" j'ai des cases du style #REF #N/A
    Ce qui semble tout a fait logique avec un simple copier coller ^^

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    J'ai mis a jour mon code j'ai déja une amélioration.
    J'ai une recopie des données mais pas des formules avec ce code suivant mais c'est déja bien ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Bouton66_QuandClic()
     
    'Création d'une nouvelle feuille
    Sheets.Add(after:=Sheets(Sheets.Count)).Name = "Nouvelle"
    'Selection puis copier/coller de la plage de cellules
    Worksheets("Projection").Select
    Worksheets("Projection").Range("A65:E" & Cells(Rows.Count, "A").End(xlUp).Row).Copy
     
    Sheets("Nouvelle").Select
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
            xlNone, SkipBlanks:=False, Transpose:=False
     
    End Sub

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Bon j'ai une autre demande mais je ne veux pas faire 300 topics pour surcharger le forum et les demandes des autres !
    Voici une image qui me permettra de vous expliquer :



    Comme vous pouvez le voir j'ai une liste déroulante au dessus de ma plage de cellules qui contient chaque jour du mois.
    Les valeurs de la plage changent évidemment en fonction du jour.
    Je voudrais donc que tous les jours se copient automatiquement dans ma feuille "Nouvelle" ca me ferait donc 30 ou 31 plages de valeurs dans ma nouvelle feuille les unes au dessus des autres.
    J'espere que c'est pas trop tordu et que quelqu'un va pouvoir m'aider

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Ca revient a ce que j'ai déja .
    Voici mon code
    ça aurai sympa de le dire que tu avais déja du code !

    Le problème des formules est que quand tu fais une copie d'une formule d'une cellule A50 qui contient =A48+A47 en cellule A20 elle contiendra =A18+A19

    Tant que les formules restent dans la plage que tu copie normalement tu n'as pas de problème mais si tu as des formules du style =SOMME(Feuil2!A50:A73) il faut mettre des $ comme ça =SOMME(Feuil2!$A$50:$A$73)



    a+
    Cordialement.

    N'oubliez pas de cliquer sur Résolu quand vous avez obtenu la réponse à votre question.
    Citation
    Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres » - Anonyme
    Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Oui désolé
    Merci pour ces précisions.
    Pour ma question en haut je pense que je vais tenter de faire une boucle en ajoutant simplement +1 a ma liste déroulante.
    Bon apres il faut que jarrive a placer mes plages les unes apres les autres dans ma nouvelle feuille ^^

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    si c'est bien une listbox que tu as sur ta feuille je ferais quelque chose dans le genre.

    en double cliquant sur le listbox en mode création tu pourra rentrer le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub ListBox1_Click()
    Dim c As Range
     
    For Each c In Range("A65:A" & Cells(Rows.Count, "A").End(xlUp).Row)
      If c.Value = ListBox1.Value Then
        Range(c.Row & ":" & c.Row).Copy Sheets("Nouvelle").Range("A" & Cells(Rows.Count, "A").End(xlUp).Row)
      End If
    Next
    End Sub
    A modifier avec tes valeurs à toi évidement
    Cordialement.

    N'oubliez pas de cliquer sur Résolu quand vous avez obtenu la réponse à votre question.
    Citation
    Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres » - Anonyme
    Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer

  9. #9
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Ce ne serait pas plus simple de faire comme suit :

    -On se place dans la cellule B64(la ou 05/06/2008 est inscrit)
    -On copie colle la plage de cellule dans la nouvelle feuille
    -On se replace dans la cellule B64 a laquelle on ajoute 1 afin d'avoir le jour d'apres
    -On re-copie/colle
    Etc ...
    Donc évidemment tout ca dans une boucle, on continue jusqu'a avoir "--" qui correspond a la fin du mois

  10. #10
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Voila ce que j'ai fait mais ma structure doit etre tres mauvaise

    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
    17
    18
     
    Sub Bouton66_QuandClic()
    Sheets.Add(after:=Sheets(Sheets.Count)).Name = "Nouvelle"
    Do
    Range("B64") = Range("B64") + 1
     
    Worksheets("Projection").Select
    Worksheets("Projection").Range("A65:E" & Cells(Rows.Count, "A").End(xlUp).Row).Copy
    Sheets("Nouvelle").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
     
     
     
    Loop Until Range("B64") = "--" 
     
    End Sub

Discussions similaires

  1. Trier cellules en ignorant les cellules avec formule
    Par Neptune64 dans le forum Conception
    Réponses: 2
    Dernier message: 20/10/2009, 21h04
  2. Pb pour copier cellules avec fonctions
    Par chisutufu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/09/2009, 11h40
  3. VBA -Copier cellules Excel vers outlook
    Par Rdesfx dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/11/2008, 16h29
  4. copier ligne avec formule et creer feuille/ligne
    Par yanchs dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/02/2008, 18h42
  5. copier ligne avec formule et creer une feuille par ligne
    Par yanchs dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/01/2008, 18h04

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