Se connecter avec
S'enregistrer | Connectez-vous

Vba et fichiers excel fermés

Dernière réponse : dans Programmation

Bonjour,
J'essaie d'écrire un programme sous excel à
l'aide de VBA afin de mettre à jour des fichiers excel
fermés.
J'ai trouvé un exemple de code sur un livre qui est le suivant:

  1. Sub Commande()
  2.  
  3. Dim StockRestant As Integer
  4. Dim UnitésCommandées As Integer
  5.  
  6. UnitésCommandées = 50
  7.  
  8. StockRestant = VerifierEtMettreAJourStock(UnitésCommandées)
  9.  
  10. If StockRestant < 0 Then
  11. MsgBox "Le stock ne permet pas d'assurer la commande. Le stock pour ce produit est de :" & (StockRestant + UnitésCommandées) & "unités."
  12. Exit Sub
  13. Else
  14. MsgBox "Commande effectuée. Le stock restant pour ce produit est de " & StockRestant & "unités."
  15. End If
  16.  
  17. End Sub
  18.  
  19. Function VerifierEtMettreAJourStock(QteCommande As Integer)
  20.  
  21. Dim ObjetStock As Workbook
  22. Dim StockDispo As Integer
  23.  
  24. Set ObjetStock = GetObject("C:\Documents and Settings\Patrice\Bureau\Stock.xls")
  25. StockDispo = ObjetStock.Sheets(1).Range("A13").Value
  26.  
  27. VerifierEtMettreAJourStock = StockDispo - QteCommande
  28.  
  29. If VerifierEtMettreAJourStock >= 0 Then
  30. ObjetStock.Sheets(1).Range("A13").Value = StockDispo - QteCommande
  31. ObjetStock.Save
  32. End If
  33. Set ObjetStock = Nothing
  34. End Function


Le programme marche très bien cependant le fichier "stock" ne peut plus s'ouvrir
à partir du moment où l'on a lancé le programme.
Pourriez vous me dire comment remédier à ce problème.

Merci pour vos conseils.

Autres pages sur : vba fichiers excel fermes

Lassé par la pub ? Créez un compte

Bonjour à ZigZag23 et à tous les autres qui liront ce message :)  ,

J'ai acheté le même bouquin que toi et ai été confronté à la même situation :
- On souhaite lire et modifier un fichier sans l'ouvrir, à savoir : Stock.xls.
- Lors de l'exécution de la macro, le classeur Stock.xls est bien modifié mais a été masqué. Pour l'afficher, on est obligé de faire Fenêtre > Afficher puis de sélectionner Stock.xls.
- De plus, si on ferme Stock.xls et qu'on l'ouvre à nouveau, le classeur est à nouveau masqué.

Après quelques essais à tâtons et de fastidieuses recherches en ligne sur le fonction GetObject, j'ai remplacé l'instruction ligne 31 par les instructions suivantes :
Windows("Stock.xls").Visible = True
ObjetStock.Save
ObjetStock.Close

Résultat : tout fonctionne et plus besoin d'avoir à afficher le classeur Stock.xls :bounce:  !

Voilou,

rfesc




Lassé par la pub ? Créez un compte