Ajout d'une contrainte dans un programme

Résolu/Fermé
sufyan77 Messages postés 10 Date d'inscription vendredi 31 janvier 2020 Statut Membre Dernière intervention 24 février 2020 - Modifié le 31 janv. 2020 à 14:00
sufyan77 Messages postés 10 Date d'inscription vendredi 31 janvier 2020 Statut Membre Dernière intervention 24 février 2020 - 24 févr. 2020 à 22:21
Bonjour à tous,

Voila, j'ai une macro VBA à faire portant sur une modification (plutot suppression dans mon cas ) d'une même donnée sur plusieurs lignes issus du fichier text ( via Excel) .
sur mon "tex"t, il y a 200 lignes et sur mon programme , j'ai programmé qu'il doit toujours supprimer la 1er donnée (qui est censé etre "AED" ) MAIS je veux lui mettre une contrainte que si cela n'est pas AED, qu'il ne doit pas la supprimer. apres libre au systeme soit de continuer à la prochaine ligne ou bien qu'il s'arrete

Voici ma macro : "nu_doss_titre" est le fichier text ou vba va chercher les lignes et "transmitANsi "d" la manette de suppression
je veux que la contrainte soit entre TABKEY et "transmitANSI"d" afin qu'il sache que si la donnée n'est pas AED, quil ne supprime pas et quil passe à la suivante..

Sub SUP1deviseAED()
'
' Generated by the Reflection Macro Recorder on 12-09-2019  17:58:23.03
' Generated by Reflection for IBM for Windows 14.0.288
'
Dim nu_doss_titre As String
'
Open "U:\dddd.txt" For Input As #1
Do While Not EOF(1)
Input #1, nu_doss_titre
    With Session
        .WaitForEvent rcEnterPos, "30", "0", 5, 53
        .TransmitANSI nu_doss_titre
        .TransmitTerminalKey rcIBMEnterKey
        .WaitForEvent rcKbdEnabled, "30", "0", 1, 1
        .WaitForEvent rcEnterPos, "30", "0", 5, 41
        .TransmitTerminalKey rcIBMTabKey
        .TransmitTerminalKey rcIBMTabKey
        .TransmitTerminalKey rcIBMTabKey
        .TransmitANSI "d"
        .TransmitTerminalKey rcIBMEnterKey
        .WaitForEvent rcKbdEnabled, "30", "0", 1, 1
        .WaitForEvent rcEnterPos, "30", "0", 5, 41
        .TransmitTerminalKey rcIBMPf14Key


Je ne sais pas si cela est clair mais a dispo si besoin

Cdlmt
Sufyan

3 réponses

yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474
31 janv. 2020 à 13:50
bonjour, tu n'expliques pas où se trouve AED sur la ligne.
0
yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474
31 janv. 2020 à 14:14
je suggère d'essayer ceci, en remplaçant les points d'interrogation en ligne 15 par les numéros de ligne et de colonne où se trouve le champ qui devrait contenir AED. ceci va juste afficher les trois premiers caractères de ce champ, pour vérifier si on les a bien trouvé. si cela marche, il faudra ensuite adapter la logique de la macro pour tester la devise.
Dim nu_doss_titre As String, devise as String
'
Open "U:\dddd.txt" For Input As #1
Do While Not EOF(1)
Input #1, nu_doss_titre
With Session
.WaitForEvent rcEnterPos, "30", "0", 5, 53
.TransmitANSI nu_doss_titre
.TransmitTerminalKey rcIBMEnterKey
.WaitForEvent rcKbdEnabled, "30", "0", 1, 1
.WaitForEvent rcEnterPos, "30", "0", 5, 41
.TransmitTerminalKey rcIBMTabKey
.TransmitTerminalKey rcIBMTabKey
.TransmitTerminalKey rcIBMTabKey
devis = .GetFieldText(?,?,3)
MsgBox devise ,,"est-ce AED?"
.TransmitANSI "d"
.TransmitTerminalKey rcIBMEnterKey
.WaitForEvent rcKbdEnabled, "30", "0", 1, 1
.WaitForEvent rcEnterPos, "30", "0", 5, 41
.TransmitTerminalKey rcIBMPf14Key
0
sufyan77 Messages postés 10 Date d'inscription vendredi 31 janvier 2020 Statut Membre Dernière intervention 24 février 2020
31 janv. 2020 à 16:08
au fait AED est deja dans la programmation, le "transmit ansi "d" " est la ligne ou se situe l AED et le "d" est la donnée fixe pour lui dire de supprimer, donc mon soucy est de lui dire si ce n'est pas AED (par exemple) EUR ou USD, il ne doit pas le supprimer

merci de ton retour !
0
yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474 > sufyan77 Messages postés 10 Date d'inscription vendredi 31 janvier 2020 Statut Membre Dernière intervention 24 février 2020
31 janv. 2020 à 16:58
as-tu testé ma suggestion?
0
sufyan77 Messages postés 10 Date d'inscription vendredi 31 janvier 2020 Statut Membre Dernière intervention 24 février 2020 > yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024
14 févr. 2020 à 15:42
Hello

Désolé du retour tardive, oui grand merci, cela marche mais juste que j'ai enlevé la boite msg car elle validait quand meme apres le OK et jai rajouté un "then" pour lui dire si elle quitte ou non le process si c'est la devise AED ou non..

merci en tout cas !!
0
yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474 > sufyan77 Messages postés 10 Date d'inscription vendredi 31 janvier 2020 Statut Membre Dernière intervention 24 février 2020
14 févr. 2020 à 18:16
parfait! peux-tu alors marquer la discussion comme résolue?
0
sufyan77 Messages postés 10 Date d'inscription vendredi 31 janvier 2020 Statut Membre Dernière intervention 24 février 2020
24 févr. 2020 à 22:21
Merci a toi !
0