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

C++Builder Discussion :

Pilotage OLE Excel et VBE


Sujet :

C++Builder

  1. #21
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Super tout de même code exemple de code.
    Je vais essayer avec ça.
    Merci pour cette trouvaille

    Pour mon compte, effectivement on ne peut rien faire je sais. Surement devrais je changer d'identité afin d'échapper a mes créanciers.
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  2. #22
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bon, je vais essayer d'être calme et tres objectif .... :

    ya rien qui marche et tout m'emmerde !

    Sinon ... a part ça, tout va bien.
    Je ne dois surement pas m'y prendre de la bonne manière.
    J'essaie de récuperer ' l'objet ' qui représente le VBAProject sous-jacent a mon fichier excel, afin de l'ouvrir et donc de tenter le coup du 'SendKeys' de l'exemple proposé par blondelle.

    Je merdoie.

    Any Idea ?
    Merci d'avance
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #23
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut Sunchaser:
    Alors pour commencer ca fait des heures que cherche et je viens de comprendre comment ca marche.
    Les codes que je t'ai passe ne deverouillent que les classeurs sauvegardes par mot de passe et non pas le code VBE.
    Par contre je me suis rendu compte que tu pouvait executer une macro d'un projet VBE verouille.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  4. #24
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut Sunchaser:
    Je vais te remonter le moral.
    J'ai repris ton post sur VBA car j'ai trouve un code pour proteger/deproteger VBE le seul probleme c'est qu'il faut le faire d'une feuille et on ne peut pas l'executer en pas a pas j'attend donc des renseignements complementaires je te tiend au courant
    A+
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  5. #25
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,

    J'ai essayé d'interpreter le code trouvé par Blondelle, ce qui donnerait qqchose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Variant vCB, vVBE;
    vVBE = vMSExcel.OlePropertyGet("VBE");
     
    vMSExcel.OleFunction("SendKeys","azazel", & "~~");
    //vMSExcel est initialisée en amont
     
    vCB = vVBE.OlePropertyGet("CommandBars").OlePropertyGet("Item", 1);
     
    //attention ... ça va planter ... :
    vCB.OleFunction("FindControl", 2578, true).OleFunction("Execute");
    //et voila ! ça a planté ! lol
    A mon avis, j'ai pas tout bon.

    M'enfin, c'est toujours mieux que rien ...

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  6. #26
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Je n'ai pas encore reussi a deverrouiller VBE par code pure BCB mais je suis arrive a le faire avec une partie en VBE.
    Je le fait d'une maniere car il y en a plusieur si tu prefaire autrement dit le.
    1 - On charge le Document verrouille
    2 - On charge mon Document avec le code VBE de deverrouillage
    3 - On execute la macro VBE de deverrouillage
    4 - On procede aux modifs
    5 - On reverrouille
    6 - On ferme le document avec le code de deverrouillage
    Le code:
    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
    24
    25
     
    Variant vMSExcel, vXLWorkbooks, vXLWorkbook;
    Variant vFileName, vNotUsed;
    vNotUsed = Unassigned;
     
    vMSExcel = Variant::CreateObject("Excel.Application");
    vMSExcel.OlePropertySet("Visible", true);
    // on ouvre le classeur verrouille
    vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\Classeur1.xls";
     
    vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
    vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName, vNotUsed,
    vNotUsed, vNotUsed);
    // on ouvre le classeur avec le code VBE de deverrouillage
    vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\Classeur2.xls";
     
    vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName, vNotUsed,
    vNotUsed, vNotUsed);
     
    vMSExcel.OleProcedure("Run", "TestUnprotect");
     
    // ici on execute les modifs
     
    vMSExcel.OleProcedure("Run", "TestProtect");
     // ici on ferme Classeur2.xls
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  7. #27
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Salut blondelle,

    C'est vrai que je n'ai pas remis les pattes dans ce problème ces derniers temps.
    Nez en moins, j'aimerais moi aussi trouver une solution a ce truc a première vue anodin ...
    Je me demande si on aurait pas plus vite fait de tout code en VBA !
    Heu non .... ...
    (Vade retro satanas/VBA, il m'énerve tellement celui la que j'en j'y pense, je fait une crise d'urticaire)

    Merci de ta persévérance en tout cas
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  8. #28
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    C'est un melange des deux que je te propose regarde mon post precedent il suffit juste dans le code VBE de supprimer a la fin "WB.Save".
    et sa marche super bien.
    Bon je repost tout.
    Le code BCB
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Variant vMSExcel, vXLWorkbooks, vXLWorkbook;
    Variant vFileName, vNotUsed;
    Variant vbProj, ID, recursive, WB;
    vNotUsed = Unassigned;
     
    vMSExcel = Variant::CreateObject("Excel.Application");
    vMSExcel.OlePropertySet("Visible", true);
     
    vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\Classeur1.xls";
     
    vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
    vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName, vNotUsed,
    vNotUsed, vNotUsed);
     
    vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\Classeur2.xls";
     
    vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName, vNotUsed,
    vNotUsed, vNotUsed);
     
    vMSExcel.OleProcedure("Run", "TestUnprotect");
     
    // on selectionne le Classeur1 pour y faire les modifs
    vXLWorkbook = vMSExcel.OlePropertyGet("Workbooks", "Classeur1");
    vXLWorkbook.OleProcedure("Activate");
     
    //
    // ici on fait les modifs dans classeur1
    //
     
    // on selectionne le Classeur2 pour reproteger Classeur1
    vXLWorkbook = vMSExcel.OlePropertyGet("Workbooks", "Classeur2");
    vXLWorkbook.OleProcedure("Activate");
     
    vMSExcel.OleProcedure("Run", "TestProtect");
     
    // on ferme Classeur2
    vMSExcel.OlePropertyGet("ActiveWorkbook").OleFunction("Close");
    Le Code VBE.
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Sub TestProtect()
    ProtectVBProject Workbooks("Classeur1.xls"), "jp"
    End Sub
     
    Sub TestUnprotect()
    UnprotectVBProject Workbooks("Classeur1.xls"), "jp"
    End Sub
     
    Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
      Dim vbProj As Object
     
      Set vbProj = WB.VBProject
     
       If vbProj.Protection <> 1 Then Exit Sub
     
      Set Application.VBE.ActiveVBProject = vbProj
     
       SendKeys Password & "~~"
      Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
    End Sub
     
    Sub ProtectVBProject(WB As Workbook, ByVal Password As String)
      Dim vbProj As Object
     
      Set vbProj = WB.VBProject
     
       If vbProj.Protection = 1 Then Exit Sub
     
      Set Application.VBE.ActiveVBProject = vbProj
     
     
      SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _
    Password & "~"
     
      Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
     
    '  WB.Save
    End Sub
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  9. #29
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    On peut par code BCB deverrouiller un code Visual Basic pour Excel.
    le code:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    Variant vbProj = vXLWorkbook.OlePropertyGet("VBProject");
    vMSExcel.OlePropertyGet("VBE").OlePropertyGet("ActiveVBProject") = vbProj;
    vMSExcel.OlePropertyGet("VBE").OlePropertyGet("MainWindow").OlePropertySet("Visible", true);
    //vMSExcel.OlePropertyGet("VBE").OlePropertyGet("MainWindow").OlePropertySet("Name", "essais.prn");
    vXLWorkbook.OlePropertyGet("VBProject");
    //vMSExcel.OlePropertyGet("VBE").OlePropertyGet("CommandBars", 1).OlePropertyGet("FindControl", 2578, true).OleFunction("Execute");
    HWND h = FindWindow("wndclass_desked_gsk", NULL);
    HWND h1 = FindWindowEx(h, NULL, "MsoCommandBarDock", "MsoDockLeft");
    HWND h2 = FindWindowEx(h, h1, "MsoCommandBarDock", "MsoDockRight");
    HWND h3 = FindWindowEx(h, h2, "MsoCommandBarDock", "MsoDockTop");
    // les deux Handles suivant dependent de h3
    HWND h4 = FindWindowEx(h3, NULL, "MsoCommandBar", "Standard");
    HWND h5 = FindWindowEx(h3, h4, "MsoCommandBar", "Barre de menus");
    // on selectionne la Barre de menus
       SetForegroundWindow(h5);
    // on active le premier element de la Barre de menus pour cela on simule "Alt"
       PostMessage(h5, WM_KEYDOWN, VK_MENU, 0);
       PostMessage(h5, WM_KEYUP, VK_MENU, 0);
    // on simule la fleche vers la droite pour se deplacer dans le menu
       PostMessage(h5, WM_KEYDOWN, VK_RIGHT, 0); // touche enfoncee
       PostMessage(h5, WM_KEYUP, VK_RIGHT, 0); // touche relachee
       PostMessage(h5, WM_KEYDOWN, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYUP, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYDOWN, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYUP, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYDOWN, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYUP, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYDOWN, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYUP, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYDOWN, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYUP, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYDOWN, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYUP, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYDOWN, VK_RIGHT, 0);
       PostMessage(h5, WM_KEYUP, VK_RIGHT, 0);
    // on simule la fleche vers le bas pour derouler le menu selectionne
       PostMessage(h5, WM_KEYDOWN, VK_DOWN, 0); // touche enfoncee
       PostMessage(h5, WM_KEYUP, VK_DOWN, 0); // touche relachee
       PostMessage(h5, WM_KEYDOWN, VK_DOWN, 0);
       PostMessage(h5, WM_KEYUP, VK_DOWN, 0);
       PostMessage(h5, WM_KEYDOWN, VK_DOWN, 0);
       PostMessage(h5, WM_KEYUP, VK_DOWN, 0);
       PostMessage(h5, WM_KEYDOWN, VK_DOWN, 0);
       PostMessage(h5, WM_KEYUP, VK_DOWN, 0);
       PostMessage(h5, WM_KEYDOWN, VK_DOWN, 0);
       PostMessage(h5, WM_KEYUP, VK_DOWN, 0);
    // on simule la touche entree pour afficher la boite de dialogue
     // touche enfoncee
       PostMessage(h5, WM_KEYDOWN, VK_RETURN, 0);
       PostMessage(h5, WM_KEYUP, VK_RETURN, 0); // touche relachee
    // ici la boite de dialogue est ouverte
    // on recupere le Handle de la premiere page de la boite de dialogue
    Sleep(500); // voir ci dessus SendMessage ?
    HWND h66 = FindWindow("#32770", "VBAProject Mot de passe");
    HWND h77 = FindWindowEx(h66, NULL, "Edit", NULL);
    HWND h88 = FindWindowEx(h66, NULL, "Button", "OK");
    // mot de passe
    String MPassWord = "jp";
    // on selectionne le TEdit Mot de passe
       SendMessage(h77, WM_SETTEXT, 0, (LPARAM) MPassWord.c_str());
    //Sleep(500);
    // ici on valide par OK
    // le programme est verrouille
    // on donne le Focus au Boutton "OK"
       SetForegroundWindow(h88);
    // on simule la touche entree
        keybd_event(VK_RETURN,0,0,0);
        keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);
    Sleep(1000);
    HWND h6 = FindWindow("#32770", "VBAProject - Propriétés du projet");
    HWND h7 = FindWindowEx(h6, NULL, "#32770", NULL);
    // on selectionne la Boite de dialogue
       SetForegroundWindow(h7);
    // on simule la combinaison Shift+Tab
        keybd_event(VK_SHIFT,0,0,0);
        keybd_event(VK_TAB,0,0,0);
        keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
        keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
    // on envoye le code clavier pour changer de page
    // fleche vers la droite
        keybd_event(VK_RIGHT,0,0,0);
    // temporisation de stabilisation du changement de page
    Sleep(500); // voir ci dessus SendMessage ?
    // ici on recupere le Handle de la deuxieme page de la boite de dialogue
    // on recupere le Handle des TEdit pour y inscrire le Password
    HWND h8 = FindWindowEx(h6, NULL, "#32770", NULL);
    HWND h9 = FindWindowEx(h8, NULL, "Button", "&Verrouiller le projet pour l'affichage");
    HWND h10 = FindWindowEx(h8,h9, "Edit", NULL);
    HWND h11 = FindWindowEx(h8, h10, "Edit", NULL);
    HWND h12 = FindWindowEx(h6, NULL, "Button", "OK");
    // on donne le Focus au CheckBox
       SetForegroundWindow(h9);
    // on simule l'appui de la barre d'espace pour cocher le CheckBox
        keybd_event(VK_SPACE,0,0,0);
        keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
    // mot de passe
    //String MPassWord = "Mot_Pass";
    // on selectionne le TEdit Mot de passe
       SendMessage(h10, WM_SETTEXT, 0, (LPARAM) MPassWord.c_str());
    // on selectionne le TEdit Confirmer le mot de passe
       SendMessage(h11, WM_SETTEXT, 0, (LPARAM) MPassWord.c_str());
    // ici on valide par OK
    // le programme est verrouille
    // on donne le Focus au Boutton "OK"
       SetForegroundWindow(h12);
    // on simule la touche entree
        keybd_event(VK_RETURN,0,0,0);
        keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);
    Le code n'est pas optimise, il a ete teste sous Window XP Pro Pack1 et Excel 2003
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  10. #30
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut

    Trop fort ...

    Je vais tester cela pour mon 'problème'.
    Merci !

    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  11. #31
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut Sunchaser:
    Quelle version d'Excel utilise tu ?
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  12. #32
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Excel 2003 ...
    Donc ça devrais le faire, non ?
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  13. #33
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Oui bien sur J'aurais aime que quelqu'un le teste avec une autre version d'Excel c'est pour cela que je l'ai laisse tel qu'il a ete ecrit sans chercher a l'optimiser.
    Si tu le souhaite je pourrais tenter d'expliquer comment j'ai fait.
    au passage je remercie Furlaz, lanonime, cgi et Djob pour leurs differents post dans le Forum ce qui fortement aide je tiens a rester modeste.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  14. #34
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Impec !
    C'est ce qu'il me fallait ...




    Merci,
    Bravo blondelle

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  15. #35
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Je suis content pour toi.
    Je vais essayer de faire un topo sur la methode, mais aussi sur l'utilisation de SPY++, quand on sait l'utiliser c'est genial.
    Si tu fait des modifs pour optimiser tiens mois au courant je pense le mettre soit pour la FAQ soit en source les modos decideront.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Pilotage OLE Excel
    Par looping dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 03/12/2007, 19h24
  2. Réponses: 12
    Dernier message: 09/01/2007, 14h28
  3. Message d'attente pendant pilotage Ole Excel
    Par yottatiger dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/09/2005, 09h14
  4. Pilotage ole d'excel sous bcb6 -> AutoFilter
    Par GameOver dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/04/2005, 11h56
  5. Pb avec le pilotage OLE d'Excel
    Par psau dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/01/2005, 17h19

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