DateDebutAnalyse = "22/12/2018"
Attente = DateDiff("yyyy", DateDebutAnalyse, Now) * 20
DébutAttente = Now
MsgBox "Avant de cliquer sur OK, copier les données de :" & vbCrLf & "Carnet des commandes clients > Analyse > Analyse globale (par cumul) > Double clique MO rélisée"
If Format(Now - DébutAttente, "hh:mm:ss") < "00:00:" & Attente Then
MsgBox "Attention, il est nécessaire d'attendre que la copie soit terminé" & vbCrLf & "Cela dure au moins 5sec par année annalysée"
End If
With Sheets("Détails MO réel")
.Select
.Columns("A:O").ClearContents
.Range("A1").Select
.Paste 'on colle
End With
Dim pret As Boolean
Public Property Get presse_papier() As String
presse_papier = "oui"
On Error Resume Next
presse_papier = CreateObject("htmlfile").parentwindow.clipboardData.GetData("TEXT")
If Err.Number = 94 Then presse_papier = "non": Err.Clear
End Property
Sub test()
Dim Texte$, T, T1
T1 = Timer
Do While presse_papier = "non"
T = Timer: Do While Timer - T < 1: Loop
If Timer - T1 > 10 Then Exit Do 'delay de 10 secondes avant d'avorter ; a modifier selon la tolérence souhaitée
Loop
If presse_papier =...
Voici un classeur exemple avec un userform et un command button. Clique sur le bouton de laa feuille pour afficher le userform Le bouton est désactivé pour 5 mn :Bonjour Daniel,
Oui bien sûr ! ce serait même plus propre, mais je sais encore moins comment le faire ^^
Private Sub UserForm_Activate()
Me.CommandButton1.Enabled = False
Application.OnTime Now + TimeValue("00:05:00"), "Activation"
End Sub
Oui je copie a partir d'une autre app et je le colle sur excel.bonjour
moi non plus je comprends pas très bien a la vue de la moitié de code que tu a donné
tu copie quoi et vers quoi
a la vue de ton code tu fait l'inverse de ton enoncé
il faut s'exprimer correctement
ne pas confondre "copier sur" et " copier a partir de"
Ok, j'ai, ça pourrait être pas mal, maintenant ça résout pas mon problème de modifier le temps d'attente.Voici un classeur exemple avec un userform et un command button. Clique sur le bouton de laa feuille pour afficher le userform Le bouton est désactivé pour 5 mn :
VB:Private Sub UserForm_Activate() Me.CommandButton1.Enabled = False Application.OnTime Now + TimeValue("00:05:00"), "Activation" End Sub
Si tu ne sais pas l'adapter à ton code, dis-le.
Daniel
public Property Get presse_papier() As String
presse_papier = CreateObject("htmlfile").parentwindow.clipboardData.GetData("TEXT")
End Property
Sub test()
Dim Texte$
Texte = presse_papier
msgbox right(Texte,100)
End Sub
L'attente c'est pour le copier.re
Bonjour
c'est quoi ton soucis en fait
l'attente de chargement dans le clipboard ou l'attente du paste complet
ce sont deux choses différentes
je te propose un truc
on va faire un test
tu va faire ton copier a la main sur cette dite app
et tu va tester ceci tout de suite apres et me dire si le text correspond a la fin de ce qui a été copié
le format des données on s'en fou pour l'instantVB:public Property Get presse_papier() As String presse_papier = CreateObject("htmlfile").parentwindow.clipboardData.GetData("TEXT") End Property Sub test() Dim Texte$ Texte = presse_papier msgbox right(Texte,100) End Sub
si ça répond comme je crois tu n'a pas besoins de gestion d'attente et combien meme si il y en avait besoins j'ai une solution pour ca
Ok, j'ai vidé le clipboard (en copiant des cellules excel puis en faisant echap)re
il faudrait donc déjà pour commencer
que tu vide le clipboard avant!!!! de copier que l'on puisse comparer la même chose et faire la gestion d'attente en chargement de clip
etce que cela est possible pour toi est ce que c'ette ergonomie te conviendrait ?
Sur la ligne presse_papier = CreateObject("htmlfile").parentwindow.clipboardData.GetData("TEXT")re
oui à quelle ligne il faut être plus précis sinon on s'en sort pas
n'oublie pas que je travaille en aveugle
Dim pret As Boolean
Public Property Get presse_papier() As String
On Error Resume Next
presse_papier = CreateObject("htmlfile").parentwindow.clipboardData.GetData("TEXT")
End Property
Sub test()
Dim Texte$, T
Texte = presse_papier
Do While pret = False
T = Timer: Do While Timer - T < 1: Loop
On Error Resume Next
If Texte = presse_papier Then pret = True
On Error GoTo 0
Texte = presse_papier
Loop
MsgBox "c'est pret à coller"
'activesheet.paste
End Sub