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 fonction SetTex avec Excel 2013


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 12
    Par défaut Problème fonction SetTex avec Excel 2013
    Bonjour,

    Voilà j'ai un petit problème qui est survenu depuis que j'ai changé Excel 2010 par Excel 2013.

    Au départ je voulais une fonction qui permettait de copier le nom d'un fichier (String) dans le presse-papier. pour cela j'ai écrit le code suivant :

    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
    Private Sub BuildARCmde_Filename(aLaSociété As String, aDate As Date, aRef As String, aLesOT As String)
    Dim LeFichier As String
    Dim TheData As New DataObject
     
     
        LeFichier = Format(aDate, "yyyy.mm.dd - ")
        LeFichier = LeFichier & "ARCmde de " & aLaSociété & " (" & aRef & ") - "
        LeFichier = LeFichier & BuildReducedListFromExtendedList(aLesOT, ", ", "OT-0000") & ".pdf"
        TheData.SetText (LeFichier)
        TheData.PutInClipboard
        MsgBox ("L'Accusé de Réception de la commande a été référencé dans tous les OT sélectionnés." & vbCrLf & _
                "Vous pouvez maintenant placer un scan de cette facture dans le répertoire approprié." & vbCrLf & _
                "Le nom du fichier vous est proposé par défaut ci dessous et a déjà été copié dans le Presse Papier." & vbCrLf & _
                "Vous pouvez le coller en renommant le scan." & vbCrLf & _
                LeFichier)
     
    End Sub
    Sous excel 2010 pas de problème je récupère bien mon nom de fichier dans le presse papier.
    Maintenant que je suis passé sous Excel 2013, je ne comprends pas pourquoi sur la fonction SetText je ne récupère aucune valeur dans mon objet TheData.
    Pourtant dans l'aide excel 2013, la fonction n'a pas changé par rapport à 2010.

    Si quelqu'un a déjà eu ce problème je suis preneur car je sèche.

    Merci d'avance pour votre aide,

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Je ne comprends pas . Ce que tu as mis dans le presse-papiers se récupère par
    1 si une seule donnée dans le presse-papiers.

    Et ta ligne :
    n'est par ailleurs utile que si tu utilises un coller (paste)

    EDIT vérifie quand même que la référence à Microsoft forms 2.0 object library est bien cochée.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Pas de soucis en 2013, en désactivant bien entendu la ligne qui contient l'appel à BuildReducedListFromExtendedList qui t'est personnelle. Peut-être est-ce cette fonction qui pose problème?

    Dans tous les cas, pour ce genre de problèmes, pas 36 solutions. Place un point d'arrêt au début de ton code, puis avance en pas-à-pas en examinant tes variables dans la fenêtre des variables locales.




    Citation Envoyé par unparia Voir le message
    [...]
    EDIT vérifie quand même que la référence à Microsoft forms 2.0 object library est bien cochée.
    Inutile. Si la référence n'était pas cochée, le code ne compilerait pas.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    J'aimerais de toutes manières que le demandeur nous précise où, comment et à quel moment il a vérifié ce qu'il expose ici :
    je ne récupère aucune valeur dans mon objet TheData
    Toute vérification de l'espèce n'ayant en effet d' "assise" que si faite immédiatement après le settext. Faite au-delà, rien ne prouve qu'une dation de focus n'a pas été assortie d'un vidage délibéré.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 12
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    J'utilise la méthode SetText car pour utiliser la fonction PutInClipboard, celle-ci a besoin d'un dataobject.

    Ma chaine de caractères LeFichier est bien construite mais lorsque je veux la copier dans TheDATA par la méthode SetText.

    Ci-dessous une capture d'écran des valeurs espionnées.
    Nom : Sans titre.gif
Affichages : 318
Taille : 130,9 Ko


    Peut-être qu'il y a une fonction plus simple pour copier ma string dans le presse-papier ?

    Cordialement,

Discussions similaires

  1. [MySQL] problème fonction php avec LAST_INSERT_ID()
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/12/2006, 09h51
  2. fonction explode avec excel
    Par wehtam dans le forum VBScript
    Réponses: 2
    Dernier message: 18/10/2006, 20h55
  3. Problème fonction random avec linux
    Par fabetvince dans le forum C
    Réponses: 12
    Dernier message: 25/05/2006, 23h45
  4. Problème de déploiment avec Excel et Delphi
    Par wbagg2 dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 18/01/2006, 22h59

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