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?!
A voir également:

9 réponses

Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
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
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
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
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
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
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
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
0ceane
 
Ha oui, mais pourtant elle me demande toujours un "End Sub2 a la fin de ma premiere macro de base :s
0
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