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 :

[VB] Interactions VB6->VBA-E


Sujet :

Macros et VBA Excel

  1. #21
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Alors, on y va !
    Ta 1ère question (ici on traite une question à la fois, pas 2) était :
    Donc à votre avis, intégrer dans un projet VBA-E des forms customisés à partir de templates contenues dans un projet VB6, c'est possible ou je rêve éveillé ?
    Ma réponse est :
    Oui, tout est possible !
    Il n'y a qu'à voir comment Microsoft s'est débrouillé pour savoir que l'on peut le faire !
    Savoir que c'est possible est une chose !
    Savoir comment le faire en est une autre....
    Alors : montre ton début de code pour y parvenir (il va probablement falloir que tu t'intéresses de très près aux APIs si tu ne veux pas que ce truc là rame à en mourir)... et dis-nous à quel endroit précis de cette syntaxe tu coinces.

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 76
    Par défaut
    Ben pour ce qui est de l'ajout d'une feuille à partir d'un template. Il me semble qu'on pourrait faire un truc du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim NewForm as Template1
    Userforms.Add(NewForm)
    Où Template1 est ma feuille modèle.

    Autre interrogation : mon programme VB6 écrit des modules de classe. Comment les inclure dans l'appli VBA ?

  3. #23
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 76
    Par défaut
    Je repose la question car j'en aurai vraiment besoin.

    Admettons que j'ai un module d'écrit dans un fichier .txt ou même directement un fichier .cls, comment l'ajouter à mon appli VBA au lancement ? Ces modules devront donc également être supprimés du projet à la fermeture du programme...

    Merci.

  4. #24
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 76
    Par défaut
    Up

  5. #25
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 76
    Par défaut
    Allez j'ai fini par trouver alors je poste la solution au cas où ça peut servir à d'autres cinglés.

    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
    Dim i As Integer
    Dim nf As Integer
    Dim modnum As Integer
    Dim codeline As String
    For i = 1 To Application.VBE.ActiveVBProject.VBComponents.Count
        If Application.VBE.ActiveVBProject.VBComponents(i).Name = "mod1" Then
            modnum = i
        End If
    Next i
        Application.VBE.ActiveVBProject.VBComponents(modnum).CodeModule.DeleteLines 1, Application.VBE.ActiveVBProject.VBComponents(modnum).CodeModule.CountOfLines
        nf = FreeFile
        Open ThisWorkbook.Path & "\test.txt" For Input As #nf
            Do While Not EOF(nf)
                Input #nf, codeline
                Application.VBE.ActiveVBProject.VBComponents(modnum).CodeModule.InsertLines Application.VBE.ActiveVBProject.VBComponents(modnum).CodeModule.CountOfLines + 1, codeline
            Loop
        Close nf
    Le code contenu dans le fichier "test.txt" est chargé dans le module "mod1" au lancement du programme

  6. #26
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 76
    Par défaut
    Plus simple :

    A l'init

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        'Création d'un nouveau module de classe
        Application.VBE.ActiveVBProject.VBComponents.Add vbext_ct_ClassModule
        'On renomme le nouveau module
        Application.VBE.ActiveVBProject.VBComponents("Classe1").Name = "test"
        'On importe le code contenu dans test.cls dans le module nouvellement créé
        Application.VBE.ActiveVBProject.VBComponents("test").CodeModule.AddFromFile ThisWorkbook.Path & "\test.cls"
    Sur le BeforeClose du Workbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Dim modnum As Integer
        'Recherche si le module existe
        For i = 1 To Application.VBE.ActiveVBProject.VBComponents.Count
            If Application.VBE.ActiveVBProject.VBComponents(i).Name = "test" Then
                'Suppression du module            
                Application.VBE.ActiveVBProject.VBComponents.Remove Application.VBE.ActiveVBProject.VBComponents("Incompatibilites")
                Exit Sub
            End If
        Next i
    End Sub
    Sinon je me sens bien seul sur ce topic

Discussions similaires

  1. [OL-2010] Interaction Outlook/Sharepoint VBA
    Par Antoine B dans le forum VBA Outlook
    Réponses: 3
    Dernier message: 31/03/2013, 20h13
  2. vb6 ou vba - lenteur execution macro sur excel 2007
    Par Enigme dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/03/2010, 13h50
  3. Comment différencier VB6 de VBA
    Par SfJ5Rpw8 dans le forum Vos contributions VB6
    Réponses: 1
    Dernier message: 29/11/2007, 20h43
  4. Convertir Du Vb6 En Vba
    Par thunderpat dans le forum Général VBA
    Réponses: 3
    Dernier message: 29/03/2007, 12h29
  5. Conversion Vb6 Vers Vba
    Par thunderpat dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 29/03/2007, 11h49

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