Finalisation application!

Sébastien

XLDnaute Junior
Bonjour

J ai cree une 'application' avec une interface etc...

et il me reste 3 petits problèmes à regler avant le deploiment (imminent J-3)

1)Mon interface est en plein ecran, l utilisateur ne doit jamais avoir acces à des feuilles excel, sauf cas prevue ou je protege les feuilles par macro, or il est possible de deplacer l usf.
Voici le code que j ai mis à l initialisation de L usf

Dim hWnd As Long, exLong As Long, zFactor As Integer, Style As Long

hWnd = FindWindowA(vbNullString, Me.Caption)
exLong = GetWindowLongA(hWnd, -16)
If exLong And &H880000 Then SetWindowLongA hWnd, -16, exLong And &HFF77FFFF
zFactor = 100 * CInt(Application.Width / Me.Width)
Me.Width = Application.Width
Me.Height = Application.Height
Style = GetWindowLong(hWnd, -16) And Not &HC00000
SetWindowLong hWnd, -16, Style
DrawMenuBar hWnd
On Error Resume Next

Que faut il rajouter pour empecher son deplacement??


2) Je souhaite prevoir des eventuelles Mises à jour de mon programme.
Est il possible de supprimer et ajouter des macros , par macro?( en clair j envoie à l'utilisateur un classeur excel contenant des macros qui lors de leur execution mettent à jour les macros de mon appli)

3)J ai parfois erreur 400 à la fermeture de mon interface( qui ferme automatiquement le classeur egalement).
Quelqu un aurait il une idee d ou cela provient, bien que je n ai pas determinee de conséquence de cette erreur. Question subsidiaire : Est il possible de fermer Excel par macro, à mon avis non, puisque la macro est execute dans excel,mais bon on peut toujours rever...

Pour ceux qui auront eu le courage d'arriver jusqu a cette ligne merci et a+ (en esperant que vous auez des reponses;-) )

Sébastien
 

Jam

XLDnaute Accro
Salut Sébastien,

Pour répondre à tes interrogations voici quelques réponses (rapides ;)):
1. Je sais pas (aïe ça commence mal).
2. Jette un oeil sur la programmation du VB IDE. Il faut que tu rajoutes une référence à ton projet (sauf erreur), et ensuite tu pourras faire tout et n'importe quoi sur ton code: Ajout de procédure, modification de lignes de codes, etc...
3. A ta place je mettrais une gestion des erreurs en place avec écriture d'un journal de log en place (quand une erreur intervient tu écrit dans un bête fichier texte, le nom de la procédure, le n° d'erreur, etc...). Ce n'est pas très compliqué et ça peux servir ;)
4. Bah, pourquoi on pourrait pas ?
Code:
application.Quit

Bon courage pour la suite
 

Sébastien

XLDnaute Junior
Bonjour

Tout d abord merci pour la rapidite de vos reponses!

-Alors j ai reussi a figer l usf avec les liens que vous m avez donner, par contre, en supprimant la croix il reduisait aussi l usf donc je l ai redimenssionner a taton pour qu il occupe tout l ecran...

-Concernant cette partie
Jette un oeil sur la programmation du VB IDE. Il faut que tu rajoutes une référence à ton projet
(sauf erreur), et ensuite tu pourras faire tout et n'importe quoi sur ton code: Ajout de procédure,
modification de lignes de codes, etc...
j ai rien compris... :unsure: peut tu etre plus clair ou me donner plus d indice : je connais meme pas 'VB IDE' ,qu est ce? ou cela se trouve t il ? comment s en sert on?

-Pour ce qui est de quitter Excel, bien entendu ca marche, j ai honte, mais je vais vous dire pq ca ne fonctionnait pas, ca vous fera rire et c est deja ca!je fermais le classeur et apres je quittais excel, evidement , la fermeture du classeur est synonyme de la fin de l execution du code VB.... :) donc ...

Voilà donc si vous avez des idees concernant la modification de macros par macro, n hesitez pas!

A+ et encore merci

Sébastien (J-2 avant déploiement ) B)
 

Jam

XLDnaute Accro
Salut Sébastien, le fil,

Pour pouvoir travailler avec le VBIDE (qui n'est entre autre que l'interface de développement, là où tu écris tes fonctions, sub, etc...) il faut que tu mettes en référence du projet ceci: 'bibliothèque Microsoft Visual Basic For Applications Extensibility x.x' que tu trouveras dans le menu Outils>Références puis dans la liste qui s'affiche.

A partir de ce moment là tu pourras travailler sur ton point 2.
A titre d'exemple ci-après une macro qui permet de supprimer du code dans les différents modules d'un projet:
Code:
'Source: ???
Sub EffaceCodeFeuille(NomFeuille As String)
  With ActiveWorkbook.VBProject.VBComponents _
      (ActiveWorkbook.Sheets(NomFeuille).CodeName).CodeModule
    .DeleteLines 1, .CountOfLines
    .CodePane.Window.Close
  End With
End Sub

Sub EffaceCodeThisWbk()
  With ActiveWorkbook.VBProject.VBComponents('ThisWorkbook').CodeModule
    .DeleteLines 1, .CountOfLines
    .CodePane.Window.Close
  End With
End Sub

Sub EffaceUserForm(MonUserForm As String)
ActiveWorkbook.VBProject.VBComponents.Remove _
    ActiveWorkbook.VBProject.VBComponents(MonUserForm)
End Sub

Sub EffaceModule(MonModule As String)
ActiveWorkbook.VBProject.VBComponents.Remove _
    ActiveWorkbook.VBProject.VBComponents(MonModule)
End Sub
Tu n'as plus qu'à explorer ces possibilités qui sont très importantes.

Bon courage
 

Statistiques des forums

Discussions
312 763
Messages
2 091 857
Membres
105 079
dernier inscrit
Biscot_399