Salut j'utilise le contrele common control pour enregistrer un fichier le peobleme et comment on pêut detecter si l'utilistaeur clique sur enregistrer ou il clique su annuler?
Merci
Version imprimable
Salut j'utilise le contrele common control pour enregistrer un fichier le peobleme et comment on pêut detecter si l'utilistaeur clique sur enregistrer ou il clique su annuler?
Merci
s'il a cliqué sur annuler... quel sera selon toi le nom du fichier choisi ?
essaye et sers-toi de celà, par exemple !
en fait il suffit juste d'activer le "cancelerror" du commondialog et tu laisses le gestionnaire d'erreur faire le reste (enfin presque)
Le code suivant poura t'aider.
Code:
1
2
3
4
5
6
7 CommonDialog1.CancelError = True On Error GoTo Cancel 'Blablabla '............ Cancel: MsgBox "Vous devez choisir un fichier", vbCritical, "Erreur"
Hé bé !
Tout simple :
Code:
1
2
3
4
5
6 Private Sub Command1_Click() CommonDialog1.ShowOpen If CommonDialog1.filename = "" Then MsgBox "vous n'avez pas choisi de fichier !" End If End Sub
bjr jmf
je ne suis pas tres d'ac avec ta proposition, car s'il avais initialise son CommonDialog (ce qui m'arrive souvent), alors je croit que ceci CommonDialog1.filename = "" ne sera jamais vrai.
Bonjour sovo !
Que veux-tu dire, qu'on fait appel à commondialog préinitialisé (donc avec fichier déjà indiqué) pour sauvegarder ???
Si on sait déjà où sauvegarder, ma foi, on sauvegarde directement en faisant l'économie d'un commondialog, pardi !:lol:
On ne fait la dépense d'un commondialog que, précisément, pour laisser l'initiative à l'utilisateur... sinon... on économise et on fait directement, sans commondialog...
en fait ce que je fait generalement c koi : "lorsque je veux faire une sauvegarde, je propose un endroit pour le faire a l'utilisateur, mais il a bienevidement la possibilite de le changer". C'est dans cet optique je fait une preinitialisation.
Salut je viens m'inscruster dans votre conversation, je confirm e ce que dit jmfmarques, il faut tester si la valeur renvoyée par la boite de dialogue est vide. Même si le valeur à été initialisée, le fait de cliquer sur annuler fait que la boite de dialogue renvoie "" (chaine vide)
Code:
1
2
3
4
5
6
7
8
9
10
11
12 dlgParcourir.Filter = "Fichiers Excel (*.xls)|*.xls" If Dir(RepFichier(Me.txtFicIn.Text)) <> "" Then dlgParcourir.InitDir = RepFichier(Me.txtFicIn.Text) Else dlgParcourir.InitDir = CurDir() End If dlgParcourir.ShowOpen stmp = dlgParcourir.FileName If Len(Trim(stmp)) > 0 Then txtFicIn.Text = stmp End If
Je viens de regarder dans l'aide de VB :
Citation:
FileName, propriété
...
La lecture de cette propriété renvoie le nom du fichier sélectionné dans la liste. Le chemin d'accès est extrait séparément à l'aide de la propriété Path. La valeur renvoyée est équivalente, d'un point de vue fonctionnel, à la valeur de List(ListIndex). Si aucun fichier n'est sélectionné, la propriété FileName renvoie une chaîne de longueur nulle.
...
La je croit que je vais me plier, car je viens aussi de faire le test et je me rends compte que ca marche effectivement. Je n'avais jamais preter attention.
Merci a vous, preuve que c'est le meilleur des forum car on en apprend tous les jours, meme quant on ne pose pas de question.
Comme sovo je jouais sur la gestion des exceptions pour tester si un fichier est choisi ou pas. Jamais songer à filename.
Personnellement je songeais à StrPtr, j'ai même testé mais la chaîne était envoyée, j'ai laissé tombé ^^
Merci bcp pour tout le monde.
Je vais essayer les 2 solutions.
Merci, vraiment v la solutiond du Savo qui marche mais l'autre solution si on initialise le nom du fichier ca marche pas,
Je suis pour la solution du savo.
Merci a tout le monde