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 :

Modification du code pour ne pas afficher les formules [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Modification du code pour ne pas afficher les formules
    Bonjour,

    Je peux copier mes colonnes dans l'ordre que je veux, mais je quand ma colonne a une formule je n'arrive pas à simplement copier la valeur.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub copy()
        Sheets("Feuil1").Columns("A:B").copy Sheets("Copy").Columns(1)
        Sheets("Feuil1").Columns("E:E").copy Sheets("Copy").Columns(3)
        Sheets("Feuil1").Columns("F:F").copy Sheets("Copy").Columns(4)
    End Sub
    Je ne sais pas comment modifier mon code pour que ça copie uniquement les valeurs !

    Merci de votre aide,
    Cordialement.
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu peux utiliser le Copier/Collage Special-Valeur en VBA ou tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Sheets("Copy").Columns("A:B").Value = Sheets("Feuil1").Columns("A:B").Value
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci de ta réponse, oui en effet c'est beaucoup plus simple comme ça !
    Le coller avec valeur je connaissais , mais je suis avec des fichiers volumineux donc j'ai tenté d'automatiser un peu, et je ne connais pas vraiment VBA.

    Je voulais savoir si c'était possible de faire la même chose mais copier les données non pas sur une autre feuille mais sur un autre classeur?

    Je te remercie par avance.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je voulais savoir si c'était possible de faire la même chose mais copier les données non pas sur une autre feuille mais sur un autre classeur?
    Si les deux classeurs sont ouvert, pas de problèmes. Dans le cas contraire, il faut procéder autrement
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je ne sais pas comment indiquer dans mon code qu'il ne s'agit plus de feuilles mais de classeurs.
    J'ai mis mes deux fichiers, j'aimerai bien copier les colonnes de mon Fichier Data dans mon fichier Fcopy.

    Merci par avance !
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne sais pas comment indiquer dans mon code qu'il ne s'agit plus de feuilles mais de classeurs.
    J'ai mis mes deux fichiers, j'aimerai bien copier les colonnes de mon Fichier Data dans mon fichier Fcopy.
    Il n'y a aucune raison de mettre des fichiers en téléchargement.
    D'abord, il est préférable de travailler avec des variables objets, c'est bien plus simple à gérer et à maintenir par la suite.
    Ainsi si nous copions des données d'une feuille vers une autre du même classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test()
     Dim shtSource As Worksheet, shtTarget As Worksheet
     With ThisWorkbook
      Set shtSource = .Worksheets("db")
      Set shtTarget = .Worksheets("Export")
     End With
     shtTarget.Range("A:B").Value = shtSource.Range("A:B").Value
    End Sub
    Voici maintenant la même chose mais avec des feuilles sur deux classeurs distincts qui doivent attention être tous les deux ouverts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
     Dim shtSource As Worksheet, shtTarget As Worksheet
     Set shtSource = ThisWorkbook.Worksheets("db")
     Set shtTarget = Workbooks("Recap.xlsx").Worksheets("Export")
     shtTarget.Range("A:B").Value = shtSource.Range("A:B").Value
    End Sub
    Comme tu peux le constater, la ligne de copie est identique dans les deux cas. Thisworkbook représente le classeur où se trouve le code VBA
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Whou merci pour ce code !
    Désolé de t’embêter encore mais quand j'active ma macro, les données de mon fichier disparaissent mais elles ne se copient pas dans mon autre classeur.
    Je ne sais pas ce que j'ai loupé..

    Merci de ta patience

    Cordialement.
    Fichiers attachés Fichiers attachés

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Encore une fois pas de raison de placer des classeurs à télécharger. Affiche ton code, c'est largement suffisant.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Voilà !

    Merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub copy()
     Dim shtSource As Worksheet, shtTarget As Worksheet
     Set shtSource = ThisWorkbook.Worksheets("Copy")
     Set shtTarget = Workbooks("Test1-Data.xlsx").Worksheets("Data")
     shtTarget.Range("A:B").Value = shtSource.Range("A:B").Value
     shtTarget.Range("C:C").Value = shtSource.Range("C:C").Value
    End Sub

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Et bien je trouve bizarre que cela ne fonctionne pas car évidemment avant de publier une procédure je teste toujours sinon, je le signale
    Tu n'as aucun message d'erreur ?
    Petite remarque, au lieu de copier la colonne A:B et ensuite la C tu peux bien entendu écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    shtTarget.Range("A:C").Value = shtSource.Range("A:C").Value
    Je te conseille d'utiliser le débogage les touches (F8, F9, etc.)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Re,

    Non je n'ai aucun message d'erreur, je ne comprends vraiment pas d'où ça vient !

  12. #12
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Non je n'ai aucun message d'erreur, je ne comprends vraiment pas d'où ça vient !
    D'après moi et j'en suis même convaincu, tu t'es trompé de Source et de Cible. Tu as donc copié des colonnes vides vers celles qui étaient remplies
    Donc si je reprends ton code (sans avoir testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub copy()
     Dim shtSource As Worksheet, shtTarget As Worksheet
     Set shtTarget = ThisWorkbook.Worksheets("Copy")
     Set shtSource = Workbooks("Test1-Data.xlsx").Worksheets("Data")
     shtTarget.Range("A:B").Value = shtSource.Range("A:B").Value
     shtTarget.Range("C:C").Value = shtSource.Range("C:C").Value
    End Sub
    Moi, j'ai mis le code dans le classeur source et toi tu as mis le code dans le classeur cible
    C'est là que tu vas voir l'intérêt supplémentaire de travailler avec des variables objets. Maintenance aisée
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Re,

    Merci beaucoup, ça m'avance énormément !
    Oui tu avais raison, je me suis trompé de fichier source et de fichier cible.
    C'est bon tout marche comme il faut maintenant, j'ai juste une question, quand je lance ma macro je trouves ( comme j'ai beaucoup de colonnes) que ça met relativement longtemps, Je voulais savoir si ça pouvait venir de mon pc ou si c'était simplement normal ?

    Cordialement.

  14. #14
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Difficile à dire si c'est le PC ou le programme.
    Pour ma part, je ne copie pas de colonne entière mais des plages de cellules et normalement c'est instantané (voir ma remarque à ce sujet).
    S'il y a des formules dans la plage copiée, il peut avoir une lenteur due au recalcul ou à l'affichage pendant la copie. Il y a des instruction pour annihiler ces actions pendant la copie.
    Revois déjà la partie que tu copies (Une plage entière plutôt que colonne par colonne).
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci pour toutes tes réponses!
    Tu m'as beaucoup avancé

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

Discussions similaires

  1. [AC-2002] Code pour pour ne pas afficher la valeur 0
    Par Gonteur dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/12/2010, 19h04
  2. Filtrer les mots pour ne pas afficher adsense
    Par yule dans le forum Langage
    Réponses: 2
    Dernier message: 28/10/2010, 10h31
  3. Réponses: 11
    Dernier message: 09/12/2004, 15h03
  4. [JTable] Comment ne pas afficher les titres ?
    Par FabienBxl dans le forum Composants
    Réponses: 3
    Dernier message: 08/10/2003, 15h01

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