IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Erreur écriture dans un champ de formulaire PDF via une macro [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut Erreur écriture dans un champ de formulaire PDF via une macro
    Bonjour à tous, cela fait un petit moment que je ne suis pas venu sur le forum.
    J'ai bien parcourus l'excellente contribution de Kiki29 sur les PDF, merci pour cet excellent travail.

    Grâce à ces divers codes je réussi à remplir un pdf via les macros.

    La difficulté c'est que je souhaite remplir plusieurs fois de suite le même formulaire en faisant une boucle qui modifie les données dans une feuille excel.
    Le soucis est celui-ci: Je fais un premier tour dans ma boucle et j'insére dans ma feuille excel les données pour mon formulaire ce qui donne ceci par exemple:
    Nom : Liste1.JPG
Affichages : 242
Taille : 14,8 Ko
    j'utilise la boucle ci-dessous pour insérer les données dans mon pdf et là pas de problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For i = 2 To LastRow
         Set X = JSO.getField(CStr(Feuil11.Range("C" & i)))
         X.Value = CStr(Feuil11.Range("E" & i))
    Next i
    j'enregistre mon fichier sous un nom différent avant de finir ma boucle puis,
    je fais un deuxième tour dans ma boucle pour modifié les données de la feuille Excel pour avoir ceci:
    Nom : Liste2.JPG
Affichages : 298
Taille : 14,4 Ko

    Vous l'avez compris il y a une différence au niveau de la ligne en jaune.

    Au premier passage le champ contient une donnée, au deuxième il est vide et là j'ai l'erreur:
    Nom : Liste3.JPG
Affichages : 216
Taille : 11,3 Ko

    le débogage situe l'erreur sur la ligne en jaune ci dessous:
    Nom : Liste4.JPG
Affichages : 271
Taille : 16,7 Ko

    X à la valeur 2 et dois devenir "".

    Avez-vous une idée? Comment remettre tous les champs d'un pdf à l'état initiale?
    J'ai presque 100 Fichiers Pdf à remplir...

    j'utilise Acrobat XI pro, Excel 2013 ou 2010 c pareil pour ce qui est de l'erreur

    Un peu d'aide serai la bienvenue...

    Merci à vous

  2. #2
    Membre expérimenté Avatar de EBRAG
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 125
    Par défaut
    Bonsoir,

    Personne ne semble vouloir se mettre sur le sujet... peut-être manque-t-il de clarté ?

    Je ne suis pas trop familier avec ces pdf via Excel, mais la seule chose que j'entrevois est la notion de
    .value suivi d'un cstr

    es-tu certain que c'est . value qu'il faille mettre ? et pas .text ou quelque chose comme ça

    Revois les propriétés du contrôle qui pose problème...

    peut-être en ne mettant rien du tout d'ailleurs uniquement x = cstr(etc...

    c'était juste pour essayer !

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Incompatibilité de type veux dire.... que le type n'est pas correct.
    Met donc X dans la fenêtre espion et contrôle son type : String ou Long ou ???
    Si tu dis que la boucle est passée au moins une fois c'est que le type String doit être correct.
    Sinon s'il est numérique alors x.value =0

    Maintenant est-ce que ton objet X existe ?
    Lorsqu'on utilise Set on doit contrôler si c'est correct (à moins d'être sûr à 100% qu'il existera toujours) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If X Is Nothing Then
        MsgBox "y'a un os"
    Else
        ' ça roule
    End If
    Autre éventualité. Qu'as-tu dans cette cellule "E" & i ? Si c'est une valeur d'erreur...
    eric

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, mes pouvoirs divinatoires étant nuls : la totalité du code utilisé ainsi qu'un échantillon du pdf devraient aider.

  5. #5
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bonjour,
    Merci de votre intérêt pour cette question.

    J'ai reproduit l'erreur dans le fichier test ci-dessous.

    Mes données étant confidentielles, le fichier ci-dessous fait la même chose avec la même macro.

    Cordialement.
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Pour Eriic,

    Avec l'espion je m'aperçois que la variable X est de typer Variant et selon la donnée elle devient string ou double.

    dans le cas de l'erreur elle est double:

    en changeant ma boucle comme ceci sa fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    For i = 2 To LastRow
         Set X = JSO.getField(CStr(Feuil1.Range("B" & i)))
     
         If IsNumeric(X.Value) Then
              X.Value = CDbl(Feuil1.Range("D" & i))
     
         Else
              X.Value = CStr(Feuil1.Range("D" & i))
         End If
     
    Next i
    Et ça m'affiche un zéro dans le champ or moi je veux qu'il n'affiche "rien". c'est bien plus lisible que des zéros partout...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fermer un FICHIER pdf via une macro
    Par fusee2013 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/07/2013, 12h16
  2. [W3C] Ne pas autoriser l'écriture dans un champ INPUT
    Par kerlann dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 24/04/2006, 10h22
  3. forcer l'écriture d'un champ de formulaire
    Par goma771 dans le forum Langage
    Réponses: 7
    Dernier message: 21/02/2006, 18h32
  4. Calcul dans un champ de formulaire
    Par Marmouz dans le forum Access
    Réponses: 6
    Dernier message: 07/02/2006, 11h55
  5. saisie obligatoire dans un champs de formulaire
    Par Didi17 dans le forum Access
    Réponses: 2
    Dernier message: 28/10/2005, 03h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo