fermer une feuille à partir d'un classeur différent

A

albert

Guest
Bonjour à tous,

Sur le fichier joint "ESSAI.xls", j'exécute la macro 1. Le code va chercher le fichier blabla.txt et l'importe dans la feuille "cours".


A partir de ce moment je peux travailler dans "ESSAI.xls" et me débarrasser de la feuille excel "blabla", qui s'est ouverte derrière le fichier "ESSAI"

… Est-il possible décrire un code dans la macro 1 pour fermer automatiquement "blabla" excel ???

merci d'avance
 

Pièces jointes

  • fermer-Auto.zip
    16.7 KB · Affichages: 32
A

albert

Guest
merci pour cette réponse rapide, mais je met la ligne à quel endroit du code, je l'ai collée avant End Sub et la macro "essai" s'est fermée pour me laisser en face de la feuille "blabla"...

c'est l'opération inverse que je cherche

(binouze drinker : bière blonde ou brune ??)
 
@

@Christophe@

Guest
Bonsoir albert

Voila ce que tu ajoute dans ton module avant End sub:

Workbooks("classeur1.xls").Close savechanges:=False

Bien sur tu remplace classeur1.xls par le nom de ton classeur, du moins celui que tu dois fermer. Dans la formule que t'a recu, activeworkbook.close savechanges:=false tu ferme le workbook active, celui que tu dois garder est naturelement actif a ce moment puisque tu y a fait des changement.

Voila

@+

Christophe
 
A

albert

Guest
je viens d'essayer à nouveau, ça ne marche plus.... sais pas ce qui s'est passé...

(vu ta réaction tu as dû trouver mon code bizarre

MON CODE :Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 07/07/2000 par CyberPAPY
'
' Touche de raccourci du clavier: Ctrl+i
'
'----------Changer ici si le nom ne convient pas-------------------------------------------
f = "ESSAI.xls" '---------- nom du fichier Excel
C = "cours" '----------------------nom de la feuille ou l'on stocke les données


Windows(f).Activate '
Sheets(C).Select
B = Cells(2, 10)
Columns("B:B").Select
DateFormat = "jj/mm/aa"
'--------------------------------------Importation des cours de la période
Workbooks.OpenText Filename:="D:\ANALYSE\blabla.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array( _
3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1))

Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy


'--------------------------------ouverture de la conversion
Windows(f).Activate
Sheets(C).Select
Range("a30000").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'-------------------------------tri chronologique
Range("a2.G32000").Select
Selection.Sort Key1:=Range("b2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Sheets("blabla.txt").Select
ActiveWorkbook.Close savechanges:=False

End Sub
 
@

@+Thierry

Guest
Bonsoir tout le monde

En fait je n'ai pas tout lu, mais si le problème est de fermer un autre classeur que celui qui contient la macro...

Un petit tour dans l'aide à aprtir du mot clef "WorkBooks" peut retourner cet exemple "ready for use" :

For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then
w.Close savechanges:=True
End If
Next w

Comme çà tu n'auras pas à t'embéter plus Daniel... Mais il faut bien comprendre que cette boucle ferme et sauve TOUS les classeurs ouverts sauf celui d'où est lancé le code.

La Soluce de @Xtof@ convient aussi très bien si tu connais le nom du fichier...

Bonne Soirée à tout le Monde
@+Thierry
 
A

albert

Guest
merci Thierry,

en fait je ne sais pas me servir de l'aide...

il me semble qu'il faut bien maîtriser la programmation pour naviguer à l'aise

en tous cas, le forum est irremplaçable pour débuter...

bonne soirée à tous
 
@

@+Thierry

Guest
Bonsoir

dernier post avant dodo !!

Non Albert !

tu enregistres ta macro...........tu reviens dans VBE (Visual Basic Editor) tu regardes ton code ainsi enregistré............

TU CHOISIS UN MOT ... en cliquant dessus avec le mulot !! (lol)

et TU PRESSES LA TOUCHE F1 !!!

c'est tout !! tu auras l'aide précise qui correspond au mot !!! dans 75% des cas tu auras en haut de cette fenêtre d'aide un hyperlien "Exemple" ..... Tu cliques dessus.........

Fais le par exemple avec le mot "WorkBooks" (tu peux le taper dans un module) ..... et tu Presse cette fameuse touche F1..... tu verras que je n'ai rien écrit au dessus...

Bon c'est 100 Euro l'astuce, sinon le post s'autodétruira dans 5 secondes !!! et le forum avec (lol voir ce Ce lien n'existe plus pour comprendre !! )

Bon j'avais dit dodo !!

Beaux Rêves en VBA colorés à tous le monde
@+Thierry
 
A

albert

Guest
merci Thierry,
dans les astuces je connaissais " pas à pas détaillé" dans débogage

... 100 euros l'astuce ... avant c'était 100 balles faut pas chercher pourquoi il y a inflation rampante...

j'ai cliqué sur le lien... yad'lumour sur le forum

...sympa l'équipe des "passionnés"

il faudra que Veriland nous explique comment il fait pour mettre des icônes animés
 

Discussions similaires

Statistiques des forums

Discussions
314 020
Messages
2 104 663
Membres
109 097
dernier inscrit
Guismow30