Fermer un classeur en le sauvant mais bug

Résolu
grisan29 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, a tous

j'ai ce code Workbooks("articles.xlsm").SaveClose True
qui me permet de fermer en sauvant le classeur articles qui ouvert

ce que je voudrais exactement c'est qu' une fois que j'ai fait la modification nécessaire que le clic pour ouvrir l'userform des articles justement le ferme en le sauvant
Private Sub bibliothèques_Click()
Workbooks("articles.xlsm").saveClose True
Unload Me

bibliothèque.Show
End Sub
voila comment j'ai mis la ligne qui ferme en sauvant le classeur mais cette même ligne bug pour ouvrir la bibliothèque qui elle en s'initialisant ouvre le classeur articles

bon j'espère être clair dans mon explication
Pascal
--
A voir également:

7 réponses

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
Essayez ceci
Workbooks("articles.xlsm").Save
Workbooks("articles.xlsm").Close
Cdlt
0
grisan29 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
 
bonjour frenchie83

merci pour ta réponse, mais je me suis mal exprimer dans ce que je voudrais
en premier quand j'ouvre mon classeur facturation le classeur articles n'est pas ouvert, quand je clic sur son bouton il s'ouvre très bien mais si je dois lui faire une modification je suis obligé de le fermer et excel me demande a chaque fois si je veux enregistrer ou pas je clic sur oui
et dans ce cas je clic de nouveau sur le bouton et le classeur s'ouvre

je voudrais passer outre le message de excel en faisant la manipulation dans le bouton qui lance l'ouverture du classeur en même temps que l'usf bibliothèques

Pascal

--
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Dans votre demande initiale: ce que je voudrais exactement c'est qu' une fois que j'ai fait la modification nécessaire que le clic pour ouvrir l'userform des articles justement le ferme en le sauvant et voila comment j'ai mis la ligne qui ferme en sauvant le classeur mais cette même ligne bug C'est bien ce qui était écrit.

Pour le reste, je ne suis pas sûr d'avoir bien compris.
voudrais passer outre le message de excel Si ce n'est qu'une histoire de message qu'il ne faut pas afficher, il suffit de rajouter cette ligne en début de code.
Application.DisplayAlerts = False

Mais, ce n'est peut-être pas encore ça, mais sans voir vos fichiers et les codes qui leurs sont associés, difficile d'en dire plus. Dites vous bien que nous travaillons que d'après ce que vous écrivez, donc si vous ne mettez pas les fichiers en pièces jointes, soyez clair et précis dans vos demandes.
Cdlt
0
grisan29 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
 
re frenchie
la fonction que tu donnes ne correspond a ce que je veux
donc avant que je décide de changer le code du bouton est
Private Sub bibliothèques_Click()
Unload Me
bibliothèque.Show
End Sub
et a l'initialisation de la bibliothèques le classeur articles s'ouvre, mais si en cours je m'aperçois qu'il faut que je rajoute où modifie un article je ferme l'usf bibliothèque et je fait ma modification, mais il m'arrive parfois d'oublier de sauvegarder le classeur article et la j'ai un bug car je n'ai pas fermé le classeur articles, au début du code l'userform articles il y a l'appel du classeur article par lemorceau de code ci dessous
Dim wbArticles As Workbook

Dim wb As Workbook
For Each wb In Workbooks
If wb.FullName = WB_BASE_ARTICLES Then
Set wbArticles = wb
Exit For
End If
Next wb

Set wsFacture = ThisWorkbook.Sheets(WS_FACTURE)

wsFacture.Range("chiflet").ClearContents
If wbArticles Is Nothing Then
Set wbArticles = Workbooks.Open(WB_BASE_ARTICLES)
End If

Set wsArticles = wbArticles.Sheets(WS_ARTICLES) 'Set pour attribuer des références d'objet à des variables

ThisWorkbook.Activate

mais en te répondant je pense que c'est peut être la qu'il faut agir

en fait les lignes de codes proposé a ta 1ère répone vont bien si le classeur est déja ouvert, mais a l'ouverture du classeur principal il ne l'est pas

Pascal

--
0
grisan29 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
 
re frenchie83
j'ai essayer ceci
If Workbooks("articles.xlsm").Open = True Then
Worksheets("articles.xlsm").save.Close = True
End If
mais j'ai un bug a la 2ème ligne erreur 9 l'indice n'appartient pas a la sélection

Pascal

--
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
        Workbooks("TEST-CCM.xlsm").Save
        Workbooks("TEST-CCM.xlsm").Close
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
        Workbooks("TEST-CCM.xlsm").Save
        Workbooks("TEST-CCM.xlsm").Close
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Mauvaise manipulation de ma part, c'est partit avant d'avoir fini mon texte
dans la 2ème ligne c'est workbooks au lieu de worksheets
0

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

Posez votre question
grisan29 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
 
re frenchie 83

merci de ta réponse mais j'ai le meme bug car le classeur articles n'est ouvert quand j'ouvre le classeur facturation
il faudrais passer outre quand c'est facturation seul qui est ouvert pour le faire après

Pascal

--
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
et en mettant
on error resume next en début de code
0
grisan29 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
 
re franchie 83
avec cette en plus cela fonctionne

merci beaucoup
Pascal

--
0
grisan29 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
 
bonsoir franchie83

tout compte fait j'ai trouvé autre chose que fermer et rouvrir le classeur et qui fonctionne bien
j'ai remplacer une ligne dans l'initialisation de l'userform bibliothèques
la ligne cochée en haut est celle remplacée
'If wb.FullName = WB_BASE_ARTICLES Then
If UCase(wb.FullName) = UCase(WB_BASE_ARTICLES) Then

voila je voulais t'en faire part

Pascal

--
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
merci pour le retour cliquez sur "résolu"
bonne journée
0