PROBLEME DE BOUTON

  • Initiateur de la discussion Michel
  • Date de début
M

Michel

Guest
Bonsoir à tous

Je m'adresse à vous car j'ia une petit problème avec deux boutons.

J'ai un bouton " OUVRE FACTURE" avec le code suivant :

Private Sub OUVREFACTURE_Click()
Application.GetOpenFilename
ChDir "C:\Documents and Settings\marcel\Bureau\capa\FACTURE 2004"
End Sub

et le bouton "OUVRE DEVIS" avec le code suivant :

Private Sub OUVREDEVIS_Click()
Application.GetOpenFilename
ChDir "C:\Documents and Settings\marcel\Bureau\capa\DEVIS 2004"
End Sub

Mon problème est que si je clique sur le bouton des factures il m'affiche le dossier des factures, puis si je clique sur le boutons des devis il m'affiche le dossier des factures, mais si je recommence et clique sur bouton des devis il m'ouvre bien le dossier des devis.

Le problème est le même avec le bouton des factures.

Ils semblent se mélanger les pinceaux

Les deux boutons sont sur la même page.

Pouvez-vous me dire s'il manque quelque chose dans mon code ou si le problème est ailleurs, d'où vient-il.

Merci à celui qui pourra me dépanner.

Michel
 
M

myDearFriend

Guest
Bonjour Michel,

Il suffit d'inverser les lignes d'instructions comme suit (pour les 2 procédures) :

Private Sub OUVREDEVIS_Click()
ChDir "C:\Documents and Settings\marcel\Bureau\capa\DEVIS 2004"
Application.GetOpenFilename
End Sub

ChDir défini le chemin courant par défaut,
Application.GetOpenFilename affiche la boite de dialogue 'Ouvrir' en pointant sur ce chemin prédéfini.


Cordialement.
Didier
 
@

@+Thierry

Guest
Bonsoir Robert, Didier, Michel, le Forum

Oui en effet çà n'a rien à voir avec un UserForm et même si ce genre de macro était lancée depuis un UserForm le reload de celui-ci n'y changerait rien.

Comme le dit Didier le ChDir doit être avant l'instruction GetOpenFilename, cependant ce n'est pas "fairplay" de changer le répertoire par défaut de l'utilisateur ceci sans remettre de l'ordre en sortant.

Voici comment faire :
Sub GetOpenOnDirectory()
Dim TheFile As Variant
Dim ThePath As String
Dim UserDir As String
Dim WB As Workbook

ThePath = "C:\Mes Documents\Factures" '<<<< à adapter of course

'ici on mémorise le répertoire par défaut
UserDir = CurDir

'ici on change le répertoire
ChDir ThePath

TheFile = Application.GetOpenFilename("Excel Files(*.xls),*.xls")
If TheFile = False Then ChDir UserDir: Exit Sub '<<< si on annule

'ici c'est pour faire une action bidon
Set WB = Workbooks.Open(TheFile)
With WB.Worksheets(1)
.PageSetup.RightHeader = "MAJ le " & Format(Now, "YYYY-MM-DD") & " par " & Application.UserName
End With

'ici c'est pour remettre le répertoire par défaut tel qu'il était AVANT cette macro
ChDir UserDir
End Sub


Bonne soirée
@+Thierry
 
M

myDearFriend

Guest
J'adhère tout à fait à cette philosophie Thierry.

Tout modification de config effectuée par une appli doit impérativement être rétablie à sa fermeture.

J'ai, pour ma part, l'habitude de procéder à ce type de procédure à l'ouverture (pour mémoriser les paramètres courants) et à la fermeture des documents (pour rétablissement de ce qui a été modifié).

Bonne soirée.
Didier
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry