Annulation fenetre windows

Résolu/Fermé
titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023 - 11 mars 2020 à 12:04
titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023 - 12 mars 2020 à 11:59
Bonjour à tous,
sur mon classeur, j'ai un bouton qui a pour fonction d'ouvrir un fichier dans le répertoire Windows.
lorsque je clique sur annuler, cela m'envoie une erreur
avez vous une solution pour fermer la macro lorsque je clique sur annuler de la fenêtre Windows
je vous remercie d'avance
Titi
A voir également:

4 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
11 mars 2020 à 13:11
Bonjour,

Essaies de mettre un grand miroir face ā ton écran pour qu'on puisse voir à quoi ressemble le code de ta macro. Si tu n'as pas de miroir, postes ici le code de ta macro .

Et quand tu postes du code sur le forum ...
Utilises les balises de code avec indication du langage (=coloration syntaxique)
Explications disponibles ici : Comment utiliser les balises de code
Exemple :
Sub UtiliserLesBalises()
  MsgBox "Merci d'utiliser les balises de code"
End Sub
0
titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023 1
11 mars 2020 à 17:05
Patrice,
j'ai quasi tout reglé dans mon code.
reste a fermer mon fichier de source…
si vous pouvez m'aider
merci
Private Sub Bouton_atelier_fiche_Click()
Dim ret As String
Dim wbk As Workbook
a = Application.GetOpenFilename
 If a = False Then Exit Sub

'Determine plage plateau

ChDir _
"\\Serveur-atelier\societe\TOPSOLID\PROJETS"
'ret = Application.GetOpenFilename("DAT Files (*.dat), *.dat") 'Avec Filtre sur des fichier avec extension DAT
Workbooks.Open Filename:=a
Workbooks.OpenText Filename:=a, DataType:=xlDelimited, Semicolon:=True
Worksheets(1).Range("A3:D100").Select
Selection.Copy
Windows("FICHE SUIVI Atelier Montage.xltm").Activate
Range("A16").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Range("F16").Activate

End Sub

Bonne fin de journée
Titi
0
titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023 1
11 mars 2020 à 13:23
Bonjour Patrice,
désolé de ne pas avoir poser ma question dans la bonne forme:
donc quand je clique sur annuler de la fenêtre Windows, j'ai une erreur.
voici mon code
a vous remerciant d'avance.
cordialement
Titi

Private Sub Bouton_atelier_fiche_Click()

Dim ret As String
'Determine plage plateau
ret = Application.GetOpenFilename
ChDir _
"\\Serveur-atelier\societe\TOPSOLID\PROJETS"

'ret = Application.GetOpenFilename("DAT Files (*.dat), *.dat") 'Avec Filtre sur des fichier avec extension DAT
Workbooks.Open Filename:=ret
If False Then
Workbooks.OpenText Filename:=ret, DataType:=xlDelimited, Semicolon:=True
Worksheets(1).Range("A3:D100").Select
Selection.Copy


Windows("FICHE SUIVI Atelier Montage.xltm").Activate
Range("A16").Select
ActiveSheet.Paste
Range("F16").Activate

End Sub
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié le 11 mars 2020 à 13:52
Re,

Essaies :
Option Explicit
Private Sub Bouton_atelier_fiche_Click()
Dim wbk As Workbook
Dim cel As Range
Dim ret As Variant
  
  ret = Application.GetOpenFilename
  If Not ret = False Then
    'Cellule de destination
    Set cel = Workbooks("FICHE SUIVI Atelier Montage.xltm").Worksheets("Feuil1").Range("A16") 'adapter nom feuille

'Ou si c'est vers classeur qui contient la macro :
'    Set cel = ThisWorkbook.Worksheets("Feuil1").Range("A16") 'adapter nom feuille
    
    'Ouvrir le fichier des données
    Set wbk = Workbooks.Open(Filename:=ret)
    
    'Copier la plage de donnés
    wbk.Worksheets(1).Range("A3:D100").Copy Destination:=cel
    
    'Fermer le fichier ds données
    wbk.Close SaveChanges:=False
  End If
End Sub
0
titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023 1 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
11 mars 2020 à 14:09
Patrice,
alors ton code fonctionne bien quand je clique sur annuler, l'action est annulée
par contre quand je choisis mon fichier a importer, rien ne se passe
je dois peut etre mettre ton code dans mon code?
merci de ton retour
Titi
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié le 11 mars 2020 à 18:09
Re,

Je t'avais pourtant donné un code propre !
C'était facile de trouver la solution :
Private Sub Bouton_atelier_fiche_Click()
Dim wbk As Workbook
Dim cel As Range
Dim a As Variant

  ChDir "\\Serveur-atelier\societe\TOPSOLID\PROJETS"
  a = Application.GetOpenFilename
  If a = False Then Exit Sub
  Set cel = Workbooks("FICHE SUIVI Atelier Montage.xltm").Worksheets("Feuil1").Range("A16") 'adapter nom feuille
  Set wbk = Workbooks.OpenText(Filename:=a, DataType:=xlDelimited, Semicolon:=True)
  wbk.Worksheets(1).Range("A3:D100").Copy Destination:=cel
  wbk.Close SaveChanges:=False
  Application.Goto cel.Offset(0, 5) 'F16

End Sub


Noter que :
- une fenêtre - Windows(...) - n'est pas un classeur - Workbooks(...) !
- il faut éviter l'emploi de Select et plus généralement de travailler sur l'objet actif
- il faut éviter d'utiliser le presse papier (c'est à dire d'utiliser Paste).
- il est plus simple de travailler avec des variables objets (wbk, cel)

0
titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023 1
12 mars 2020 à 08:27
Bonjour Patrice,
Merci pour ton message et tes conseils.
je débute dans le code, autodidacte..
mais ton code ne fonctionne pas, cela me met un message d'erreur sur le set wbk= workbooks.open Text
A te lire
Bonne journée
Titi
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776 > titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023
Modifié le 12 mars 2020 à 09:35
D'ici, j'ai du mal à lire le message d'erreur.

Remplaces
  Set wbk = Workbooks.OpenText(Filename:=a, DataType:=xlDelimited, Semicolon:=True)

Par
  Workbooks.OpenText(Filename:=a, DataType:=xlDelimited, Semicolon:=True)
  Set wbk = ActiveWorbook
0
titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023 1 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
12 mars 2020 à 10:35
Patrice,
mon message d'erreur est le suivant :
et pour la modification que vous m'avez recommandé, la ligne workbooks est en ligne
:)
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
12 mars 2020 à 11:33
Oups, c'est sans les paranthèses
  Workbooks.OpenText Filename:=a, DataType:=xlDelimited, Semicolon:=True
  Set wbk = ActiveWorbook
0
titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023 1
12 mars 2020 à 11:43
La ligne fonctionne,
maintenant c'est la set cell qui beugue
désolé (:
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776 > titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023
Modifié le 12 mars 2020 à 11:52
La feuille de destination s'appelle-t-elle Feuil1 ?
Il faut mettre le bon nom de feuille !
0
titi17-08 Messages postés 122 Date d'inscription mercredi 29 janvier 2020 Statut Membre Dernière intervention 20 janvier 2023 1 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
12 mars 2020 à 11:59
Patrice,
cela fonctionne
merci de votre patience...;)
ci joint le code correctement ecrit
encore merci
Titi
Private Sub Bouton_atelier_fiche_Click()
Dim wbk As Workbook
Dim cel As Range
Dim a As Variant

  ChDir "\\Serveur-atelier\societe\TOPSOLID\PROJETS"
  a = Application.GetOpenFilename
  If a = False Then Exit Sub
  Set cel = Workbooks("FICHE SUIVI Atelier Montage.xltm").Worksheets("feuille suivi atelier").Range("A16") 'adapter nom feuille
 Workbooks.OpenText Filename:=a, DataType:=xlDelimited, Semicolon:=True
  Set wbk = ActiveWorkbook
  wbk.Worksheets(1).Range("A3:D100").Copy Destination:=cel
  wbk.Close SaveChanges:=False
  Application.Goto cel.Offset(0, 5) 'F16

End Sub
0