Nom de fichier

Bonjour a tous,

Dans le code suivant, peut-on ecrire sans mettre le nom de fichier, car avec ce nom, si j'ouvre un fichier qui porte un autre nom, ca m'indique evidemment un erreur quand ce code est rencontré. Le but est que j''aimerais eventuellement ajouté la date et l'heure a mon application a sa fermeture. Si par exemple mon application s'appelle "LOGICIEL 60 4 MAI 13:30" le code qui suit donnera un erreur a la prochaine utilisation de mon application excel.

Merci.

Windows("LOGICIEL 60.xls:1").Activate 'fenetre principale

Bonsoir

Dans tous les cas en utilisant ThisWorkbook.Name tu auras le nom du fichier contenant la macro qui est en train d'être exécutée

Sinon

ThisWorkbook.Activate

devrait faire l'affaire

Salut Banzai!

Je ne suis pas certain de comprendre. Tu suggere d'utiliser ThisWorkbook.name pour connaitre le fichier qui est ouvert.?

Et si j'utilise ThisWorkbook.Activate, j'y ajoute quoi pour pointer la fenetre 1

ThisWorkbook.Activate

Bonsoir

On efface tout on recommence

Fournis un fichier dans lequel tu indiques ce que tu as et ce que tu veux

Si c'est le classeur que tu ouvres à partir de ton classeur principal, à son ouverture il devient ActiveWorkbook, donc pas besoin de l'activer

En attente de ton fichier

Oui, j'ai quelques classeurs que j'ouvre a partir de mon classeur principal, afin d'y ajouter quelques feuilles. Le classeur principale est apele a changer de nom, suite a l'ajout de la date et l'heure lors de sa fermeture. Pour le moment, a cause de ma syntaxe VBA, le classeur principale doit absolument s'apelé LOGICIEL 60, si non j'ai des erreurs lorsque je manipule mes fenetres: le type de code qui me cause probleme est: Windows("LOGICIEL 60.xls:1").Activate, si je veux activer la fenetre 1, et Windows("LOGICIEL 60.xls:2").Activate si je veux la fenetre 2. J'ai le meme genre de code pour fermer ces fenetres. Alors bien sur si le VBA s'apercoit que le nom de fichier est different, il y a un erreur.

J'aimerais bien t'envoyer une copie de mon application, car tu y a mis pas mal de code dans le passé. Par contre il a 7 meg et meme compressé c'est trop. Je pourrais toujours retrancher plusieurs feuilles, mais il y aura des fonctionnalité qui ne marcheront pas. As-tu une idee de comment procédé?

Bonjour

A quoi correspond "LOGICIEL 60.xls:1" ?

le :1 correspond à une duplication du fichier en vue d'afficher 2 (ou plusieurs) feuilles ?

Si c'est le fichier qui est ouvert (fichier principal) tu peux utiliser ThisWorkBook

Si c'est un fichier que tu ouvres à partir de ton fichier principal

Worbooks.Open filename:=".............LOGICIEL 60.xls"
Set Wb = ActiveWorkbook

Ensuite tu peux utiliser Wb pour faire référence à ce classeur

Sans grande conviction : Envoie une seule feuille vide avec la macro qui te pose problème, sur la feuille notes tout ce qui me permettra de comprendre un peu le souci

Lorsque j'ai une feuille a l'ecran et que j'en ajoute une 2ieme (instruction ActiveWindow.NewWindow, alors la premiere s'apelle "1" et la 2ieme "2". Dans le code que tu vois, je place la premiere a gauche et la 2ieme a droite. Mais si le nom est différent de Logiciel 60, il y une erreur dans les instructions du type: Windows("LOGICIEL 60.xls:1").Activate. Y a t-il une facon d'écrire en ne mettant pas de nom dans ce type d'instruction?

Pour ce qui est des fichiers que j'ouvre a partir de mon fichier principal, mon application supporte sans problemes n'importe quel nom.

 ActiveWindow.NewWindow
    Sheets("RAM").Select 'associe la feuille "RAM" a la nouvelle fenetre
    MacroQte2  'mise a jour des colonnes de quantitees (module 4)
    ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlVertical
    Rows("1:1").RowHeight = 65
    Rows("2:2").Select
    ActiveWindow.FreezePanes = True
    Cells(2, 2).Select
    'Range("J2").Select
    ActiveWindow.DisplayWorkbookTabs = False
    ActiveWindow.DisplayHeadings = False
    ActiveWindow.DisplayVerticalScrollBar = True
    ActiveWindow.DisplayHorizontalScrollBar = True
    With ActiveWindow 'fenetre "RAM" a droite
        .Top = -20
        .Left = 800
        .Width = 460
        .Height = 800
    End With
        ActiveWindow.zoom = 100

    Windows("LOGICIEL 60.xls:1").Activate 'fenetre gauche
    ActiveWindow.DisplayWorkbookTabs = False
    With ActiveWindow
        .Top = -20
        .Left = 0
        .Width = 800
        .Height = 800
    End With
    Windows("LOGICIEL 60.xls:2").Activate

Je vais essayer de t'envoyer un fichier tres reduit. Peux-tu m'indiquer comme on fait pour reduire la taille memoire d'une feuille, je ne me rapelle plus.

Je vais essayer de t'envoyer un fichier tres reduit. Peux-tu m'indiquer comme on fait pour reduire la taille memoire d'une feuille, je ne me rapelle plus.

Bonjour

Avec le bout de macro que tu as envoyé

A tester

Sub test()
  ActiveWindow.NewWindow
  Sheets("RAM").Select       'associe la feuille "RAM" a la nouvelle fenetre
  'MacroQte2       'mise a jour des colonnes de quantitees (module 4)
  ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlVertical
  Rows("1:1").RowHeight = 65
  Rows("2:2").Select
  ActiveWindow.FreezePanes = True
  Cells(2, 2).Select
  'Range("J2").Select
  ActiveWindow.DisplayWorkbookTabs = False
  ActiveWindow.DisplayHeadings = False
  ActiveWindow.DisplayVerticalScrollBar = True
  ActiveWindow.DisplayHorizontalScrollBar = True
  With ActiveWindow       'fenetre "RAM" a droite
    .Top = -20
    .Left = 800
    .Width = 460
    .Height = 800
  End With
  ActiveWindow.Zoom = 100
Windows(ThisWorkbook.Name & ":1").Activate
 ' Windows("LOGICIEL 60.xls:1").Activate       'fenetre gauche
  ActiveWindow.DisplayWorkbookTabs = False
  With ActiveWindow
    .Top = -20
    .Left = 0
    .Width = 800
    .Height = 800
  End With
  Windows(ThisWorkbook.Name & ":2").Activate
  'Windows("LOGICIEL 60.xls:2").Activate
End Sub

parfait! je peux maintenant avoir n'importe quel nom de fichier.

S'il n'est pas trop tard pour toi, sais-tu comment je pourrais ajouter la date et l'heure a mon nom de fichier?

Bonjour

CAPUCIN a écrit :

comment je pourrais ajouter la date et l'heure a mon nom de fichier?

Quand tu l'enregistres

J'ai un userForm qui s'occupe de l'enregistrement. Y a t-il du VBA qu'on peut ajouter a cette ligne pour y inserer la date et l'heure? Autrement dit, quelque chose comme fichier=ListBox1 &date&heure ...

 If TextBox1.Value = "" Then fichier = ListBox1 Else fichier = TextBox1 & ".ass"

Bonjour

A vérifier

Dim LaDate As String
  LaDate = Format(Now, "dd_mm_yyyy_hh_mm_ss")
  If TextBox1.Value = "" Then fichier = ListBox1 & LaDate Else fichier = TextBox1 & LaDate & ".ass"

ca marche tres bien. Est-ce qu'il est permis de changer le format, par exemple comme ceci: 24/02/16 23:18

Bonjour

Pourquoi n'as tu pas fait le test ?

je viens de realiser que c'etait permis.

Par contre je m'apercois que ":" est interdit et j'aurais voulu le mettre entre les heures et minutes. J'ai essaye egalement de mettre "h" mais c'est vu comme des heures.J'ai essayé de mettre un ":" ou un "h" entre guillemet mais c'est illégal. As-tu une sugestion?

Pour le moment le résultat est: essai-22 02 2016 08 46.ass

LaDate = Format(Now, "/dd mm yyyy hh mm")

Bonjour

Suis un peu étonné que le / soit autorisé

A tester

LaDate = Format(Now, "/dd mm yyyy hh""h""mm")

Sa fonctionne. De mon cote je venais de trouver la meme chose mais avec un back slash a la place de tes guillemets suivi du "h". Pour le "/' je dois te dire qu'il le convertissait en "-".

J'ai essaye de mettre un ":" a la place de ton h mais windows ne l'accepte pas. Pourtant j'ai vu que c'etait possible (publication sur notre forum). Mais tant pis, le h fait tres bien mon affaire!

LaDate = Format(Now, "/dd mm yyyy hh"":""mm")
 LaDate = Format(Now, "/dd mm yyyy hh:mm")

On est maintenant capable de sauvegarder avec la date et l'heure mes fichiers ouvert dans mon application principale! Par contre lorsque je voudrai sauvegarder ulterieurement, il faudrait que j'efface la date et l'heure avant sinon une autre date et heure va se greffer au bout de la premiere. Quel serait la syntaxe pour extraire tout les 16 dernier caracteres (date et heure) de mon nom de fichier, si je le selectionne a partir de mon listBox1, donc enlever les 16 dernier caractere de listbox1.

ListBox1= ListBox1 - les 16 derniers caracteres

 If TextBox1.Value = "" Then fichier = ListBox1 & LaDate Else fichier = TextBox1 & LaDate & ".ass"

Bonjour

Dans ListBox1 (ou dans TextBox1) tu as la date et l'heure ?

Oui, j'ai la date et l'heure dans le listBox. Dans le textbox c'est moi qui peut ecrire un nouveau nom, alors j'ecris sans date et heure, puisqu'elle seront ajouté automatiquement.

Voici le format final: 16 caracteres a enlever a la valeur de ListBox1

essai# 5 22 02 2016 11h55.ass

Rechercher des sujets similaires à "nom fichier"