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 :

enlever caractere vide suite import formulaire Word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut enlever caractere vide suite import formulaire Word
    Bonjour,

    J'ai un formulaire Word, par macro, je l'importe et copie/colle dans une feuille Excel.

    J'ai un petit souci : quelques "petits malins" ont enlevé la protection du formulaire Word que j'avais créé et n'ont pas écrit dans le champ du formulaire, mais juste après....Lorsque j'importe ces formulaires, j'obtiens :
    -----nomdumodele
    j'ai mis des "-" à la place des espaces, car l'espace ne prend pas dans les "QUOTE"
    (de même sur la version Excel 2007, les espaces sont remplacés par des petits carrés...)


    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    espace=application.worksheetfunction.trim(espace)
    marche pas....puis j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("F").columns(5).replace " ",""
    Marche pas....
    J'ai donc essayé de "reconnaitre" les espaces et/ou petits carrés, et j'ai pu voir qu'ils avaient le Numéro 32 (de la table de caractère), j'ai donc essayé de les enlever, j'ai essayé (sur la cellule E2):


    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
    Dim monText As Integer
       Dim cc As Integer
       Dim boucle As Integer
       Dim uu As String
     
       cc = Len(Range("E2"))
       espace = Range("E2")
       monText = Asc(Left(Range("E2"), 1))
     
       For boucle = 1 To cc
       uu = Left(espace, 1)
       If Left(espace, 1) = Chr(32) Then
       espace = Mid(1 + boucle, 100)
       Stop
     
       End If
    Marche pas non plus.....

    Je suis à court d'idée......

    Merci de votre aide,
    A+

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Ce sont probablement des espaces insécables, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("F").Columns(5).Replace Chr(160), ""

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Merci Fring,

    J'ai essayé, mais ça ne fonctionne pas....j'ai toujours mes "petits carrés" et/ou espaces....

    j'ai aussi essayé en faisant une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i = 1 to 255
    sheets("F").columns(5).replace chr(i),""
    next i
    mais les "petits carrés" et espaces sont toujours là....donc apparemment l'option de passer par "CHR" ne fonctionne pas....

    Une autre idée ?

    Merci,
    A+

  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, essaie via Clean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Clean(.....)

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Merci Kiki29,

    J'avais déjà essayé, mais ça n'a pas fonctionné....j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim cell as range
    for each cell in Activesheets.usedrange
    cell=application.worksheetfunction.clean(cell)
    next
    ça n'a pas fonctionné, j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim cell as range
    for each cell in Activesheets.usedrange
    cell.value=application.worksheetfunction.clean(cell.value)
    next
    marche pas non plus....

    A+
    -------------------------------------------------------
    Merci Mercatoq,

    J'ai essayé, ça ne fonctionne pas....

    A+

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Limites de Clean
    Important La fonction Clean a été conçue pour supprimer les 32 premiers caractères non imprimables du code ASCII à 7 bits (valeurs entre 0 et 31) d'un texte. Dans le jeu de caractères Unicode, d'autres caractères non imprimables existent (valeurs 127, 129, 141, 143, 144 et 157). En soi, la fonction Clean ne supprime pas ces caractères non imprimables supplémentaires.
    Sinon, mets un extrait de tes données à problème.

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    A tout hasard, n'oubli pas la paramètre XlPart
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("F").Columns(5).Replace Chr(160), "", xlPart

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

Discussions similaires

  1. FORMULAIRE WORD : PAS imprimer les cases grises vides
    Par evechelsea dans le forum Windows 7
    Réponses: 3
    Dernier message: 09/06/2015, 15h49
  2. enlever caracteres vides et mise en majuscule
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/10/2012, 18h58
  3. [VB.NET] Formulaire word a remplir avec vb.net
    Par Monster77 dans le forum Windows Forms
    Réponses: 15
    Dernier message: 16/08/2011, 14h22
  4. Réponses: 12
    Dernier message: 24/10/2007, 12h00
  5. [Etat] Importer un formulaire Word
    Par en_gel_ho dans le forum IHM
    Réponses: 5
    Dernier message: 12/09/2006, 16h49

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