Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction VBA Pour vérifier l'existence d'un classeur "test.xls"

Matjul

XLDnaute Occasionnel
Bon premier mai à tous,

Afin de combler cette triste journée loin du boulot je fais appel à vos lumières.
Ce que je veux faire :
J'ai créé un formulaire de saisie et voudrais exporter la feuille active soit dans un nouveau classeur, soit dans un classeur existant.
C'est sur ce test que je ne sais pas comment procéder. Je me suis créé une cellule dans laquelle j'ai concaténé les éléments permettant de valoriser l'arborescence + le nom du fichier théorique (ex. C/classeur_test/[valeur d'une cellule]+[Valeur d'une autre cellule]+[quantième ou date du jour].xls)
J'essaie de trouver un moyen d'affecter la valeur de cette cellule à une variable "arborescence" dans le programme VB et tente désespérément de trouver une fonction me permettant de comparer cette valeur à l'existant, si elle existe j'insère simplement une feuille sinon je crée un classeur avec cette feuille sous "arborescence".

C'est sûrement simple mais je tourne en rond sur les différents forums ou dans le help.

Merci.

Matjul
 

Matjul

XLDnaute Occasionnel
Re : Fonction VBA Pour vérifier l'existence d'un classeur "test.xls"

Bonjour Hasco,
Je viens de tester votre code.
Si le classeur existe déjà, alors il s'ouvre et la feuille vient s'insérer, puis il se referme.

Maintenant si le classeur n'existe pas, il y a toujours le débogueur qui se met en route avec "Erreur d'éxécution 1004
Erreur définie par l'application ou par l'objet"
Puis c'est cette ligne là "ActiveSheet.Name = Nomfeuil" qui est soulignée.

Comment faire?

Merci
 
Dernière édition:
G

Guest

Guest
Re : Fonction VBA Pour vérifier l'existence d'un classeur "test.xls"

re MatJul,

voici qui me semble-t-il fonctionnera:

En fait NomFeuil n'était défini que si le classeur existait déjà ( après if x=True) aussi il suffisait de mettre la définition du nom de la feuille avant le bloc If... then ...Else...end if.

Code:
[COLOR=red]Nomfeuil = TextBox1.Value & " " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) 'Crée une feuille avec le nom du produit et la date[/COLOR]
[COLOR=blue]If x = True Then[/COLOR]
  'Décommenter la ligne suivante après les tests
  'Application.ScreenUpdating=False
  
  Workbooks.Open "C:\Test\" & TextBox1.Value & ".xls"
  
  Tafeuille.Copy Before:=ActiveWorkbook.Sheets(1)
  ActiveSheet.Name = Nomfeuil
  
  Application.DisplayAlerts = False
  ActiveWorkbook.Save
  ActiveWorkbook.Close
  Application.DisplayAlerts = True
  Application.ScreenUpdating = True
  initialise
[COLOR=blue]Else [/COLOR]'Crée un nouveau classeur avec le nom du produit
  Set NewFile = Workbooks.Add
  Tafeuille.Copy After:=Sheets(Sheets.Count)
  ActiveSheet.Name = Nomfeuil
  NewFile.SaveAs Filename:= _
  "C:\Test\" & TextBox1.Value & ".xls", _
  FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
  ReadOnlyRecommended:=False, CreateBackup:=False
  Application.Quit
[COLOR=blue]End If
[/COLOR]

A bientôt
 

Matjul

XLDnaute Occasionnel
Re : Fonction VBA Pour vérifier l'existence d'un classeur "test.xls"

Ok, merci beaucoup Hasco tout fonctionne.
J'ai juste quelques petits soucis avec car à cause des userforms, les classeurs restent ouverts et ne se referment pas, mais je vais essayer de modifier pour éviter ce problème.
Merci encore
 

cbea

XLDnaute Impliqué
Re : Fonction VBA Pour vérifier l'existence d'un classeur "test.xls"

Bonsoir tout le monde,

J'arrive un peu tard. Je constate que ton problème est résolu.
Je te fournis ce que j'ai fait si cela peut aider.
 

Pièces jointes

  • Test_v1.zip
    17 KB · Affichages: 87
  • Test_v1.zip
    17 KB · Affichages: 79
  • Test_v1.zip
    17 KB · Affichages: 75

Matjul

XLDnaute Occasionnel
Re : Fonction VBA Pour vérifier l'existence d'un classeur "test.xls"

Bonsoir Cbea,
Je viens de tester votre code et il est vraiment très bien!!!
Je vais l'utiliser!
Merci beaucoup à tous vous me sortez une grosse épine du pied!!!
 

Discussions similaires

Réponses
20
Affichages
503
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…