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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| Private Sub OK_Click()
'===============================================================================================
'================================ Déclaration des variables ====================================
'===============================================================================================
'Login
Dim Utilisateur As String
Dim MotDePasse As String
Utilisateur = User.Text
MotDePasse = Mdp.Text
'Paramétrage du presse papier
Dim MyData As DataObject
Set MyData = New DataObject
Dim N_Article As String
'Incrémentation de la nomenclature excel
Dim i As Integer
'===============================================================================================
'================================ Authentification TN52/JDE ====================================
'===============================================================================================
If Utilisateur = "user" And MotDePasse = "password" Then
Unload Me 'Fermeture de la fenêtre login (UserForm1)
Shell ("Y:\base\Fichiers Macro\TN5250J.bat") 'Lancement de TN5250j
Application.Wait (Now + TimeValue("0:00:06")) 'Temps de pause 6s
UsrCMD = "" & User & "{TAB}" 'Rappel de la saisie User
SendKeys UsrCMD 'Importer la saisie dans JDE
Application.Wait (Now + TimeValue("0:00:02")) 'Temps de pause 2s
PassCMD = "" & Mdp & "{ENTER}" 'Rappel de la saisie Password
SendKeys PassCMD 'Importer la saisie dans JDE
Application.Wait (Now + TimeValue("0:00:02")) 'Temps de pause 2s
Else
Exit Sub
End If
'===============================================================================================
'================================ Interrogation articles =======================================
'===============================================================================================
Application.Wait (Now + TimeValue("0:00:01")) 'Temps de pause 02s
SendKeys ("1"), True 'Article
Application.Wait (Now + TimeValue("0:00:01")) 'Temps de pause 01s
SendKeys "{ENTER}", True
Application.Wait (Now + TimeValue("0:00:01")) 'Temps de pause 01s
SendKeys ("2"), True 'Fiche article
Application.Wait (Now + TimeValue("0:00:01")) 'Temps de pause 01s
SendKeys "{ENTER}", True
Application.Wait (Now + TimeValue("0:00:03")) 'Temps de pause 01s
SendKeys "i", True 'Interrogation
'Séléction des cellules en boucle
i = 1
Do While Cells(i, 3) <> ""
If Cells(i, 3) > 30999999 And Cells(i, 3) < 32000000 Then
Cells(i, 3).Copy 'Copie la cellule d'excel dans le presse papier
SendKeys "^v", True 'Colle la cellule dans le champ code produit de JDE
Application.Wait (Now + TimeValue("0:00:01")) 'Temps de pause 01s
SendKeys "{ENTER}", True
Application.Wait (Now + TimeValue("0:00:01")) 'Temps de pause 01s
SendKeys "^!", True 'Selection du champ n° article (8 caractères)
SendKeys "^c", True 'Copie du champ numéro article de JDE
'Vérification du contenu du presse papier
On Error GoTo NotText
MyData.GetFromClipboard 'Recherche du presse papier.
N_Article = MyData.GetText(1)
If N_Article <> "I" Then
Cells(i, 2).Value = "1" 'Presse papier vide = article à créer
Else
Cells(i, 2).Value = "" 'Presse papier non vide = article déjà créé
SendKeys "+{TAB}", True 'Remise en position sur le premier caractère code d'action
Application.Wait (Now + TimeValue("0:00:01")) 'Temps de pause 01s
SendKeys "+{TAB}", True 'Mise en position N° Article
SendKeys "^s", True 'Suppression N°Article
SendKeys "{TAB}", True 'Remise en position code d'action
SendKeys "i", True
End If
NotText:
If Err <> 0 Then 'Permet l'arrêt de la boucle sans erreurs
MsgBox "La sélection n'est pas du texte."
End If
End If
i = i + 1
Loop
End Sub |
Partager