Si classeur deja ouvert activer un timer ou une pose
Résolu/Fermé
pascal
-
19 janv. 2013 à 01:11
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 19 janv. 2013 à 18:15
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 19 janv. 2013 à 18:15
A voir également:
- Si classeur deja ouvert activer un timer ou une pose
- Comment activer windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Activer chromecast - Guide
- Activer pavé tactile pc portable - Guide
- Cle pour activer windows 10 gratuitement - Guide
3 réponses
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
Modifié par f894009 le 19/01/2013 à 09:09
Modifié par f894009 le 19/01/2013 à 09:09
Bonjour,
utiliser par plusieurs personnes a la fois Plusieurs PC?????
je change de feuille pour imprimer un formulaire,Peut se faire par VBA????
A+
utiliser par plusieurs personnes a la fois Plusieurs PC?????
je change de feuille pour imprimer un formulaire,Peut se faire par VBA????
A+
voici mon code et mon souhait est en Gras. pour info mes fichiers excel sont sur un reseau d'entreprise voila pourquoi je ne fais pas de partage.
Dim Wb As Workbook
Dim WB1 As Workbook
Dim Ws As Worksheet
Dim WS1 As Worksheet
Dim NumLigneVide As Integer
If TextSection.Text = "" Then
MsgBox "renseignez Votre Section EX (T6000)", vbInformation, "champs obligatoire"
TextSection.SetFocus
ElseIf CboMoteur.Text = "" Then
MsgBox "renseignez le Moteur a l'aide du menu déroulant", vbInformation, "champs obligatoire"
CboMoteur.SetFocus
Else
'set WB= Worbook. etc est l'ouverture de mon classeur oui je copie mes donnée de l'userform,
' c'est la ou je voudrais mettre un timer ou une pose oui une boucle si le classeur "BDT+.xls" est ouvert
' et que des qu'il est fermer la macro l'ouvre et s'execute jusqu'a la fin
'( pour info lors de l'impression plus pas se sont des formule qui recupere les nouvelle donnees de la feuille1 de
'mon "BDT+.xls" pour les remplir dans mon "formulaire" Feuille 2
Set Wb = Workbooks.Open("C:\Users\Propriétaire\Desktop\Turbo+Test\BDT+.xls")
Worksheets("T+general").Activate
'on choisi la ligne vide puis le n° de ligne
Range("B65536").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
NumLigneVide = ActiveSheet.Columns(2).Find("").Row
'on remplit les données dans le tableau
ActiveSheet.Cells(NumLigneVide, 2) = TextItem.Text
ActiveSheet.Cells(NumLigneVide, 3) = CboMoteur.Text
ActiveSheet.Cells(NumLigneVide, 4) = TextRef.Text
ActiveSheet.Cells(NumLigneVide, 5) = TextNumSerie.Text
ActiveSheet.Cells(NumLigneVide, 6) = TextOrdre.Text
ActiveSheet.Cells(NumLigneVide, 7) = TextSection.Text
ActiveSheet.Cells(NumLigneVide, 8) = CboAnomalie.Text
ActiveSheet.Cells(NumLigneVide, 9) = TextEcart.Text
ActiveSheet.Cells(NumLigneVide, 10) = CboNligne.Text
ActiveSheet.Cells(NumLigneVide, 11) = CboNom.Text
ActiveSheet.Cells(NumLigneVide, 12) = Textdate.Text
ActiveSheet.Cells(NumLigneVide, 19) = CboMS7.Text
' couleur de la ligne
Range("a" & (ActiveCell.Row)).Select
Range("a" & (ActiveCell.Row), "l" & (ActiveCell.Row)).Select
Selection.Interior.ColorIndex = 48
'on efface le formulaire et curseur au debut
TextItem.Text = ""
CboMoteur.Text = ""
TextRef.Text = ""
TextNumSerie.Text = ""
TextEcart.Text = ""
TextOrdre.Text = ""
TextSection.Text = ""
CboNligne.Text = ""
CboNom.Text = ""
CboAnomalie.Text = ""
CboMS7.Text = ""
'on cache la fenetre
frmnouvelle1.Hide
Set WB1 = Workbooks.Open("C:\Users\Propriétaire\Desktop\Turbo+Test\BDT+Cop.xls")
Set WS1 = WB1.Worksheets(1)
Workbooks("BDT+Cop.xls.xls").Sheets(1).Range("b4:l10000") = Workbooks("BDT+Cop.xls").Sheets(1).Range("b4:l10000").Value
Workbooks("BDT+Cop.xls").Save
Workbooks("BDT+Cop.xls").Close True
' impression feuille impression
ActiveCell.Offset(0, -1).Select
Selection.Copy
Sheets("impression").Select
Range("I3").Select
ActiveSheet.Paste
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("T+General").Select
'on ferme le classeur
Workbooks("BDT+.xls").Close True
End If
End Sub
Dim Wb As Workbook
Dim WB1 As Workbook
Dim Ws As Worksheet
Dim WS1 As Worksheet
Dim NumLigneVide As Integer
If TextSection.Text = "" Then
MsgBox "renseignez Votre Section EX (T6000)", vbInformation, "champs obligatoire"
TextSection.SetFocus
ElseIf CboMoteur.Text = "" Then
MsgBox "renseignez le Moteur a l'aide du menu déroulant", vbInformation, "champs obligatoire"
CboMoteur.SetFocus
Else
'set WB= Worbook. etc est l'ouverture de mon classeur oui je copie mes donnée de l'userform,
' c'est la ou je voudrais mettre un timer ou une pose oui une boucle si le classeur "BDT+.xls" est ouvert
' et que des qu'il est fermer la macro l'ouvre et s'execute jusqu'a la fin
'( pour info lors de l'impression plus pas se sont des formule qui recupere les nouvelle donnees de la feuille1 de
'mon "BDT+.xls" pour les remplir dans mon "formulaire" Feuille 2
Set Wb = Workbooks.Open("C:\Users\Propriétaire\Desktop\Turbo+Test\BDT+.xls")
Worksheets("T+general").Activate
'on choisi la ligne vide puis le n° de ligne
Range("B65536").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
NumLigneVide = ActiveSheet.Columns(2).Find("").Row
'on remplit les données dans le tableau
ActiveSheet.Cells(NumLigneVide, 2) = TextItem.Text
ActiveSheet.Cells(NumLigneVide, 3) = CboMoteur.Text
ActiveSheet.Cells(NumLigneVide, 4) = TextRef.Text
ActiveSheet.Cells(NumLigneVide, 5) = TextNumSerie.Text
ActiveSheet.Cells(NumLigneVide, 6) = TextOrdre.Text
ActiveSheet.Cells(NumLigneVide, 7) = TextSection.Text
ActiveSheet.Cells(NumLigneVide, 8) = CboAnomalie.Text
ActiveSheet.Cells(NumLigneVide, 9) = TextEcart.Text
ActiveSheet.Cells(NumLigneVide, 10) = CboNligne.Text
ActiveSheet.Cells(NumLigneVide, 11) = CboNom.Text
ActiveSheet.Cells(NumLigneVide, 12) = Textdate.Text
ActiveSheet.Cells(NumLigneVide, 19) = CboMS7.Text
' couleur de la ligne
Range("a" & (ActiveCell.Row)).Select
Range("a" & (ActiveCell.Row), "l" & (ActiveCell.Row)).Select
Selection.Interior.ColorIndex = 48
'on efface le formulaire et curseur au debut
TextItem.Text = ""
CboMoteur.Text = ""
TextRef.Text = ""
TextNumSerie.Text = ""
TextEcart.Text = ""
TextOrdre.Text = ""
TextSection.Text = ""
CboNligne.Text = ""
CboNom.Text = ""
CboAnomalie.Text = ""
CboMS7.Text = ""
'on cache la fenetre
frmnouvelle1.Hide
Set WB1 = Workbooks.Open("C:\Users\Propriétaire\Desktop\Turbo+Test\BDT+Cop.xls")
Set WS1 = WB1.Worksheets(1)
Workbooks("BDT+Cop.xls.xls").Sheets(1).Range("b4:l10000") = Workbooks("BDT+Cop.xls").Sheets(1).Range("b4:l10000").Value
Workbooks("BDT+Cop.xls").Save
Workbooks("BDT+Cop.xls").Close True
' impression feuille impression
ActiveCell.Offset(0, -1).Select
Selection.Copy
Sheets("impression").Select
Range("I3").Select
ActiveSheet.Paste
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("T+General").Select
'on ferme le classeur
Workbooks("BDT+.xls").Close True
End If
End Sub
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
19 janv. 2013 à 14:31
19 janv. 2013 à 14:31
Re,
Recuperez le code sur ce site et adaptez le a votre fichier:
https://support.microsoft.com/fr-fr/help/291295
Faites des essais pour confirmer que cela fonctionne avec un fichier ouvert sur un répertoire partage. Rendez compte.
Recuperez le code sur ce site et adaptez le a votre fichier:
https://support.microsoft.com/fr-fr/help/291295
Faites des essais pour confirmer que cela fonctionne avec un fichier ouvert sur un répertoire partage. Rendez compte.
merci mais cela ne répond pas a mon probleme, je connais cette méthode moi je veux un arret de la macro si le classeur est ouvert et non un message, je veux que cela reste transparent pour l'utilisateur.
je veux
si classeur "BDT+.xls" ouvert entendre X secondes et retenter l'ouverture .
sinon ouvrir classeur "BDT+.xls
je veux
si classeur "BDT+.xls" ouvert entendre X secondes et retenter l'ouverture .
sinon ouvrir classeur "BDT+.xls
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
19 janv. 2013 à 16:16
19 janv. 2013 à 16:16
Re,
merci mais cela ne répond pas a mon probleme, je connais cette méthode moi je veux un arret Etes-vous sur de connaitre, parce que c'est en partant de cette methode que vous pourrez faire une "pause" a votre programme en ajoutant l'utilisation de Application.OnTime (voir aide excel). A vous de jouer.
merci mais cela ne répond pas a mon probleme, je connais cette méthode moi je veux un arret Etes-vous sur de connaitre, parce que c'est en partant de cette methode que vous pourrez faire une "pause" a votre programme en ajoutant l'utilisation de Application.OnTime (voir aide excel). A vous de jouer.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
19 janv. 2013 à 16:48
19 janv. 2013 à 16:48
Re,
if classeur"BDT+.xls" ouvert c'est le code que je vous ai propose. Vous devez tester que votre fichier n'est pas ouvert par un autre utilisateur ,
pour info mes fichiers excel sont sur un reseau d'entreprise et mon système est utiliser sur une 100 de Pc ca en fait des utilisateurs simultanes
if classeur"BDT+.xls" ouvert c'est le code que je vous ai propose. Vous devez tester que votre fichier n'est pas ouvert par un autre utilisateur ,
pour info mes fichiers excel sont sur un reseau d'entreprise et mon système est utiliser sur une 100 de Pc ca en fait des utilisateurs simultanes
19 janv. 2013 à 09:23
formulaire est le nom que j ai donné à ma feuille 2,
ma macro marche très bien , j aimerai y rajouter une pose ou un timer si mon classeur
qui réceptionne les données est ouvert, car comme je l ai expliquer quand il est utilisé c'est 3 à 4 secondes puis fermer aussitôt.
19 janv. 2013 à 09:28
19 janv. 2013 à 11:03
j'ai un userform, dans un fichier par PC ou fichier partage???
"BDT+.xls"fichier unique partage?? vous sert de base de donnee??
"BDT+cop.xls"vous sert a.....??
je change de feuille pour imprimer un formulaire, les donnees viennent d'ou??
A+
19 janv. 2013 à 11:37
j'ai decris seulement le pourquoi j'ai besoin d'une pose ou d'un timer en expliquant ma façon de fonctionner
les classeurs ne sont pas en partage d'ou le classeur "BDT+cop.xls" qui vient récupérer les nouvelles donnée rempli dans le classeur "BDT+.Xls" a chaque nouvelle validation de mon userform, mais mon probleme n'est pas la.
je souhaiterai si classeur " BDT+xls" deja ouvert lors de l'exécution de ma macro une pose ou qu'un timer s'enclencha pour laisser le temps au classeur "BDT+;xls" de se fermer, et que ma macro reprenne au moment ou j'ouvre le classeur BDT+.xls" car comme j'ai expliqué a chaque fois il ne s'ouvre 3 a 4 secondes pour exécuter ce que ma macro demande.
ou puis je mettre mon code pour une meilleure compréhension?
19 janv. 2013 à 12:13
j'ai decris seulement le pourquoi j'ai besoin d'une pose ou d'un timer en expliquant ma façon de fonctionner Est-ce la meilleure?? C'est pour cela que je pose ces questions. Maintenant si vous voulez absolument faire fonctionner ce que vous avez fait: click sur ce lien pour mettre a dipso https://www.cjoint.com/