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 :

Cast - Utilisation de CType


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Par défaut Cast - Utilisation de CType
    Bonjour,

    Niveau débutant sur ce langage...

    Dans le cadre du développement d'une macro Excel, j'utilise un framework propriétaire pour lequel j'ai besoin de caster des objets.

    J'ai repris des exemples vb.net officiels du framework que j'arrive à transposer et adapter sans soucis SAUF pour les appels CType()... je crois comprendre que ce n'est pas une fonction native du VBA.

    J'ai essayé d'ajouter une référence à mscorlib.dll (en pensant que celle-ci contiendrait la définition de CType()) mais sans succès (message d'erreur quant à l'impossibilité d'ajouter la référence). Ai-je un moyen de caster (simple de préférence) des objets d'un type non-standard vars un type non-standard?

    Pour information, j'ai également essayé d'utiliser TryCast et DirectCast, sans succès.

    Merci pour votre aide!

    M&C

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Je pense que ta ou tes question(s) sont trop vague(s) pour pouvoir vraiment répondre.

    Pour les conversions des types en VBA, c'est dans VBA.Conversion sinon.
    ex.: VBA.CInt()

    Mais je suppose que ce n'est pas ce que tu cherche ?

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    VBA n'est pas franchement un langage objet(il n'y a même pas d'héritage), même si on peut faire des objets. Je ne connais pas de moyen direct de faire un cast purement dynamique entre 2 classes différentes. Par contre, il y a moyen de tricher, mais c'est au cas par cas(et généralement compliqué, c'est souvent du donnée par donnée). Pour voir si c'est possible, il nous faut beaucoup plus de détails.

  4. #4
    Membre confirmé
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Par défaut
    Bonjour et merci pour vos réponses.

    Voici un bout du code que j'utilise (pour information il s'agit du SDK BusinessObjects XI 3.x) :
    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
    19
    20
    21
    22
    23
     
    Dim mySchedulingInfo As SchedulingInfo
    mySchedulingInfo = myreport.SchedulingInfo 
    mySchedulingInfo.RightNow = True 
    mySchedulingInfo.Type = CeScheduleType.ceScheduleTypeOnce 
     
    Dim rfo As ReportFormatOptions = myreport.ReportFormatOptions 
    rfo.Format = CeReportFormat.ceFormatPDF 
    rfo.PDFFormat.ExportAllPages = True 
     
    query = "SELECT SI_DEST_SCHEDULEOPTIONS, SI_PROGID FROM CI_SYSTEMOBJECTS " & _ 
                "WHERE SI_PARENTID=29 AND SI_NAME='CrystalEnterprise.DiskUnmanaged'" 
     
    Dim destinationInfoObjects As InfoObjects = myInfoStore.Query(query) 
    myInfoObject = destinationInfoObjects(1) 
     
    Dim destinationPlugIn As DestinationPlugin
    Set destinationPlugIn = CType(myInfoObject, DestinationPlugin) 
    Dim diskUnmanaged As DiskUnmanaged
    Set diskUnmanaged = CType(destinationPlugIn, DiskUnmanaged) 
    Dim destinationOptions As DestinationOptions
    Set destinationOptions = diskUnmanaged.ScheduleOptions 
    Dim diskUnmanagedOptions As New DiskUnmanagedOptions(destinationOptions)
    En dehors du fait que j'ai également un problème avec l'utilisation du "New", ce sont les CType() ici qui me posent problème.

    Le SDk met à disposition une fonction de cast pour certains objets (la fonction PluginInterface) mais ce n'est pas le cas pour les objets ci-dessus.

    M&C

Discussions similaires

  1. Utilisation de Ctype avec un type variable
    Par Tommy57 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/07/2013, 09h41
  2. Utilisation de ctypes pour extraire une valeur/un tableau
    Par XeO3n dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 04/07/2012, 00h33
  3. Réponses: 2
    Dernier message: 16/07/2007, 15h34
  4. Utilisation de cast sans pipelined
    Par rabddoul dans le forum Oracle
    Réponses: 15
    Dernier message: 27/10/2005, 16h20
  5. Utilisation de cast dans de l'héritage
    Par dreamanoir dans le forum C++
    Réponses: 4
    Dernier message: 21/02/2005, 21h01

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