Qui sera capable de trouver cette formule?

0ceane -  
 0ceane -
Bonjour,

Grace a une macro, j'ouvre 7 dossiers TXT dans de nouvelles pages Excel afin de toutes les copier dans un autre dossier Excel (celui qui contient la macro).

Mon probleme est le suivant : lorsque je veux refermer ces 7 fenetres Excel qui ne me servent plus a rien (vu que je les ai a present copier dans ma feuille principale), VBA m'indique qu'elle ne peut retrouver ces dossiers.
J'ai mis du temps a comprendre! A present, ce que je pense c'est que la macro ne les reconnait pas car ces fenetres ne sont enregistrees nulle part.

Il me faudrait donc une formule comme : fermer toutes les fenetres ouvertes par la macro et les fermer, sans enregistrer; ou encore: fermer toutes les fenetres excel sauf celle appellee XXX.

Quelqu'un peut il m'aider, je bloque depuis des jours?!
Configuration: Windows 2003 Internet Explorer 7.0

9 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Mets ce code dans un module et associes le à un bouton de la barre formulaire

    Sub Ferme_Fichiers_Sauf_Classeur1()
    Dim Wb
    For Each Wb In Workbooks
    If Wb.Name <> "Classeur1.xls" Then Wb.Close SaveChanges:=False
    Next
    End Sub

    Ou directement dans les propriétés d'un CommandButton1 de la barre contrôle

    Private Sub CommandButton1_Click()
    Dim Wb
    For Each Wb In Workbooks
    If Wb.Name <> "Classeur1.xls" Then Wb.Close SaveChanges:=False
    Next
    End Sub

    A+
    Mike-31

    Un problème sans solution est un problème mal posé  (Einstein)
    0
  2. 0ceane
     
    Merci beaucoup de te pencher sur mon cas ^^ .
    Quand tu mets, dans le premier code :
    Sub Ferme_Fichiers_Sauf_Classeur1()

    Il faut que je mette quelque part le nom du dossier? A la place de classeur 1 ou dans les parenthese, avec guillemets?

    Et est ce que l'affectation a un bouton est necessaire? Car en fait je voudrais rajouter ce morceau dans une macro deja existante et qui possede deja un bouton.

    Merci =)
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Tu remplaces simplement le nom du fichier qui dans l'exemple est Classeur1.xls par le nom du fichier que tu souhaites garder à l'écran.

    Pour tester le code, tu peux l'associer à un bouton, et si le code te convient il n'y a aucun problème de l'intégrer dans ton code, tu mets la variable Dim Wb au début de ton code et le reste en bonne place en fonction de ce que tu cherches faire

    A+
    Mike-31

    Un problème sans solution est un problème mal posé  (Einstein)
    0
  4. 0ceane
     
    Re,

    A priori ca va marcher (merci beaucoup!!!), le seul truc c'est qu'il me dit "End Sub Excpected" alors au'il y a bien un End Sub a la fin. Et quand je click sur Ok il me met en fond bleu le Dim du debut :s
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Regardes ton code si tu n'as pas deux End Sub ou du teste hors du code

    A+
    Mike-31

    Un problème sans solution est un problème mal posé  (Einstein)
    0
  7. 0ceane
     
    J'ai cherche un peu, en fait je voudrais placer ce morceau a la fin d'une autre macro, sauf que cette premier macro me reclamait un "End Sub", lorsque je l'ecrit, elle tire un trait n dessous et separe le code que tu m'a donne, et donc lorsque je lance ma macro, ce morceau de code ne s'active pas.

    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

    Dim Wb
    End Sub
    _____________________________________________________________________________
    Sub Close_Workbooks_Except_Outil_de_control-Clean()
    Dim Wb
    For Each Wb In Workbooks
    If Wb.Name <> "Outil de control-Clean" Then Wb.Close SaveChanges:=False
    Next

    End Sub

    De plus, elle n'accepete pas le "-" du morceau en gras, comment y remedier?

    Merci d'avance ca m'aide beaucoup
    0
  8. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Cette variable, doit être placé au début de la première macro ou juste au dessous du nom de la macro

    et les ligne ci-dessous avant End Sub

    For Each Wb In Workbooks
    If Wb.Name <> "Outil de control-Clean" Then Wb.Close SaveChanges:=False
    Next

    Ce qui est en gras fait parti du langage EXCEL, change l'intitulé et essayes de raccourcir

    A+
    Mike-31

    Un problème sans solution est un problème mal posé  (Einstein)
    0
  9. 0ceane
     
    Ha oui, mais pourtant elle me demande toujours un "End Sub2 a la fin de ma premiere macro de base :s
    0
  10. 0ceane
     
    Ha en fait c'est bon j'ai trouve ca marche! Merci merci, t'as pas idee de l'importance de ce dossier pour moi et grace a toi je l'ai enfin acheve! Heuresement qu'il y a des gens doues comme toi, pour aider les debutants =).
    Merci
    0