Ok plus vite se sera fait plus vite une contribution de Marc ou moi sera faite a ce sujet afin que tout le monde en profite
bon week end
re
je te règle ca en 3 lignes si tu veuxEDIT
J'ai quand même tenté.
Ça fonctionne, sauf pour la mise en forme du tableau. En effet, elle est un peu spéciale avec des boutons contenant du texte (du coup, on a des boutons importés mais dont le positionnement n'est pas génial).
Ce que je faisais jusqu'alors, c'était de prendre le texte de chaque cellule concaténé à celui du bouton de la cellule quand il y en a un.
il suffit de remasteuriser le code
je reviens dans 5 minutes
voila teste celle la
re
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Sub DemoIEinPrivate() Dim temps As Long IE$ = CreateObject("WScript.Shell").RegRead("HKCR\Applications\iexplore.exe\shell\open\command\") With CreateObject("Shell.Application").Windows c& = .Count If Shell(Replace(IE, "%1", "-private https://teletubies"), vbNormalFocus) Then While .Count = c: Wend With .Item(CLng(c)) If fenetre_securite(10) = True Then ' pour 10 secondes de delai avant abandon (remplacer 10 par ce qu'on veut slon la tolerance de l'utilisateur ) tape_les_touche While .Busy Or .readyState < 4: Wend '............................ 'explotation du document ici Dim IEdoc As HTMLDocument, ieTable Set IEdoc = .document ieTableouter = IEdoc.getElementsByClassName("tab-workdesk").Item(0).outerHTML 'on trouvele tableau à partir du nom de la classe With CreateObject("htmlfile") .body.innerHTML = ieTableouter For Each elem In .all If elem.tagName = "TD" Then elem.innerHTML = elem.innerText Next faire = .parentWindow.clipboardData.setData("text", .body.innerHTML) With Sheets(1): .Range("A1:Z" & Rows.Count).Clear: .Cells(1, 1).Select: .Paste: End With faire = .parentWindow.clipboardData.clearData("text") End With End With .Quit End With '............................ Else MsgBox "temps depassé vérifier le debit " End If On Error Resume Next .Quit End With End If End With End Sub
Salut mar c
il me viens une réflexion un peu tardive mais un truc qui me chagrine pas dans ton raisonnement mais plutôt dans ta façon de le mettre en application
tu dis effectivement et je suis d'accords avec toi que c'est forcement la dernière fenêtre dans le ".count"
mais alors dans ta mise en application ca n'est pas ca
j'aimerais beaucoup des éclaircissements sur ce point
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 With CreateObject("Shell.Application").Windows c& = .Count 'on repere le .count des Windows If Shell(Replace(IE, "%1", "-private https://teletubies"), vbNormalFocus) Then 'on ouvre la fenetre While .Count = c: Wend ' on boucle tant que le .count est pareil With .Item(CLng(c)) ' et c'est ici que je pige pas C a été instruit avant l'ouverture de ie private ce n'est donc pas le dernier que fait vraiment CLNG
serait ce parce que le .count démarrerait l'index de la première Windows à 0 je vois que ca comme explication : Est-ce exact????
Partager