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 :

Problème utilisation PasteSpecial (arguments) [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Par défaut Problème utilisation PasteSpecial (arguments)
    Bonjour,

    Je voudrais réaliser la copie du contenu du cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Parser_HTML()
     
    Dim Myvalue As String
    Dim objData As New DataObject, objRange As Range
     
    Myvalue = Range("M1").Value
    Set objRange = Range("B1").Offset(1, 0)
     
    objData.SetText (Myvalue)
    objData.PutInClipboard
    objRange.PasteSpecial 
     
    End Sub

    Jusque la tout ce passe bien !

    Mais le problème c'est au moment ou je rajoute un argument. Afin que le format en l’occurrence les bordures de la cellule réceptrice ne se modifie pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objRange.PasteSpecial Paste:=xlPasteValues
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objRange.PasteSpecial Paste:=xlPasteAllExceptBorders
    Erreur d'exécution '1004':
    Erreur définie par l'application ou par l'objet

    Pouvez-vous m'aider ?

    Merci d'avance

  2. #2
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Dans ton exemple, tu ne sembles pas avoir besoin de passer par le Presse-Papiers.
    Tu pourrais donc faire simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Myvalue As String
    Dim objRange As Range
     
    Myvalue = Range("M1").Value
     
    Set objRange = Range("B1").Offset(1, 0)
     
    objRange.Value = Myvalue

  3. #3
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Si tu veux utiliser .Paste ou .PasteSpecial, tu dois d'abord utiliser la commande .Copy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim objRange As Range
     
    Range("M1").Copy
     
    Set objRange = Range("B1").Offset(1, 0)
     
    objRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
    ou
     
    objRange.PasteSpecial Paste:=xlPasteAllExceptBorders

  4. #4
    Membre régulier
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Par défaut
    Tout d'abord merci pour ta réponse.

    Cette méthode me permet de garder mes bordures en effet mais mon texte qui est en faite du HTML, est copié tel quel avec les balises.

    As-tu une idée de comment résoudre cela ?

    C'est à dire garder les bordure mais avec le HTML compilé.

  5. #5
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    C'est ce que fait ce code, il me semble : il reproduit une copie exacte de la cellule "M1", sauf les bordures.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim objRange As Range
     
    Range("M1").Copy
     
    Set objRange = Range("B1").Offset(1, 0)
     
    objRange.PasteSpecial Paste:=xlPasteAllExceptBorders

  6. #6
    Membre régulier
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Par défaut
    C'est censé le faire. Mais Il ne me compile pas le code HTML avec cette méthode, ce qui est plutôt étrange.

  7. #7
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Je ne comprends pas très bien.

    Pourrais-tu me donner un exemple du contenu HTLM qui se trouve dans une cellule que tu veux copier et le résultat que tu souhaites obtenir?

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

Discussions similaires

  1. [débutant] problème avec les arguments de fopen
    Par Anouschka dans le forum C++
    Réponses: 13
    Dernier message: 23/02/2006, 14h56
  2. [Tomcat][Spring] Problème utilisation mémoire
    Par Wutintin dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/09/2005, 14h57
  3. [JSTL] [EL] Problème utilisation <c:out>
    Par XavierL dans le forum Taglibs
    Réponses: 7
    Dernier message: 14/08/2005, 20h12
  4. (Problème) Utilisation de l'API mySQL [Delphi 2005 Perso]
    Par will-scs dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/08/2005, 18h26
  5. [JAR]Problème utilisation manifest et jar
    Par doudine dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 07/01/2005, 10h21

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