Bonjour le forum,

J'aimerai avoir votre aide concernant un petit problème que je rencontre.

J'utilise ce code ci :
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
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
Ce code me permet d'ouvrir une application java via excel et d'en analyser ce qu'elle contient.

Grâce a ce code :
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
 '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
               Cells(i, 2).Value = "1"
            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
J'analyse le presse papier. Dans le cas ci-dessus, je dis que, si le presse papier est vide alors il faut ecrire un "1" dans la cellule d'excel. Si le presse papier contient quelque chose alors il faut passer directement a la cellule suivante.
J'aimerai donc pousser le vis un peu plus loin en disant : Si le presse papier contient un "I" alors on passe a la cellule suivante directement, Si le presse papier ne contient pas de "I" alors il faut metre un "1"

J'ai essayé de remplacer le If N_Article <> "" Then par If N_Article <> "I" Then mais ca ne fonctionne pas.

Je ne trouve pas le moyen de faire ceci .

Merci d'avance !