Test ouverture fichier

Résolu/Fermé
Harry Baux Messages postés 17 Date d'inscription samedi 14 décembre 2013 Statut Membre Dernière intervention 30 décembre 2013 - 22 déc. 2013 à 21:25
Harry Baux Messages postés 17 Date d'inscription samedi 14 décembre 2013 Statut Membre Dernière intervention 30 décembre 2013 - 28 déc. 2013 à 22:15
Bonjour,
J'ai testé plusieurs macro pour ceci mais je n'y arrive pas.
En fait je voudrais que la macro m'active mon fichier si il est déja ouvert ou bien qu'il l'ouvre si celui ci est fermé.
Cela fonctionne lorsque celui ci est fermé mais pas quand il est déja ouvert.

Sub testouverture()


estouvert = False
For Each fich In Workbooks
If fich.Name = "monfichier.xls" Then estouvert = True

Next

If estouvert = True Then Workbooks "monfichier.xls".Activate

If estouvert = False Then Workbooks.Open "monfichier.xls"

End Sub


Je me suis inspiré du premier exemple (j'ai tout essayé mais à chaque fois j'ai le même résultat).

http://jacxl.free.fr/cours_xl/cours_xl_jac.html#fichouv

Merci à vous pour votre aide.
Bonne soirée

PS : j'ai un problème d'affichage avec votre site depuis une semaine c'est du à quoi (ABP ?)
A voir également:

6 réponses

Le Pingou Messages postés 12045 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 25 avril 2024 1 427
Modifié par Le Pingou le 22/12/2013 à 23:09
Bonjour.
Remplacer vos deux lignes :
If estouvert = True Then Workbooks "monfichier.xls".Activate 
If estouvert = False Then Workbooks.Open "monfichier.xls"
Par celles-ci :
If estouvert = True Then
Workbooks "monfichier.xls".Activate
Else
Workbooks.Open "c:\le chemin\monfichier.xls" ` nécessaire d'avoir le lecteur +le chemin
End If


Salutations.
Le Pingou
0
Harry Baux Messages postés 17 Date d'inscription samedi 14 décembre 2013 Statut Membre Dernière intervention 30 décembre 2013
23 déc. 2013 à 21:21
Bonjour,
Merci beaucoup ça marche.
Petite précision.
Pour ceux qui mettent les liens dans les cellules il faut mettre le nom du fichier tout simplement, ensuite le nom du ficher avec les guillemets, puis le chemin complet du fichier.
Voir le code complet ci dessous :

Sub testouverture()


    estouvert = False
For Each fich In Workbooks
If fich.Name = (Range("'Sources'!B3")) Then estouvert = True ' mettre le nom du fichier: mon fichier.xls

Next

If estouvert = True Then
Workbooks(Range("'Sources'!B4")).Activate ' mettre le nom du fichier avec guillemets: "mon fichier.xls"
Else
Workbooks.Open (Range("'Sources'!B5")) ' mettre le chemin complet du fichier: c:\mon fichier.xls
End If

End Sub
0
Harry Baux Messages postés 17 Date d'inscription samedi 14 décembre 2013 Statut Membre Dernière intervention 30 décembre 2013
23 déc. 2013 à 21:36
Bonsoir,
J'ai un soucis pour la suite....lorsque la macro copie les données.
ça s'arrête sur "ActiveSheet.Paste"
Auriez vous une idée, ça fonctionne aléatoirement.
Le code en entier ci dessous :


Sub testouveture_maj



ThisWorkbook.Activate
Sheets("feuilacopier").Select
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Copy


estouvert = False
For Each fich In Workbooks
If fich.Name = (Range("'Sources'!B3")) Then estouvert = True ' mettre le nom du fichier: mon fichier.xls

Next

If estouvert = True Then

Workbooks(Range("'Sources'!B4")).Activate ' mettre le nom du fichier avec guillemets: "mon fichier.xls"

ActiveWorkbook.Save
Sheets(1).Select
Range("A1").Select
Selection.CurrentRegion.Select
nbl = Selection.Rows.Count
Cells(nbl + 1, 1).Select '
ActiveSheet.Paste




Else
Workbooks.Open (Range("'Sources'!B5")) ' mettre le chemin complet du fichier: c:\mon fichier.xls


Sheets(1).Select
Range("A1").Select
Selection.CurrentRegion.Select
nbl = Selection.Rows.Count
Cells(nbl + 1, 1).Select '
ActiveSheet.Paste



End If

ThisWorkbook.Activate




End Sub
Merci
0
Le Pingou Messages postés 12045 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 25 avril 2024 1 427
23 déc. 2013 à 23:09
Bonjour,
Juste au passage, cette partie de votre code n'est pas correct:
Workbooks.Open (Range("'Sources'!B5")) ' mettre le chemin complet du fichier: c:\mon fichier.xls

Je vous ai indiquez ceci pour le classeur non ouvert:
 Workbooks.Open "c:\le chemin\monfichier.xls" ' nécessaire d'avoir le lecteur +le chemin

Note: on ne c'est pas quelles données vous copiez et ou vous les collez...!

Joyeux Noël
0
Harry Baux Messages postés 17 Date d'inscription samedi 14 décembre 2013 Statut Membre Dernière intervention 30 décembre 2013
27 déc. 2013 à 15:46
Bonjour Le Pingou,

Tout fonctionne maintenant je vous remercie.

Juste une dernière question.

Je renvoie à une cellule le chemin ou bien le nom du fichier.
Le renvoie fonctionne pour le chemin de fichier mais lorsque je met simplement le nom cela ne fonctionne pas.
Lorsque je me met le nom du fichier en dur dans la macro ça fonctionne.

exemple :

Workbooks("monfichier.xlsx").Activate

ça fonctionne

Par contre avec :

Workbooks(Range("'Sources'!B4")).Activate

ça ne fonctionne pas
(j'ai bien dans ma cellule B4 monfichier.xlsx)

J'ai un message d'erreur de type '1004' "La méthode 'Range' de l'objet' Global a échoué"

Auriez vous une réponse ?
Merci et joyeuses fêtes.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 27/12/2013 à 19:53
Bonsoir,

à tout hasard essaie avec :
Workbooks(Range("'Sources'!B4").value).Activate
J'ai l'impression que c'est le fait que tu lui passes un range et non un string qui ne lui plait pas.
Par contre pour ouvrir le fichier il faudra toujours au total chemin+nom du fichier. comme te l'as dit le pingou. Remarque à laquelle tu n'as même pas répondu ok, ce qui fait qu'on ne sait pas si tu en tiens compte ou pas...

eric
0
Le Pingou Messages postés 12045 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 25 avril 2024 1 427
27 déc. 2013 à 21:04
Merci eriiic,
Je ne connaissais pas cette variante d'écriture.
Tous mes voeux pour 214.
Le Pingou
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
28 déc. 2013 à 10:11
Salut le pingou,

Il faut parfois se méfier des propriétés par défaut, qui n'est pas toujours celle qu'on attend, selon le contexte.
Tous mes voeux pour 2014 également, surtout de santé.
Bon we
eric
0
Harry Baux Messages postés 17 Date d'inscription samedi 14 décembre 2013 Statut Membre Dernière intervention 30 décembre 2013
28 déc. 2013 à 22:14
Bonjour Eric,
Merci pour l'info ça à l'air de fonctionner.
Pour le chemin et le nom du fichier j'ai bien pris cela en compte, ça fonctionne également.
0

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

Posez votre question
Harry Baux Messages postés 17 Date d'inscription samedi 14 décembre 2013 Statut Membre Dernière intervention 30 décembre 2013
27 déc. 2013 à 19:04
ps
Pour faire résumé lorsque je met le chemin du fichier dans une cellule ça fonctionne, par contre quand je me le nom du fichier ou bien le nom de la feuille ça ne marche pas.... j'ai essayé toutes les combines mais ça ne veut pas marcher....surement un problème de syntaxe.....
0
Le Pingou Messages postés 12045 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 25 avril 2024 1 427
27 déc. 2013 à 20:55
Bonjour,
Concerne :
Par contre avec :
Workbooks(Range("'Sources'!B4")).Activate

ça ne fonctionne pas
(j'ai bien dans ma cellule B4 monfichier.xlsx)

Cela ne peut pas fonctionné, Il manque le non de la feuille..
Comme ceci peut-être :
Workbooks(Sheets("Sources"). Range("$B$4")).Activate

0
Harry Baux Messages postés 17 Date d'inscription samedi 14 décembre 2013 Statut Membre Dernière intervention 30 décembre 2013
28 déc. 2013 à 22:15
effectivement j'ai pas repris le nom de la feuille....
Merci à vous bonne soirée
0