Transformer script "wintask" en language VBA

En fait j'ai essayé avc la fenêtre en premier et ça n'a pas marché.

J'ai qd même relancer l'application.

15essai3.txt (1.00 Ko)

Ce qui est curieux, c'est que la fenêtre ne s'appelle plus de la même façon que la première fois ... !!

Il faut mettre dans cette ligne de code, par un strict copier/coller, le contenu du fichier texte que tu as ...

AppActivate "Nouveau Trajet | Indemnités kilométriques | Fizen-expert - Personnel - Microsoft? Edge"

Curieusement, avec Edge il y a ? qui apparait, mais j'ai fait des tests, il faut le laisser.

Option Explicit

Sub transférer()
' https://ecl.fizen-expert.fr/frais-kilometriques/deplacements

Dim indicOK As String
Dim k As Integer, j As Integer, sequence As String

    indicOK = "I"

    ' première ligne non transférée
    k = Cells(Rows.Count, indicOK).End(xlUp).Row + 1

    sequence = ""
    For j = 1 To Cells(k, Columns.Count).End(xlToLeft).Column
        sequence = sequence & Cells(k, j) & "{TAB}"
    Next
    Debug.Print sequence

    ' mettre ici le contenu du fichier texte, exemple :
    AppActivate "Nouveau Trajet | Indemnités kilométriques | Fizen-expert - Personnel - Microsoft? Edge"
    Application.SendKeys sequence
    Cells(k, indicOK) = "ok"

End Sub

ne te trompe pas non plus de fichier, supprime les anciens fichiers excel car d'après ton fichier essai3.txt je vois la version v1 (1)

capture d ecran 324

Bonsoir, en premier lieu joyeux no=el à tous et spécialement à Steelson.

Merci beaucoup pour ton aide, après les modifications que tu m'as conseillé ça marche.

Option Explicit

Sub transférer()
' https://ecl.fizen-expert.fr/frais-kilometriques/deplacements

Dim indicOK As String
Dim k As Integer, j As Integer, sequence As String

    indicOK = "I"

    ' première ligne non transférée
    k = Cells(Rows.Count, indicOK).End(xlUp).Row + 1

    sequence = ""
    For j = 1 To Cells(k, Columns.Count).End(xlToLeft).Column
        sequence = sequence & Cells(k, j) & "{TAB}"
    Next
    Debug.Print sequence

    ' mettre ici l contenu du fichier texte, exemple :
    AppActivate "Mes indemnités kilométriques | Fizen-expert - Personnel - Microsoft? Edge"
    Application.SendKeys sequence
    Cells(k, indicOK) = "ok"
End Sub

Maintenant est ceque c'est possible de faire un transfert total.

Merci encore une fois

Oui c'est possible, il fallait déjà tester ligne à ligne.

Je te prépare cela rapidement.

Bonjour,

Fais un essai réduit avec 2 ou 3 lignes au départ, car je ne connais ni le temps de réaction de l'application fizen, ni si le curseur revient bien au départ après un clic...

Option Explicit

Sub transférer()
' https://ecl.fizen-expert.fr/frais-kilometriques/deplacements

Dim indicOK As String
Dim i As Integer, k As Integer, j As Integer, sequence As String

    indicOK = "I"

    ' première ligne non transférée
    k = Cells(Rows.Count, indicOK).End(xlUp).Row + 1

    For i = k To Cells(Rows.Count, "A").End(xlUp).Row

        sequence = ""
        For j = 1 To Cells(i, Columns.Count).End(xlToLeft).Column
            sequence = sequence & Cells(i, j) & "{TAB}"
        Next
        sequence = sequence & "{TAB}" & "{ENTER}"
        Debug.Print sequence

        ' mettre ici l contenu du fichier texte, exemple :
        AppActivate "Mes indemnités kilométriques | Fizen-expert - Personnel - Microsoft? Edge"
        Application.SendKeys sequence
        Cells(i, indicOK) = "ok"

        Application.Wait Now + TimeValue("0:00:02")

    Next

End Sub

Bonsoir, navrée ça ne marche pas, la première ligne est saisie sans problème mais ça ne valide pas donc après les données de la 2e ligne sont resaisies sur la même page.

je caremment ignorante au niveau VBA mais j'ai cherché et j'ai rajouté la ligne

SendKeys "{ENTER}", True

ce qui donne

Application.SendKeys sequence
Cells(i, indicOK) = "ok"

SendKeys "{ENTER}", True
Application.Wait Now + TimeValue("0:00:02")

et ça a marché pour la première ligne : saisie et validation ok, selection d'une nouvelle page mais pas de saisie de la 2e ligne . à mon avis c'est parce que le curseur n'est pas sur la première case.

Je me demande est ce qu'il y a moyen de simuler un clique sur le premier champs du formulaire. J'ai copier le code source (enfin je crois)

image

Bonjour,

et ça a marché pour la première ligne : saisie et validation ok,

C'est absolument génial ! bravo.

Pour la seconde ligne, non on ne pourra pas aller chercher dans le code source pour repositionner le curseur. Par contre, il est possible d'ajouter des {Tab} pour se remettre sur la première zone de saisie. Une fois la première valeur validée, sans utiliser la souris, regarde si avec x tabulations on ne revient pas en tête du formulaire ...

Bonsoir, j'ai essayé effectivement après 16 tab le curseur se met sur la première case.

Essaye alors cette modification

SendKeys "{ENTER}", True
Application.Wait Now + TimeValue("0:00:02")
SendKeys "{TAB 16}"

c'est toujours un peu délicat pour moi n'ayant pas accès au système, ce qui m'aurait permis de mettre au point immédiatement

mais je pense que tu as compris l'exercice

Rechercher des sujets similaires à "transformer script wintask language vba"