Rechercher : dans
Par :

Qui sera capable de trouver cette formule?

Dernière réponse le 19 jun 2009 à 13:58:21 0ceane, le 19 jun 2009 à 11:03:27 
 Signaler ce message aux modérateurs

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

1

Mike-31, le 19 jun 2009 à 12:56:34

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)

Répondre à Mike-31

2

0ceane, le 19 jun 2009 à 13:06:12

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 =)

Répondre à 0ceane

3

Mike-31, le 19 jun 2009 à 13:10:58

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é  (Einstei­n)

Répondre à Mike-31

4

0ceane, le 19 jun 2009 à 13:18:21

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

Répondre à 0ceane

5

Mike-31, le 19 jun 2009 à 13:39:18

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é  (Einstei­n)

Répondre à Mike-31

6

0ceane, le 19 jun 2009 à 13:41:39

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

Répondre à 0ceane

7

Mike-31, le 19 jun 2009 à 13:49:03

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)

Répondre à Mike-31

8

0ceane, le 19 jun 2009 à 13:52:41

Ha oui, mais pourtant elle me demande toujours un "End Sub2 a la fin de ma premiere macro de base :s

Répondre à 0ceane

9

 0ceane, le 19 jun 2009 à 13:58:21

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

Répondre à 0ceane