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 :

Copier Coller dans Excel par VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2018
    Messages : 19
    Par défaut Copier Coller dans Excel par VBA
    Bonjour

    J'ai un code à rallonge dans Excel que j'essaye de simplifier au maximum.
    A un endroit je veux faire un copié-collé-valeurs mais ca me prend 5 lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Columns("A:O").Select
        Application.CutCopyMode = False
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    J'essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("a:o").Copy.PasteSpecial Paste:=xlPasteValues
    Mais ca bugue et fait une erreur 404 "objet requis"

    Plus loin je veux remplacer un libellé [Calcul Cadrages.xlsm] par rien dans des cellules :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Rows("1:28").Select
        Selection.Replace What:="[Calcul Cadrages.xlsm]", _
            Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:= _
            False, SearchFormat:=False, ReplaceFormat:=False
    Mais ca me prend 4 lignes

    Pouvez-vous me dire comment écrire ces 2 demandes en 1 ou 2 lignes maxi ?

    Merci beaucoup
    Didier

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    recherche et remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:G40").Replace What:="toto", Replacement:="titi", LookAt:=xlPart
    copier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:A6").Copy Destination:=Range("B5")

  3. #3
    Membre averti
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2018
    Messages : 19
    Par défaut Copier Coller dans Excel par VBA
    Bonjour Benasr

    Pour remplace ca marche, et ca doit aller +vite

    par contre pour copie-colle j'ai fait l'essai sur une petite zone et ca garde les formules , or je ne voudrais mettre que les valeurs

    Merci à toi

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Toujours le même axiome
    Excel avant VBA
    .

    Regarde d'abord si cela peut s'effectuer autrement que par un collage "normal"

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test()
    Range("A1:A6").Copy
    Range("B5").PasteSpecial Paste:=xlPasteValues
    End Sub

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Si je peux me permettre.
    2 remarques.
    1 - Attacher les objets range peut être utile à une meilleur lisibilité
    (Si même objet "parent" alors méthode With)
    2 - Il serait opportun d'annuler le mode copie après son utilisation

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    La méthode Copy ne peut pas avoir de membre.
    Donc, si tu veux faire un PasteSpecial, ça prendra forcément au moins deux lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Columns("A:O").Copy
    Columns("A:O").PasteSpecial Paste:=xlPasteValues
    Mais si ce que tu veux faire c'est transformer en valeurs toutes les formules de la feuille, il serait plus souple d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.UsedRange.Copy
    Range("A1").PasteSpecial Paste:=xlPasteValues

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

Discussions similaires

  1. Exporter Contenue ME23N dans Excel par VBA
    Par stdonat dans le forum SAP
    Réponses: 4
    Dernier message: 17/01/2014, 12h34
  2. [Débutant] [VB.NET][VS2008]Copier/Coller dans Excel depuis VB.Net
    Par magicbisous-nours dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/04/2013, 15h18
  3. Pb copier coller dans excel 2010
    Par alfalf dans le forum Excel
    Réponses: 2
    Dernier message: 25/03/2013, 12h51
  4. [Toutes versions] Importation Planning Project dans Excel par VBA
    Par Sebung dans le forum Project
    Réponses: 2
    Dernier message: 05/03/2012, 15h30
  5. [VB.NET] Copier-Coller dans Excel
    Par Anthos59 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/01/2011, 09h29

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